我正在尝试使用 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
}
}
}
上面是我用来创建视频的代码。任何帮助将非常感激。在此先感谢