从CMSampleBuffer创建视频

时间:2020-06-10 19:36:29

标签: swift avfoundation avkit replaykit

我正在尝试使用 AVAssetWriter CMSampleBuffer 数组创建视频。代码在运行时没有错误,但输出视频为零字节。

assetWriterInput.requestMediaDataWhenReady(on: mediaQueue) {
            while assetWriterInput.isReadyForMoreMediaData {
                if counter > 0 {
                    assetWriterInput.append(
                        self.sourceSampleBufferArray[counter - 1]
                    )
                    counter = counter - 1
                } else {
                    assetWriterInput.markAsFinished()
                    assetWriter?.finishWriting(
                        completionHandler: {
                            if let url = assetWriter?.outputURL {
                                self.url = url

                                if FileManager.default.fileExists(
                                    atPath: url.path
                                    ) {

                                    print("==========")
                                    print("File Exist")
                                    print("==========")

                                    do {
                                        let data = try Data(contentsOf: url)
                                        print("==============")
                                        print("Data : \(data)")
                                        print("==============")
                                    } catch {
                                        print("==============")
                                        print("Error: \(error)")
                                        print("==============")
                                    }

                                } else {
                                    print("=============")
                                    print("No File Exist")
                                    print("=============")
                                }

                            }
                            isFinished = true
                        }
                    )
                    break
                }
            }
        }

上面是我用来创建视频的代码。任何帮助将非常感激。在此先感谢

0 个答案:

没有答案