如何在MPMoviePlayerController中播放webm流视频?

时间:2014-07-02 04:01:22

标签: objective-c video mpmovieplayercontroller

我有网络视频文件的网址。如何在MPMoviePlayerController中播放它们? 我试过这个

NSURL* videoURL = [NSURL URLWithString:self.hack.video];
MPMoviePlayerController* mPlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
mPlayer.movieSourceType = MPMovieSourceTypeStreaming;
mPlayer.view.backgroundColor = [UIColor grayColor];
[mPlayer.view setFrame:self.videoView.bounds];
[mPlayer prepareToPlay];
[mPlayer play];
[self.videoView addSubview:mPlayer.view];
self.videoView = mPlayer.view;

使用MP4网址时效果很好,但只显示带有网络视频的背景颜色。

3 个答案:

答案 0 :(得分:2)

来自MPMoviePlayerController doc,

  

支持的格式

     

此类播放iOS中支持的任何电影或音频文件。这个   包括流内容和固定长度文件。对于电影   文件,这通常意味着扩展名为.mov,.mp4的文件,   .mpv和.3gp并使用以下压缩标准之一:

H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. (The Baseline profile does not support B frames.)

MPEG-4 Part 2 video (Simple Profile)
     

如果您使用此课程播放音频文件,则会显示白屏   音频播放时带有QuickTime徽标。对于音频文件,这个   class支持高达48 kHz的AAC-LC音频和MP3(MPEG-1音频   第3层)高达48 kHz,立体声音频。

iOS不支持webm格式。

答案 1 :(得分:1)

如果您想支持其他编解码器,请尝试ffmpeg

答案 2 :(得分:0)

视频必须采用iOS支持的格式。 WebM格式与在iOS中播放视频的可接受格式不同。您可能需要使用MPMoviePlayerController将这些视频文件转换为播放。

iOS支持许多行业标准视频格式和压缩标准,包括以下内容:

  • H.264视频,最高1.5 Mbps,640 x 480像素,每秒30帧, 具有AAC-LC的H.264基线配置文件的低复杂度版本 音频高达160 Kbps,48 kHz,立体声音频,.m4v,.mp4和.mov 文件格式。

  • H.264视频,最高768 Kbps,320 x 240像素,每秒30帧, 基线配置文件高达1.3级,AAC-LC音频高达160 Kbps,48 kHz,.m4v,.mp4和.mov文件格式的立体声音频。

  • MPEG-4视频,最高2.5 Mbps,640 x 480像素,每帧30帧 第二,简单配置文件,AAC-LC音频高达160 Kbps,48 kHz, .m4v,.mp4和.mov文件格式的立体声音频。

  • 多种音频格式,包括“音频”中列出的格式 技术”。

https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html#//apple_ref/doc/uid/TP40007898-CH9-SW6