我正在转换所有 CMSampleBuffers。并将它们发送到服务器进行服务器端渲染。在将数据发送到服务器之前,我正在使用此代码。但看起来我没有获得足够的帧(一个 10 秒的视频大约 27 帧?应该是每秒大约 30 帧,在列表中)。
我在做什么错?是。甚至可以从 CMSampleBuffers 获取数据?
func getDataFromCMSampleBuffer (sampleBuffer: CMSampleBuffer) -> Data? {
if CMSampleBufferDataIsReady (sampleBuffer),
let pixelBuffer = CMSampleBufferGetImageBuffer (sampleBuffer) {
let ciImage = CIImage (cvImageBuffer: pixelBuffer)
let image = UIImage (ciImage: ciImage)
return (image.jpegData (compressionQuality: 0.5)) // Error Thread 7: EXC_RESOURCE RESOURCE_TYPE_MEMORY (limit = 50 MB, unused = 0x0)
}
return nil
}