【问题标题】:ffmpeg HTTP LIVE STREAMING remove old segmentsffmpeg HTTP LIVE STREAMING 删除旧段
【发布时间】: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 个文件,我只想将这些文件保留在硬盘上

【问题讨论】:

    标签: ffmpeg http-live-streaming


    【解决方案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
    

    用于包装和重写段文件

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 2014-01-21
      • 2015-01-12
      • 2022-01-24
      • 2013-12-25
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多