我正在从相机获取 kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange 格式的 CMSampleBuffers。像素缓冲区是 10 位 HDR。我需要使用 ProRes422 编解码器录制视频,但使用 AVAssetWriter 以非 HDR 格式录制视频。我不确定实现它的可靠方法是什么。我所做的只是简单地设置 AVAssetWriter 视频压缩字典如下:
compressionSettings[AVVideoTransferFunctionKey] = AVVideoTransferFunction_ITU_R_709_2
compressionSettings[AVVideoColorPrimariesKey] = AVVideoColorPrimaries_ITU_R_709_2
compressionSettings[AVVideoYCbCrMatrixKey] = AVVideoYCbCrMatrix_ITU_R_709_2
有效,最终视频录制显示色彩空间为 HD 1-1-1,使用 Apple ProRes 编解码器。但我不确定 AVAssetWriter 是否真的执行了从 HDR 10 到 BT.709 的 colorSpace 转换,或者只是将颜色剪裁到了范围之外。