2

我正在寻找基于带宽指向其他 m3u8 文件的 m3u8 文件,像这样

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:4
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000,RESOLUTION=480x270
480x270.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000,RESOLUTION=640x360
640x360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2000000,RESOLUTION=1280x720
1280x720.m3u8
#EXT-X-ENDLIST

我希望能够使用 ffmpeg 做到这一点,但我似乎找不到任何关于这样做的信息。这可能是错误的方法,所以如果有人能指出我正确的方向,将不胜感激。

4

1 回答 1

4

2018 年 1 月更新

您现在可以使用 FFmpegmaster_pl_name和直接创建主播放列表var_stream_map。请参阅文档


您还不能直接使用 FFmpeg 创建 HLS 主播放列表。您可以为多个比特率编码相同的源并获取每个变体播放列表,但您必须自己提供母版。

当然,生成的流必须对齐,因此您可以:

  • 使用固定的 GOP 大小 ( -g <size> -sc_threshold 0, x264 --keyint <size> --min-keyint <size> --scenecut -1)

  • 如果适用,对每第二遍使用相同的第一遍 statfile进行 2 遍编码。如果您使用为所需比特率中间的再现生成 statfile,这会更好,因为会有一些精度损失。

于 2015-05-11T18:47:10.830 回答