2015-03-31 77 views
0

我正在尝试使用MPMoviePlayerController播放视频。在某些iPad上,视频播放时,在其他iPad上没有。无法在某些iPads上播放更高分辨率的视频

下面是代码:

NSURL *url = [NSURL fileURLWithPath:[self videoPath]]; 
self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
self.moviePlayerController.view.frame = self.view.bounds; 
self.moviePlayerController.repeatMode = MPMovieRepeatModeOne; 
self.moviePlayerController.controlStyle = MPMovieControlStyleNone; 
[self.moviePlayerController prepareToPlay]; 
... add to subview, play ... 

的MPMoviePlayerController列出了以下压缩限制:

H.264 Baseline Profile的3.0级视频,高达640×480每秒30帧。 以更高的分辨率(基线配置文件不支持B帧)。

MPEG-4第2部分视频(简单类)

最初,我们使用H.264,并与一些视频合作我们的测试人员。不幸的是,我无法将视频播放到iPad(第4代)上。我们保留了现有的分辨率并尝试了MPEG-4 Part 2视频,但是又一次,视频无法使用。我们能够可靠地运行视频的唯一方法是将分辨率降至480 x 640.结果看起来很糟糕。

我添加了通知来监视加载状态,对于失败的视频,模式将从MPMovieLoadStateUnknownMPMovieLoadStatePlayable回到MPMovieLoadStateUnknown。工作正常的视频将从MPMovieLoadStateUnknownMPMovieLoadStatePlayableMPMovieLoadStatePlayable|MPMovieLoadStatePlaythroughOK

我检查了errorLogs和accessLogs,它们都是空的。

想知道为了让更高分辨率的视频能够在iPad上工作,接下来可能会检查什么?

回答

0

好的,所以Apple的MPMoviePlayerController文档有点过时了。我提到每台iPad的技术规格和它揭示了问题的根源:支持

视频格式:H.264视频,最高达1080P,每 第二,High Profile的4.1级30帧采用AAC-LC音频,高达至160 Kbps, 48kHz,立体声音频为.m4v,.mp4和.mov文件格式; MPEG-4视频 高达2.5 Mbps,640 x 480像素,每秒30帧,简单 配置文件AAC-LC音频高达每通道160 Kbps,48kHz,立体声 音频.m4v,.mp4和.mov文件格式;运动JPEG(M-JPEG)高达35 Mbps的,1280由720像素,每秒30帧,在ULAW音频,PCM在.avi文件格式 立体声音频

我用视频以较高的分辨率比使用H.264压缩的1080p和MPEG-4高于支持的分辨率。一旦我们降低了分辨率,一切都很完美。