ffmpeg HTTP LIVE STREAMING 删除旧段
Posted
技术标签:
【中文标题】ffmpeg HTTP LIVE STREAMING 删除旧段【英文标题】:ffmpeg HTTP LIVE STREAMING remove old segments 【发布时间】:2015-01-29 09:16:40 【问题描述】:你好,我有一个用于 ffmpeg 的实时 HTTP 流输入 我想使用 ffmpeg 创建 HLS 流即时通讯来执行此操作
ffmpeg -i http://127.0.0.1:4242/bysid/7275 -map 0 -codec:v libx264 -codec:a copy -f ssegment -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags +live -segment_time 10 out%03d.ts
我工作正常,我只想删除 playlist.m3u8 中未显示的旧段
segment_list_size 10
这将保留播放列表文件中的最后 10 个文件,我只想将这些文件保留在硬盘上
【问题讨论】:
【参考方案1】:您可以使用 HLS 分段器最近添加的选项:
-hls_flags delete_segments
您需要通过使用 -f hls 而不是 -f ssegment 来更改命令以使用 HLS 分段器而不是流分段器。
我一直在使用此选项,但它并没有完全按照您的要求执行,而是为了符合 HLS 规范而实施。有关更多信息,请参阅 ffmpeg 文档:https://www.ffmpeg.org/ffmpeg-formats.html
【讨论】:
我将 -f 段替换为 -f hls,但出现错误:无法为输出文件 #0 写入标头(编解码器参数不正确?):参数无效 使用 -f hls 和 -hls_flags delete_segments 的示例: ffmpeg -v verbose -i "rtsp://admin:XXX@192.168.2.73:554/cam/realmonitor?channel=1&subtype=0 " -vf scale=1920:1080 -vcodec libx264 -r 25 -b:v 1000000 -crf 31 -an -sc_threshold 0 -f hls -hls_time 5 -hls_list_size 5 -hls_flags delete_segments stream.m3u8【参考方案2】:使用
-segment_wrap 10
用于包装和重写段文件
【讨论】:
以上是关于ffmpeg HTTP LIVE STREAMING 删除旧段的主要内容,如果未能解决你的问题,请参考以下文章
HTTP Live Streaming、FFMPEG & FFSERVER 和 iPhone OS 3