ffmpeg -hls_init_time -hls_time 不能一起工作?

Rus*_*ell 2 ffmpeg

我正在生成一个m3u8文件:

ffmpeg -i Sample2.avi \
    -hls_init_time 1 \
    -hls_time 10 \
    -f hls \
    -hls_list_size 0 \
    -hls_segment_filename 'partial_file%04d.ts' \
    -s 480x270 \
    out.m3u8
Run Code Online (Sandbox Code Playgroud)

看来我使用时-hls_time 10每个片段大约是 10 秒。但是,当我添加时,-hls_init_time 1生成的所有片段的长度约为 1 秒。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.035367,
partial_file0000.ts
#EXTINF:1.101100,
partial_file0001.ts
#EXTINF:5.372033,
partial_file0002.ts
#EXTINF:1.267933,
partial_file0003.ts
#EXTINF:2.802800,
partial_file0004.ts
#EXTINF:0.867533,
partial_file0005.ts
Run Code Online (Sandbox Code Playgroud)

我只希望第一段为1秒,其他段为10秒。

我浏览了这里的文档,我想我正在按照文档中提到的方式进行操作。

我缺少什么?

aer*_*tal 6

hls_init_time

初始播放列表填满ffmpeg,将在持续时间等于hls_time

-hls_list_size 0意味着播放列表将包含所有片段,并且最后只会填充一次。

这就是为什么它永远无法使用该hls_time值的原因。

解决方案是使用大于的播放列表大小0。这意味着第一段的hls_list_size持续时间为1s