我正在用AVAssetWriter和AVAssetWriterInputPixelBufferAdaptor编写一个电影文件。
用于构建CVPixelBuffer的CGImage看起来很正常(如屏幕上所示),输出影片显示压缩到帧的上半部分的输入图像。所有宽度,高度和bytes_per_row都是相同的(对于CGImage,AVAssetWriter设置和CVPixelBuffer设置)。
可能导致这类问题的原因是什么?
答案 0 :(得分:3)
问题来自以下事实:当您向AVAssetWriterInputPixelBufferAdaptor提供设置以用于配置CVPixelBufferPool以生成CVPixelBuffers时,CVPixelBufferPool显然将设置用作请求而不是实际设置。您获得的CVPixelBuffer可能具有不同的配置。这可能是Apple代码中的一个错误,我不确定。
在任何情况下,您都可以使用CVPixelBufferGetBytesPerRow(CVPixelBuffer)读取每行的实际字节数,并相应地调整您的代码。为我工作!