CVBufferPool 与 AVAssetWriter 的解释?
Explanation for CVBufferPool with AVAssetWriter?
假设我想用图像制作电影。我被告知要使用 AVAssetWriter
以及 AVAssetWriterInput
来附加 CVPixelBuffer
对象。但我很困惑。
为什么我们创建像素缓冲区,只是为了创建位图上下文来制作电影,然后使用 drawRectInViewHierarchy
绘制?
我不确定你的问题是基于什么信息,但我会尝试解释基础知识。
首先,CVPixelBuffer
是一个存储图像数据的CoreVideo对象。所有处理图像数据的 AVFoundation 类 都使用这种类型的对象。然而,CVPixelBuffer
不是一个简单的对象来构造,您不能简单地从一团 JPEG 或 PNG 数据中实例化一个对象。
创建 CVPixelBuffer
的一种可能方法是从 CGImageDataProvider
调用 CVPixelBufferCreateWithBytes
。可能还有其他可能 and/or 更有效的解决方案。这取决于您开始使用哪种图像。
假设我想用图像制作电影。我被告知要使用 AVAssetWriter
以及 AVAssetWriterInput
来附加 CVPixelBuffer
对象。但我很困惑。
为什么我们创建像素缓冲区,只是为了创建位图上下文来制作电影,然后使用 drawRectInViewHierarchy
绘制?
我不确定你的问题是基于什么信息,但我会尝试解释基础知识。
首先,CVPixelBuffer
是一个存储图像数据的CoreVideo对象。所有处理图像数据的 AVFoundation 类 都使用这种类型的对象。然而,CVPixelBuffer
不是一个简单的对象来构造,您不能简单地从一团 JPEG 或 PNG 数据中实例化一个对象。
创建 CVPixelBuffer
的一种可能方法是从 CGImageDataProvider
调用 CVPixelBufferCreateWithBytes
。可能还有其他可能 and/or 更有效的解决方案。这取决于您开始使用哪种图像。