我的应用程序适用于来自 iPhone 6/Plus 相机的 240 fps 视频,将多个叠加的 AVMutableCompositionTracks 组合到一个合成中以供导出。在应用程序中查看和导出都可以渲染为 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 可变性的问题,但我该如何处理呢?或者它可能只是一个错误?