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

时间:2017-04-19 07:21:47

标签: 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

似乎当我使用-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

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

我浏览了文档here,我想我正在按照文档中的说法进行操作。

我缺少什么?

1 个答案:

答案 0 :(得分:2)

  

<强> hls_init_time

     

初始播放列表填写后 ffmpeg会在持续时间等于hls_time的情况下剪切片段

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

这就是为什么它永远不会使用hls_time值。

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