我正在使用:
创建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,我想我正在按照文档中的说法进行操作。
我缺少什么?
答案 0 :(得分:2)
<强> hls_init_time 强>
初始播放列表填写后
ffmpeg
会在持续时间等于hls_time
的情况下剪切片段
您有-hls_list_size 0
,这意味着播放列表将包含所有细分,并且最后只会填充一次。
这就是为什么它永远不会使用hls_time
值。
解决方案是使用大于0
的播放列表大小。这意味着第一个hls_list_size
段的持续时间为1s
。