如果以240fps

时间:2018-03-19 17:36:35

标签: objective-c video avfoundation camera-calibration

我正在使用AVCaptureVideoDataOutputSampleBufferDelegate captureOutput:didOutputSampleBuffer:fromConnection:委托方法捕获视频缓冲区,然后使用AVAssetWriter写出文件。在配置录制会话时,我正在检查相机内在交付支持,并启用此功能从缓冲区中获取内在函数:

    if (@available(iOS 11.0, *)) {
        if (self.connection.isCameraIntrinsicMatrixDeliverySupported) {
            self.connection.cameraIntrinsicMatrixDeliveryEnabled = YES;
        }
    }

captureOutput:didOutputSampleBuffer:fromConnection:中,我使用以下方式获取内在函数:

CFTypeRef cameraIntrinsicData = CMGetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix, nil);

一切正常,我可以提取我想要的内在值 - 以60fps或120fps录制时。

当相机格式改变为设置适当的720p(先前在初始设备检测和配置期间检测并保存 - 我尝试420f或420v格式 - 没有区别)格式并且帧率设置为240 fps时,没有内在函数可用 - 或者更确切地说,非常低且有效的零值在内在矩阵中传递。

检查self.connection.isCameraIntrinsicMatrixDeliverySupportedcaptureOutput:didOutputSampleBuffer:fromConnection:的值,以60 fps或120 fps的速度返回YES,但{f}返回240 fps的NO。它似乎不再以更高的帧速率返回。

有没有人知道为什么会这样 - 或者是否有任何关于在所有帧速率下持续检索内在函数的建议?

提前感谢您的帮助!

0 个答案:

没有答案