ios - 从 iOS 8.0.2 到 8.1,录制的高 fps 视频文件有何变化?

标签 ios objective-c video-processing frame-rate ios8.1

我的应用程序可处理来自 iPhone 6/Plus 摄像头的 240 fps 视频,将多个重叠的 AVMutableCompositionTrack 合并到一个合成中以供导出。在应用程序中查看和导出都可以渲染为 30 fps 或原始 fps。

对于在 8.0.2 或更早版本上拍摄的视频,以原始 fps 导出没有任何问题,并且基本上保留原始文件的所有特征(叠加层除外)。对于在 8.1 上拍摄的视频,大约有 50% 的机会合成内容被损坏且无法导出,或者在应用内播放时卡住大约一秒(而音频继续播放一段时间),然后最终因 AVFoundationErrorCode 停止 - 11819, "AVErrorMediaServicesWereReset"。

如果将 240(以及 239.84...)fps 文件的 frameDuration 设置为 1/30、1/60,甚至 1/200 或有时高达 1/220 左右,则播放或导出不会出现问题。导出似乎也比播放更宽容,有时即使播放失败也会继续导出。

我注意到其他应用程序在 8.1 中的变化,例如,当设置为 240 fps 时,MoviePro 现在的录制速度约为 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/

相关文章:

objective-c - NSString 到 NSDate,然后更改格式

Objective-C 最佳实践

ios - 我的应用程序已在App Store发布,AppDelegate中的崩溃是否会发送给Apple?

ios - 在 ios 中更改方向时设置框架大小

iphone - 将.caf转换为.wav格式所需的参数?

python - ffmpeg drawtext 在整个视频空间上重复覆盖文本

video - FFmpeg 在视频上应用颜色过滤器

python - 在python中裁剪视频

objective-c - 从由特殊字符分隔的 NSString 中提取 2 个字符串

html - iOS视口(viewport)设置