0

私はすべての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
}
4

0 に答える 0