ReplayKit processSampleBuffer:CMSampleBuffer用于具有内存限制的颜色提取的低质量图像处理

时间:2018-01-29 21:56:51

标签: ios core-image ciimage replaykit cmsamplebuffer

对于我正在处理的应用,我想使用ReplayKit捕获屏幕视频。这会带来一些内存使用限制,当在具有高分辨率的iOS设备(如iPhone X)上运行时,似乎会超出这些限制。在此设备上,简单的图像处理已经崩溃了应用程序。更具体地说:使用CIImageCIContext来提取图像的平均颜色。

有没有办法以更有效的方式提取CMSampleBufferCIImage的颜色?使用低分辨率或低质量图像是没有问题的。

此部分使扩展程序崩溃:

result = [UInt8](repeating: 0, count: 4)
context.render(
    outputImage,
    toBitmap: &result,
    rowBytes: 4,
    bounds: CGRect(x: 0, y: 0, width: 1, height: 1),
    format: kCIFormatRGBA8,
    colorSpace: CGColorSpaceCreateDeviceRGB()
)

outputImage是一个屏幕截图框架CIImage

0 个答案:

没有答案