3

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

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

什么可能导致这种问题?

4

1 回答 1

3

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

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

于 2011-02-18T00:02:50.210 回答