如何为ios 270 360 480 720 1080设置视频质量

时间:2018-09-27 05:49:39

标签: ios swift avplayer hls m3u8

设置ios的视频质量。

我尝试从服务器加载m3u8视频url,我下载了m3u8文件,我将所有分辨率与视频质量隔离,然后将其分段以数组的形式获取URL的带宽。

当我加载基本URL sample.m3u8时,它具有视频和音频,之后我设置了分段之前的基本url,并且我从数组中追加了带宽URL,它按照选定的质量加载视频,但没有音频来。

为此,我提出了一些解决方案

我单独运行包含视频和音频的原始url,我分别运行不包含音频以进行同步的低带宽url

例如:RESOLUTION=1280x720,SAMPLE_720p_v4.m3u8

  

SAMPLE.m3u8

#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-0",NAME="Default",AUTOSELECT=YES,DEFAULT=YES,URI="segments/SAMPLE_audio_v4.m3u8"

#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=30681000,CODECS="avc1.640028",URI="segments/SAMPLE_1080p_iframe.m3u8"

#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=30140000,CODECS="avc1.4d001f",URI="segments/SAMPLE_720p_iframe.m3u8"

#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=15431000,CODECS="avc1.42001f",URI="segments/SAMPLE_480p_iframe.m3u8"

#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=11009000,CODECS="avc1.42001e",URI="segments/SAMPLE_360p_iframe.m3u8"

#EXT-X-I-FRAME-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7850000,CODECS="avc1.420015",URI="segments/SAMPLE_270p_iframe.m3u8"


#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4080000,RESOLUTION=1280x720,CODECS="avc1.640028,mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_1080p_v4.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3471000,RESOLUTION=1280x720,CODECS="avc1.4d001f,mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_720p_v4.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1934000,RESOLUTION=854x480,CODECS="avc1.42001f,mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_480p_v4.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1106000,RESOLUTION=640x360,CODECS="avc1.42001e,mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_360p_v4.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=837000,RESOLUTION=480x270,CODECS="avc1.420015,mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_270p_v4.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=185000,CODECS="mp4a.40.2",AUDIO="audio-0"
  

segments / SAMPLE_audio_v4.m3u8

1 个答案:

答案 0 :(得分:1)

在播放机项目https://developer.apple.com/documentation/avfoundation/avplayeritem/1388541-preferredpeakbitrate上使用preferredPeakBitRate属性,您需要传递有效的带宽值。

不确定您为什么要下载m3u8文件,AVFoundation会为您管理此文件。