视频处理方面的新知识,并在这里停留了几天。

我有一个YUV(YCbCr 4:2:0)格式的CVPixelBufferRef。我使用CVPixelBufferGetBaseAddress获取基地址。

如何获取基地址处的字节并创建一个新的CVPixelBufferRef,它也具有相同的YUV格式?

我试过了:
CVPixelBufferCreateWithBytes(CFAllocatorGetDefault(), 1440, 900, kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, currentFrame, 2208, NULL, NULL, (pixelBufferAttributes), &imageBuffer);
它创建了一个CVPixelBufferRef,但我无法对其进行任何处理(即将其转换为CIImage,对其进行渲染等)。

最终,我的目标是获取从基址调用中收到的字节,并将其仅显示在屏幕上。我知道我可以直接执行此操作而无需调用基地址,但是我有一个限制,那就是只允许我接收基地址字节。

最佳答案

以供引用,

我无法从CVPixelBuffer获取CIImage的原因是因为它不是IOSurface支持的。为了确保它支持IOSurface,请使用CVPixelBufferCreate,然后使用CVPixelBufferGetBaseAddress(如果是平面数据,则使用CVPixelBufferGetBaseAddressOfPlane),并将字节存储到该地址中。

希望这对以后的人有所帮助。

关于ios - CVPixelBuffer到NSData并返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26392260/

10-10 00:34