2017-06-14 69 views
0

通过视频.m38u文件的URL支持我目前正在与HTTP实时流视频分辨率AVPlayerViewController/AVPlayer如何获取在迅速

我是玩.m38u文件的视频支持

它打细但我的问题是,我可以像视频数据一样设置4种类型的分辨率,同时生成.m38u文件..,我可以改变我的终点的解决方案现在的问题是如何获得所有值,我已在我的端点进行设置。我玩这是在Android也和使用轨道我能够获取所有的视频信息,但在iOS我怎样才能获取所有的细节包含视频像它的高度,跟踪,视频支持的分辨率等。

我有很多搜索,但没能成功..需要提前帮助谢谢

#EXTM3U 

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/stereo/en/128kbit.m3u8" 
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8" 

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/surround/en/320kbit.m3u8" 
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8" 

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8" 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subtitles_en.m3u8" 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Espanol",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subtitles_es.m3u8" 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fr",URI="subtitles_fr.m3u8" 

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=258157,CODECS="avc1.4d400d,mp4a.40.2",AUDIO="stereo",RESOLUTION=422x180,SUBTITLES="subs" 
video/250kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs" 
video/500kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=831270,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs" 
video/800kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1144430,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=958x408,SUBTITLES="subs" 
video/1100kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1558322,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=1277x554,SUBTITLES="subs" 
video/1500kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4149264,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs" 
video/4000kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6214307,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs" 
video/6000kbit.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=10285391,CODECS="avc1.4d4033,mp4a.40.2",AUDIO="surround",RESOLUTION=4096x1744,SUBTITLES="subs" 
video/10000kbit.m3u8 

回答

0

是的,你可以得到视频的自然大小,如果在播放器中播放。 正如你所说你在播放AVPlayer中的URL,然后使用下面的代码来获得播放曲目的自然大小。

if let track = self.tampPlayer?.currentItem?.tracks.first { 
     print("Size = \(track.assetTrack.naturalSize)") 
} 

无论网址是什么,如果在播放器中播放,视频的尺寸将有变化。

+0

我在说分辨率大小....我怎么能得到....我必须创建像质量清单和基于选定的决议像你管.....你有任何解决方案????? –

+0

我托盘你的代码,但它返回我 〜DemoVideo.MediaPlaylist –

+0

好吧,所以你说的是视频质量? –