Dvr: support h265 flv fragments. v6.0.162 v7.0.24#4296
Merged
xiaozhihong merged 3 commits intoossrs:developfrom Mar 17, 2025
Merged
Dvr: support h265 flv fragments. v6.0.162 v7.0.24#4296xiaozhihong merged 3 commits intoossrs:developfrom
xiaozhihong merged 3 commits intoossrs:developfrom
Conversation
duiniuluantanqin
approved these changes
Feb 26, 2025
xiaozhihong
approved these changes
Mar 6, 2025
xiaozhihong
added a commit
that referenced
this pull request
Mar 17, 2025
1. Issue
When segmenting H.265 encoded FLV files using a DVR, the system does not
create FLV segments at regular intervals as specified by the
`dvr_wait_keyframe` configuration.
2. Configure dvr.segment.conf
```config
listen 1935;
max_connections 1000;
daemon off;
srs_log_tank console;
vhost __defaultVhost__ {
dvr {
enabled on;
dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_plan segment;
dvr_duration 30;
dvr_wait_keyframe on;
}
}
```
3. Stream Push Testing
Domestic FFmpeg version (codecId=12)
```sh
hevc-12-ffmpeg -stream_loop -1 -re -i 264_aac.flv -c:v libx265 -preset fast -b:v 2000k -maxrate 2000k -bufsize 4000k -bf 0 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv rtmp://localhost/live/livestream
```
FFmpeg version 6.0 or higher (supports `enhanced RTMP`)
```sh
ffmpeg -stream_loop -1 -re -i 264_aac.flv -c:v libx265 -preset fast -b:v 2000k -maxrate 2000k -bufsize 4000k -bf 0 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv rtmp://localhost/live/livestream
```
OBS streaming (version 30.0 or above supports `enhanced RTMP`)


SRS player (supports both `enhanced RTMP` and `codec=12 FLV`)
```
http://127.0.0.1:8080/players/srs_player.html
```
Domestic ffplay (supports `codec=12 FLV`)
```
hevc-12-ffplay http://127.0.0.1:8080/live/livestream.1740311867638.flv
```
ffplay (versions above ffmpeg 6.0 support `enhanced RTMP`)
```
ffplay http://127.0.0.1:8080/live/livestream.1740311867638.flv
```

---------
`TRANS_BY_GPT4`
---------
Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>
---------
Co-authored-by: john <hondaxiao@tencent.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
When segmenting H.265 encoded FLV files using a DVR, the system does not create FLV segments at regular intervals as specified by the
dvr_wait_keyframeconfiguration.Configure dvr.segment.conf
FFmpeg Stream Push
Domestic FFmpeg version (codecId=12)
FFmpeg version 6.0 or higher (supports
enhanced RTMP)OBS streaming (version 30.0 or above supports


enhanced RTMP)4. Playback Testing
SRS player (supports both
enhanced RTMPandcodec=12 FLV)Domestic ffplay (supports
codec=12 FLV)ffplay (versions above ffmpeg 6.0 support
enhanced RTMP)TRANS_BY_GPT4Co-authored-by: Haibo Chen 495810242@qq.com
Co-authored-by: john hondaxiao@tencent.com
Co-authored-by: winlin winlinvip@gmail.com