Objective c 如果以240fps的速度录制,AVFoundation视频录制不会返回相机内部信息
我正在使用Objective c 如果以240fps的速度录制,AVFoundation视频录制不会返回相机内部信息,objective-c,video,avfoundation,camera-calibration,Objective C,Video,Avfoundation,Camera Calibration,我正在使用AVCaptureVideoDataOutputSampleBufferDelegate captureOutput:didOutputSampleBuffer:fromConnection:delegate方法捕获视频缓冲区,然后使用AVAssetWriter将其写入文件。配置录制会话时,我正在检查是否支持摄像头内部接口交付,并启用此功能以从缓冲区拾取内部接口: if (@available(iOS 11.0, *)) { if (self.connectio
AVCaptureVideoDataOutputSampleBufferDelegate captureOutput:didOutputSampleBuffer:fromConnection:
delegate方法捕获视频缓冲区,然后使用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时,没有可用的内部参数-或者,在本质矩阵中传递非常低且有效的零值
检查captureOutput:didOutputSampleBuffer:fromConnection:
中的self.connection.isCameraInSicMatrixDeliverySupported
的值以60 fps或120 fps的速度返回YES
,但以240 fps的速度返回NO
。在较高的帧速率下,它似乎不再返回
有人知道这是为什么吗?或者有人建议在所有帧速率下一致地检索内部函数吗
提前感谢您的帮助