命令行“ hls_segment_size”创建段失败的TS文件

时间:2019-04-02 17:12:29

标签: video ffmpeg hls m3u8

我正在将一个简单的mp4视频转换为hls,但我需要将这些片段的大小大致设置为特定大小

我研究发现:

-hls_segment_size 17000000

17000000字节(〜17MB)

这将创建大小近似的TS文件(不必是确切大小)

ffmpeg.exe -i "in.mp4" -vcodec copy -acodec aac -hls_list_size 0 -hls_segment_size 17000000 -f hls "out.m3u8"

在m3u8文件中创建了“#EXT-X-BYTERANGE”,这是我想要的方式

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:8.400000,
#EXT-X-BYTERANGE:1662108@0
SampleVideo_1280x720_30mb0.ts
#EXTINF:4.560000,
#EXT-X-BYTERANGE:383896@0
SampleVideo_1280x720_30mb1.ts
#EXTINF:3.120000,
#EXT-X-BYTERANGE:408712@383896
SampleVideo_1280x720_30mb1.ts
#EXTINF:5.640000,
#EXT-X-BYTERANGE:1161840@0
SampleVideo_1280x720_30mb2.ts
#EXTINF:1.880000,
#EXT-X-BYTERANGE:230864@0
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.160000,
#EXT-X-BYTERANGE:330880@230864
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.080000,
#EXT-X-BYTERANGE:489928@0
SampleVideo_1280x720_30mb4.ts
#EXTINF:4.400000,
#EXT-X-BYTERANGE:1564348@489928
SampleVideo_1280x720_30mb4.ts
...

看起来不错,但是有一点问题。我正在浏览器中的播放器上进行测试,当几秒钟从一个片段切换到另一个片段时,视频的声音和视频就会锁定。令人讨厌的东西,在视频中不自然。

不使用'-hls_segment_size'将具有功能性TS文件,而m3u8文件中没有BYTERANGE

但是,TS文件的大小将根据定义的秒数

我目前正在尝试获取一个ts文件,该文件的大小接近15MB到20MB之间的设置,并且在m3u8文件中包含BYTERANGE。

有人有什么想法吗?

这是我要描述的问题:

http://phantsc.rf.gd/AAA/Bbb.html

恰好在视频的后7个部分中发生了“锁定”,这种情况是在从一个片段转到另一个片段时发生的

1 个答案:

答案 0 :(得分:0)

只需将您的ffmpeg版本更新为> 4 此命令的旧版本存在错误。