我glReadPixels
用来将数据读入CVPixelBufferRef
. 我将CVPixelBufferRef
用作 的输入AVAssetWriter
。不幸的是,像素格式似乎不匹配。
我认为glReadPixels
返回RGBA格式的像素数据,而AVAssetWriter
想要ARGB格式的像素数据。将RGBA转换为ARGB的最佳方法是什么?
这是我到目前为止所尝试的:
- 沿 argb = (rgba >> 8) | 行的位操作 (RGB << 24)
- 使用 a
CGImageRef
作为中间步骤
位操作不起作用,因为 CVPixelBufferRef 似乎不支持下标。中间CGImageRef
步骤确实有效......但我不希望有 50 行可能会影响性能的额外代码。