Ios CVPixelBuffer到NSData并返回
刚开始视频处理,我在这里呆了几天 我有一个YUV(YCbCr 4:2:0)格式的CVPixelBufferRef。我使用CVPixelBufferGetBaseAddress获取基址 如何获取基址处的字节并创建一个新的CVPixelBufferRef,一个同样采用YUV格式的CVPixelBufferRef 我试过:Ios CVPixelBuffer到NSData并返回,ios,objective-c,opengl-es,avfoundation,Ios,Objective C,Opengl Es,Avfoundation,刚开始视频处理,我在这里呆了几天 我有一个YUV(YCbCr 4:2:0)格式的CVPixelBufferRef。我使用CVPixelBufferGetBaseAddress获取基址 如何获取基址处的字节并创建一个新的CVPixelBufferRef,一个同样采用YUV格式的CVPixelBufferRef 我试过: CVPixelBufferCreateWithBytes(CFAllocatorGetDefault(),1440900,kCVPixelFormatType_420YPCBCRC
CVPixelBufferCreateWithBytes(CFAllocatorGetDefault(),1440900,kCVPixelFormatType_420YPCBCRC8biplanarFullRange,currentFrame,2208,NULL,NULL,(pixelBufferAttributes),&imageBuffer)代码>
它创建了一个CVPixelBufferRef,但我不能用它做任何事情(例如,将它转换为CIImage,渲染它,等等)
最终,我的目标是获取从基址调用接收到的字节,并将它们显示在屏幕上。我知道我可以不使用基址调用直接执行此操作,但我有一个限制,仅允许我接收基址字节。仅供参考
我无法从CVPixelBuffer获取CIImage的原因是它没有iSurface支持。为确保其支持IOSurface,请使用CVPixelBufferCreate,然后使用CVPixelBufferGetBaseAddress(如果是平面数据,则使用CVPixelBufferGetBaseAddressOfPlane)并将字节存储到该地址中
希望这对将来的人有所帮助。如果您添加示例代码,它将帮助更多:)