我正在创建一个 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 来做到这一点,但我似乎找不到任何关于这样做的信息。这可能是错误的方法,因此如果有人能指出我正确的方向,我将不胜感激。
最佳答案
2018 年 1 月更新
您现在可以使用 master_pl_name
直接使用 FFmpeg 创建主播放列表和var_stream_map
。请参阅documentation .
您还不能直接使用 FFmpeg 创建 HLS 主播放列表。您可以为多个比特率对同一源进行编码并获取每个变体播放列表,但您必须自己提供母带。
当然,生成的流必须对齐,以便您可以:
使用固定 GOP 大小(
-g <size> -sc_threshold 0
、x264--keyint <size> --min-keyint <size> --scenecut -1
)如果适用,请执行 2-pass encoding using the same first pass statfile每第二次通过。如果您使用生成 statfile 来在所需比特率的中间进行再现,效果会更好,因为精度会有所损失。
关于ffmpeg - 创建指向其他 m3u8 文件的 m3u8 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174236/