适用于4k @ 60 FPS视频录制的iOS 11 API

时间:2018-05-19 06:15:50

标签: ios swift video avfoundation

我的iPhone X运行11.3。我一直在使用AVFoundation,AVCaptureSession,AVAssetWriter等,并获得了h.265 HEVC 4K @ 30 FPS ...但是,经过数小时的谷歌搜索后,我还没有找到任何文档或示例4k @ 60 FPS捕捉。我试图通过minFrameDuration等属性强制它,但我总是收到错误。

我并没有要求你为我做我的所有工作(虽然如果你想给我写一个4k @ 60视图控制器,是的,请!)但如果你能指出我正确的方向,特别是,哪个API在iPhone X上支持这个。如果我知道只有AVAssetWriter会这样做,那么,我可以反击它几个小时:)

1 个答案:

答案 0 :(得分:0)

花了我一段时间才能找到以4k和60fps录制视频的答案。 我的设置是iphone X,Swift 4和iOS 12.3

  • 确保将捕获设备设置为AVCaptureDevice.default(用于:.video)! 不要使用AVCaptureDevice.DiscoverySession,因为它不会返回 AVCaptureDevice.Format中的4k和60fps设置。
  • 通过格式数组循环查找并设置所需的格式。 4k和60fps的所需格式应如下所示: AVCaptureDeviceFormat:0x2820d8700'视频'/'420v'。 3840x2160,{3-60 fps} ...

最后是使用AVOutputSettingsAssistant类在AVAssetWriter中配置输出设置字典。输出设置应为AVOutputSettingsPresetHEVC3840x2160。如果将视频设置设置为AVOutputSettingsPreset3840x2160,则视频输出将变得不稳定。