ffmpeg限制段文件的数量

ffmpeg限制段文件的数量,ffmpeg,http-live-streaming,m3u8,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_

我正在学习生成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 \
我只想要15个ts文件,每个文件20秒

问题是:

  • 它仍然生成超过15个文件,从不删除旧文件。而index.m3u8文件内容不断更新,仅列出了15个ts

  • 当我重新启动该命令时,index.m3u8只启动一个文件,而不是更新其列表

  • 有几件事:

    1)
    -hls\u flags delete\u segments
    出现在输出文件名之后,这是播放列表。所以它不适用。如果您指定了一个输出,它将应用于下一个输出。将其移到m3u8名称之前

    2) 由于您正在复制视频,
    -g
    无效。它也在重复。两个都拆下


    3) 如果您正在使用hls_wrap,请将其设置为
    15
    ,然后删除hls_标志。如果要使用该标志,请删除hls_包裹。由于delete_段的工作方式,旧文件将在“一段时间后”删除,该时间等于段的持续时间加上播放列表的持续时间。因此,您将得到至少2个列表大小的片段。

    您应该设置-hls\u列表大小为0(最大值为0)

    根据您的启示完成,删除未使用的-g,删除标志。。。并将hls_wrap 15放在-hls_段_文件名和m3u8之前。但是仍然有2 x hls\u列表大小…我正在尝试将报告日志粘贴到pastebin。。。。我认为这对它来说太大了。好的,在这里,在我运行命令后立即复制。。。这显示了50秒的输出和预期的3个文件。需要运行它,直到它创建15+段。我认为我的连接不够好,无法使用pastebin。在这里,生成的ts文件的数量是35,因为您的ts文件名是时间格式的,ffmpeg不会重新打开第一个文件进行覆盖。您必须使用“删除\ U段”。