Bin*_*omo 5 ffmpeg http-live-streaming m3u8
我正在学习生成 hls 流
目前我的 ffmpeg 命令看起来像
ffmpeg -analyzeduration 100000000 -probesize 1000000 \
-i https://nasa-i.akamaihd.net/hls/live/253565/NASA-NTV1-Public/master_500.m3u8 \
-c:v copy -g 90 -c:a aac \
-strict -2 \
-strftime 1 -use_localtime 1 -g 90 \
-hls_time 20 \
-hls_list_size 15 \
-hls_wrap 16 \
-hls_segment_filename mydir/%Y-%m-%d_%H-%M-%S.ts \
-f hls $4/index.m3u8 \
-hls_flags delete_segments \
Run Code Online (Sandbox Code Playgroud)
我只想有 15 个 ts 文件,每个文件 20 秒。
问题是:
它仍然生成超过 15 个文件,并且从不删除旧文件。而index.m3u8文件内容不断更新,仅列出了15个ts。
当我重新启动命令时,index.m3u8 仅以 1 个文件开始,而不是更新其列表。
一些东西:
1)-hls_flags delete_segments出现在输出文件名之后,这里是播放列表。所以不适用。如果您指定了一个输出,它将应用于下一个输出。将其移至 m3u8 名称之前。
2)由于您复制的是视频,所以-g没有任何效果。也是重复的。删除两者。
3) 如果您使用 hls_wrap,请将其设置为15并删除 hls_flag。如果您想使用该标志,请删除 hls_wrap。由于delete_segment 的工作原理,旧文件将在“一段等于该段的持续时间加上播放列表的持续时间的时间后”被删除。所以,你最终至少会得到2 x list_size一些片段。
| 归档时间: |
|
| 查看次数: |
16804 次 |
| 最近记录: |