2017-07-24 64 views
0

我想上传视频到服务器使用AVFoundation捕获video.Core媒体表示视频数据使用CMSampleBuffer但如何获取视频数据,所以我可以发送到服务器?有一个关于将CMSampleBuffer转换为UIImage对象的示例,但我找不到有关将CMSampleBuffer转换为NSData对象的示例。如何导出视频帧到NSData从CMSampleBufferRef

回答

0

可以渲染图像,并使用CIContext实例中导出生成的图像数据:

guard let buffer = CMSampleBufferGetImageBuffer(self) else { return nil } 

let ciImage = CIImage(cvPixelBuffer: buffer) 
let context = CIContext() 
let colorSpace = CGColorSpaceCreateDeviceRGB() 
let data = context.jpegRepresentation(of: ciImage, colorSpace: colorSpace, options:[:]) 

了解更多信息,请参见Apple documentation,还有像其他的选择:tiffRepresentation(of:format:colorSpace:options:)pngRepresentation(of:format:colorSpace:options:)