我有某个HLS流设置的问题。到目前为止,我的设置是我正在使用该流的视频演绎,其中包含所有不同音频替代方案,即.mp4
名称中的流。根据规格,应该通过设置我的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上对此进行测试,视频播放器向我提供了不同的语言,但是选择它们后,播放器没有实际切换语言。
我的猜测是,玩家无法在原始流中实际找到相应的曲目。这甚至可能吗?我可以在清单中设置此信息吗?
update :以下答案适用于协议的版本3。您链接的IETF草稿是版本7。如果设备支持版本7,则可以使用Muxed Media文件,尽管我还没有尝试过。改用#EXT-X-VERSION:7
。
根据developer.apple.com:
替代音频和视频演绎
音轨包含未取代(尚未组合信号)音频细分市场。主播放列表文件控制播放。
我认为这意味着您有为单个音频流提供URI:
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsch",
DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de",
URI="main/german-audio.m3u8"