在 iOS 应用程序中播放视频 .mov 文件的解决方法?也与 Adob​​e Flash 动画相关

Workaround playing a video .mov file in iOS app? Also related to Adobe Flash Animations

在 Whosebug 和 Class 参考资料上进行了大量研究后,iOS MPMoviePlayerController 无法播放 .mov 视频文件。 AVPlayer可以播放.mov文件但是没有控件

我希望我的应用程序能够播放 .mov 文件,因为 Adob​​e Flash Animation 提供了 .mov 作为最干净和原生的视频。如果我将同一视频转换为 mp4(支持的格式),即使我将视频速率设置为 100 MB/s 和最高质量的视频,也会出现质量损失。

讽刺的是,QuickTime是Apple的知识产权,其产品不支持.mov视频文件。

如何解决这个问题?

MPMoviePlayerController(通常 iOS)支持 .mov 文件。参见 Apple 的 class documentation, section "Supported Formats"。但仅支持有限数量的视频编解码器。

具有欺骗性的是,Quicktime“.mov”格式不是视频编解码器,而是 audio/video 容器格式,可以在任意数量的压缩编解码器 (h. 264、mpeg2、ProRes、MJPEG、AAC、mp3 等)

您的文件不起作用,因为它们包含使用 iOS 不支持的编解码器压缩的视频(如果它们是 Flash 动画,可能是 PhotoJPEG?)。您可以通过在 Mac OS X 上的 Quicktime Player 中打开视频并单击 Window 菜单中的 "Show Movie Inspector" 来检查视频的格式。

无法向本机 iOS 视频播放系统(MPMoviePlayerController 和朋友)添加对其他编解码器的支持。这留下了两个选择;

  • 重新压缩您的文件以使其兼容
  • 使用不同的视频播放框架。

你说你已经尝试过重新压缩文件,但这仍然是最好的选择。 我鼓励您尝试使用 Handbrake 重新压缩文件。 h.264 编解码器具有出色的效果(请参阅蓝光电影、iTunes 电影商店等)

如果您确实必须以当前格式播放动画,则需要使用其他视频播放框架。我建议您查看 excellent VideoLan project (I'm having problems accessing the VLCKit project pages, but a fork is available here) 中的 libVLC 和 VLCKit。请注意,非本地视频播放很可能不会进行硬件加速,因此会消耗用户的电池。

最后一件事,如果您的视频简短且无声……动画 GIF 是否可以作为一种选择?