HLS流:视频流中的多种音频替代方案

时间:2015-05-13 14:48:01

标签: ios audio video hls

我遇到某个HLS流设置问题。到目前为止,我的设置是我正在使用流的视频再现,其中包含名称为.mp4的流中所有不同的音频备选方案。根据{{​​3}},这应该可以通过设置我的HLS主清单来实现:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",CODECS="mp4a.40.5",LANGUAGE="deu",NAME="Deutsch",DEFAULT=YES,AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",CODECS="mp4a.40.5",LANGUAGE="spa",NAME="Español",DEFAULT=NO
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",CODECS="mp4a.40.5",LANGUAGE="eng",NAME="English",DEFAULT=NO

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1391346,RESOLUTION=1022x574,CODECS="avc1.4d001f,mp4a.40.5",AUDIO="aac"
0009_orig/manifest.m3u8

然而,在iPad上进行测试时,视频播放器为我提供了不同的语言,但在选择之后,播放器实际上没有切换语言。

我的猜测是玩家无法在原始流中找到相应的曲目。这甚至可能吗?我可以在清单中设置此信息吗?

1 个答案:

答案 0 :(得分:1)

更新:以下答案适用于协议的version 3。您链接的IETF草案是version 7。如果设备支持版本7,您可以使用多路复用媒体文件,但我还没有尝试过。请改用#EXT-X-VERSION:7

根据developer.apple.com

  

备用音频和视频演绎

     

音轨包含 unmuxed (信号尚未组合)音频   段。主播放列表文件控制播放。

我认为这意味着你拥有来提供单个音频流的URI:

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsch", \
      DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de", \
      URI="main/german-audio.m3u8"