iOS:如何修复使用AVAssetWriter保存电影的半尺寸帧

时间:2011-02-04 22:32:33

标签: iphone ios4 avfoundation avassetwriter

我正在用AVAssetWriter和AVAssetWriterInputPixelBufferAdaptor编写一个电影文件。

用于构建CVPixelBuffer的CGImage看起来很正常(如屏幕上所示),输出影片显示压缩到帧的上半部分的输入图像。所有宽度,高度和bytes_per_row都是相同的(对于CGImage,AVAssetWriter设置和CVPixelBuffer设置)。

可能导致这类问题的原因是什么?

1 个答案:

答案 0 :(得分:3)

问题来自以下事实:当您向AVAssetWriterInputPixelBufferAdaptor提供设置以用于配置CVPixelBufferPool以生成CVPixelBuffers时,CVPixelBufferPool显然将设置用作请求而不是实际设置。您获得的CVPixelBuffer可能具有不同的配置。这可能是Apple代码中的一个错误,我不确定。

在任何情况下,您都可以使用CVPixelBufferGetBytesPerRow(CVPixelBuffer)读取每行的实际字节数,并相应地调整您的代码。为我工作!