2

我的应用程序适用于来自 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 可变性的问题,但我该如何处理呢?或者它可能只是一个错误?

4

2 回答 2

1

似乎是 AVPlayer 和 AVExportSession 中的错误。使用 AVAssetWriter 导出没有问题。

Apple 最新更新的示例项目 AVCustomEdit 使用自定义 OpenGL 合成器进行剪辑之间的转换,在修改为拍摄 iOS 8.1 240 fps 视频并以接近 240 的帧速率播放时也出现了同样的问题。

不敢相信我花了 30 个小时试图找出问题所在,而避开它是如此容易。

于 2014-11-05T22:14:44.553 回答
1

我注意到 8.1 的其他应用程序发生了变化,例如 MoviePro 现在在设置为 240 fps 时以 207-209 fps 左右的速度录制

这是 MoviePro 应用程序中的一个错误,在即将提交的更新中已修复。在 iOS 8.1 上,新的更新待提交记录在所有比特率下都非常接近 240 fps。

于 2014-11-06T14:50:03.633 回答