具有非恒定帧速率的AVAssetWriter

时间:2017-11-16 08:05:46

标签: ios avassetwriter

我试图将一系列JPG图像导出到H264电影中(理想情况下它会是一部动画JPEG电影,但遗憾的是AVAssetWriter不支持此编解码器。)

图像附带VFR(可变帧率)的监控摄像头,因此我根据捕获的时间计算CMTime,由于VFR摄像头的工作方式,导致非恒定帧速率。

但是当我这样做时,AVAssetWriter总是无法呈现电影:

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-16364), NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x604000245a90 {Error Domain=NSOSStatusErrorDomain Code=-16364 "(null)"}}

当我将CMTime个实例更改为例如CMMakeTime( frameIndex * 150, 600 )它有效。

我知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

-16364是无效时间码的代码。结果我为我写的最后一个图像计算了一个错误的CMTime,这使得时间向后AVAssetWriter不喜欢这样 - 这是正确的。

感谢Apple Developer Forum帮助我解决这个问题的bford。