CVBufferPool 与 AVAssetWriter 的解释?

Explanation for CVBufferPool with AVAssetWriter?

假设我想用图像制作电影。我被告知要使用 AVAssetWriter 以及 AVAssetWriterInput 来附加 CVPixelBuffer 对象。但我很困惑。

为什么我们创建像素缓冲区,只是为了创建位图上下文来制作电影,然后使用 drawRectInViewHierarchy 绘制?

我不确定你的问题是基于什么信息,但我会尝试解释基础知识。

首先,CVPixelBuffer是一个存储图像数据的CoreVideo对象。所有处理图像数据的 AVFoundation 类 都使用这种类型的对象。然而,CVPixelBuffer 不是一个简单的对象来构造,您不能简单地从一团 JPEG 或 PNG 数据中实例化一个对象。

创建 CVPixelBuffer 的一种可能方法是从 CGImageDataProvider 调用 CVPixelBufferCreateWithBytes。可能还有其他可能 and/or 更有效的解决方案。这取决于您开始使用哪种图像。