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