我的应用程序使用来自 iPhone 6/Plus 相机的 240 fps 视频,将多个重叠的 AVMutableCompositionTrack 组合成一个合成以供导出。在应用中查看和导出都可以渲染为 30 fps 或原始 fps。
对于在 8.0.2 或之前拍摄的视频,以原始 fps 导出并基本上保留原始文件的所有特征(叠加层除外)没有任何问题。对于在 8.1 上拍摄的视频,大约有 50% 的可能性是合成损坏并且无法导出,或者当在应用内播放时卡住大约一秒钟(而音频继续播放一段时间),然后最终以 AVFoundationErrorCode 停止 - 11819,“AVErrorMediaServicesWereReset”。
如果 frameDuration 改为设置为 1/30、1/60、甚至 1/200 或有时对于 240(以及 239.84...)fps 文件高达 1/220 左右,则播放或导出没有问题.导出似乎也比播放更宽容一些,有时甚至在播放失败时也会通过。
我注意到 8.1 的其他应用程序发生了变化,例如 MoviePro 现在在设置为 240 fps 时以 207-209 fps 左右录制,有时在设置为 60 时录制为 59,而 Apple 的 SloPoke 示例也更具可变性,通常以235-236 之间的各种值。不过,Apple 的相机应用程序仍为 239.84。
有谁知道发生了什么变化以及如何解决它?显然是关于 fps 可变性的问题,但我该如何处理呢?或者它可能只是一个错误?
似乎是 AVPlayer 和 AVExportSession 中的一个错误。使用 AVAssetWriter 导出没有问题。
Apple 最新更新的示例项目 AVCustomEdit 使用自定义 OpenGL 合成器进行剪辑之间的转换,在修改为拍摄 iOS 8.1 240 fps 视频并以接近 240 的帧速率播放时也出现了同样的问题。
不敢相信我花了 30 个小时试图找出问题所在,而避开它这么容易。
关于ios - 从 iOS 8.0.2 到 8.1 录制的高 fps 视频文件的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763944/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |