无法在某些iPad上播放更高分辨率的视频

时间:2015-03-31 15:57:00

标签: ios ipad cocoa-touch video mpmovieplayercontroller

我正在尝试使用MPMoviePlayerController播放视频。在某些iPad上,视频播放,在其他iPad上则没有。

以下是代码:

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 Level 3.0视频,最高640 x 480,30 fps。   (基线配置文件不支持B帧。)

     

MPEG-4第2部分视频(简单配置文件)

最初,我们使用更高分辨率的H.264,视频与我们的测试人员合作。不幸的是,我无法在我的iPad(第4代)上播放视频。我们保留了现有的分辨率并尝试了MPEG-4 Part 2视频,但视频再次无效。我们可以让视频可靠地工作的唯一方法是将分辨率大幅降低到480 x 640.结果看起来很糟糕。

我添加了通知以监控负载状态,对于无效的视频,模式将从MPMovieLoadStateUnknown转到MPMovieLoadStatePlayable返回MPMovieLoadStateUnknown。效果正常的视频会从MPMovieLoadStateUnknown转到MPMovieLoadStatePlayableMPMovieLoadStatePlayable|MPMovieLoadStatePlaythroughOK

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

为了让更高分辨率的视频在iPad上运行,我可能会考虑接下来要检查什么?

1 个答案:

答案 0 :(得分:0)

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

  

支持视频格式:H.264视频高达1080p,每帧30帧   第二,高配置4.1级,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文件格式的音频; Motion JPEG(M-JPEG)最高可达   35 Mbps,1280 x 720像素,每秒30帧,ulaw音频,PCM   .avi文件格式的立体声音频

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