我正试图解决这个问题。我想使用 AVAssetWriterInput 在OSX上使用Swift录制实时视频。
我创建了一个名为input
的 AVAssetWriterInput 实例,我想将数据附加到输入,然后将其写入文件。
我将 expectedMediaDataInRealTime 设置为true
,就像它在文档中说的那样。当我运行应用程序时,我收到此错误:
Cannot append sample buffer: Cannot call method when status is 0
我使用 captureOutput 从相机中获取数据。
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) {
// defined on load
// var input:AVAssetWriterInput
// Here I get an error
input.append(sampleBuffer)
}
AVAssetWriterInput是否会处理视频的编码?如果我还要传输数据,我应该使用2个编写器吗?
由于
答案 0 :(得分:1)
确保在input.append(sampleBuffer)之前调用AVAssetWriter.startWriting()