使用HTTP直播时如何自动检测设备尺寸?

时间:2015-03-18 15:22:18

标签: http-live-streaming

我有一个使用HTTP Live Streaming传送视频内容的应用。我希望应用程序根据设备屏幕大小(4x3或16x9)检索适当的分辨率。我运行Apple的工具来创建主.m3u8播放列表文件(variantplaylistcreator)并获得以下内容:

#EXTM3U
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=248842,BANDWIDTH=394849,CODECS="mp4a.40.2, avc1.4d4028",RESOLUTION=480x360
4x3/lo/prog_index.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=384278,BANDWIDTH=926092,CODECS="mp4a.40.2, avc1.4d4028",RESOLUTION=480x360
4x3/mid/prog_index.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=787643,BANDWIDTH=985991,CODECS="mp4a.40.2, avc1.42801e",RESOLUTION=480x360
4x3/hi/prog_index.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=249335,BANDWIDTH=392133,CODECS="mp4a.40.2, avc1.4d4028",RESOLUTION=640x360
16x9/lo/prog_index.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=384399,BANDWIDTH=950686,CODECS="mp4a.40.2, avc1.4d4028",RESOLUTION=640x360
16x9/mid/prog_index.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=780648,BANDWIDTH=987197,CODECS="mp4a.40.2, avc1.42801e",RESOLUTION=640x360
16x9/hi/prog_index.m3u8

这确实导致我的直播流正确地在视频质量之间切换,但似乎随机选择它是使用4x3还是16x9分辨率。

有没有办法让它自动选择正确的尺寸,还是我需要有多个播放列表文件并让设备请求特定的?例如,如果在iPad上,我是否需要检测到它的屏幕尺寸为4x3并请求仅具有480x360分辨率选项的4x3_playlist.m3u8?

1 个答案:

答案 0 :(得分:5)

2017年更新:

保持相同的宽高比仅是最新HLS authoring指南中的建议:

  

1.33。所有视频变体应该具有相同的宽高比。

原始回答:


  

音频/视频流注意事项:

     

视频宽高比必须准确   相同的,但可以是不同的维度。

Apple Technical Note TN2224 - Best Practices for Creating and Deploying HTTP Live Streaming Media for the iPhone and iPad

选择基于用户代理的播放列表。