【问题标题】:Unable to play higher resolution video on some iPads无法在某些 iPad 上播放更高分辨率的视频
【发布时间】:2015-06-05 01:14:57
【问题描述】:

我正在尝试使用 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。 (Baseline 配置文件不支持 B 帧。)

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

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

我添加了通知以监控加载状态,对于无法播放的视频,模式将从MPMovieLoadStateUnknown 变为MPMovieLoadStatePlayable 再返回MPMovieLoadStateUnknown。运行良好的视频将从MPMovieLoadStateUnknownMPMovieLoadStatePlayable 再到MPMovieLoadStatePlayable|MPMovieLoadStatePlaythroughOK

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

有什么想法可以让我下一步检查以使更高分辨率的视频在 iPad 上运行吗?

【问题讨论】:

    标签: ios ipad cocoa-touch video mpmovieplayercontroller


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2016-09-03
      相关资源
      最近更新 更多