私はすべてのCMSampleBufferを変換しています。サーバー側のレンダリングのためにそれらをサーバーに送信します。データをサーバーに送信する前に、このコードを使用しています。しかし、十分なフレームを取得していないようです (10 秒のビデオで約 27 フレーム? リストでは、1 秒あたり約 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
}