【问题标题】:Command Line 'hls_segment_size' creates TS files with segment failures命令行“hls_segment_size”创建具有段失败的 TS 文件
【发布时间】:2019-08-24 02:25:50
【问题描述】:

我正在将一个简单的 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 文件的大小将根据定义的秒数而定

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

有人有什么想法吗?

这是我试图描述的问题:

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

恰好在视频的第二个 7 中发生“锁定”,当从一个片段转到另一个片段时会发生这种情况

【问题讨论】:

  • 这对我来说似乎很难,没有人可以帮助......
  • 检查您的服务器是否正确配置为处理 HTTP 范围请求。使用hls.js 的示例显示.ts 文件的状态为200 而不是206 的响应,即使Accept-Ranges: bytes 标头存在。根据Content-Length,您似乎在响应中获得了整个片段而不是所需范围。

标签: video ffmpeg http-live-streaming m3u8


【解决方案1】:

只需将您的 ffmpeg 版本更新为 > 4 此命令的旧版本有问题。

【讨论】:

  • 您可以添加一些链接或其他信息来澄清吗?
猜你喜欢
  • 1970-01-01
  • 2013-07-13
  • 2012-10-04
  • 2016-04-26
  • 2019-09-07
  • 2019-02-11
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多