【问题标题】:FFmpeg hls from multiple files来自多个文件的FFmpeg hls
【发布时间】:2015-09-12 22:55:29
【问题描述】:

我正在尝试创建一个包含多个音频流的 HLS 播放列表。我有以下文件:

- videoHD.mp4
- videoSD.mp4
- audioEN.mp4
- audioFR.mp4
- audioIT.mp4

我如何在 ffmpeg 命令中将这些全部转换在一起以创建 HLS 播放列表?

【问题讨论】:

    标签: video ffmpeg http-live-streaming


    【解决方案1】:

    2018 年 1 月更新

    您现在可以使用master_pl_namevar_stream_map 直接使用FFmpeg 创建主播放列表。请参阅documentation


    根据 Apple 文档,您不会将它们全部混合在一起,也不能使用单个 HLS 播放列表。

    您需要每个视频和每个音轨的播放列表(例如:hd/playlist.m3u8sd/playlist.m3u8en/playlist.m3u8 等)和一个主播放列表将它们链接在一起。主播放列表控制播放。

    以下是文档中包含两个视频质量和三个音轨的示例:

    #EXTM3U
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="eng",NAME="English",AUTOSELECT=YES, \
    DEFAULT=YES,URI="eng/prog_index.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="fre",NAME="Français",AUTOSELECT=YES, \
    DEFAULT=NO,URI="fre/prog_index.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="sp",NAME="Espanol",AUTOSELECT=YES, \
    DEFAULT=NO,URI="sp/prog_index.m3u8"
    
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=195023,CODECS="avc1.42e00a,mp4a.40.2",AUDIO="audio"
    lo/prog_index.m3u8
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=591680,CODECS="avc1.42e01e,mp4a.40.2",AUDIO="audio"
    hi/prog_index.m3u8
    

    ffmpeg 上次我检查时不支持变体播放列表,因此您需要单独创建每个备用播放列表并手动创建主播放列表。

    当然,要使所有这些工作,各个流必须对齐,否则您将遇到很多同步问题。您可以尝试将ffmpeg 与多个 I/O 一起使用:

    ffmpeg -i input1 -i input2 \
        -map … -acodec … -vcodec … output1 \
        -map … -acodec … -vcodec … output2 \
        -map … -acodec … -vcodec … output3
    

    每个输出的类型为HLS

    来源:

    About HTTP Live Streaming

    Technical Note TN2288

    FFmpeg - Creating Multiple Outputs

    【讨论】:

      猜你喜欢
      • 2015-05-24
      • 2019-10-07
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多