首先; 我不想通过使用上下文;无论是 CIContext、CGContext 等。原因是这些方法是内存密集型的,它会导致应用程序扩展达到任意内存上限。
已验证方法中返回的缓冲区:
override func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with
sampleBufferType: RPSampleBufferType) {
是类型:
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
但是,当尝试将双平面数据转换为可用图像时,它会严重失真或颜色褪色。
已尝试使用libyuv
以尝试进行一些转换,但由于缺乏文档而感到困惑。已尝试创建I420缓冲区或NV12缓冲区以尝试将其转换为图像,但不确定我是否做得对。
已尝试使用Metal Framework 和 vImage方法,但我仍然没有任何运气。所以找个例子;朝着正确的方向轻推。