我正在尝试以预期的帧速率将 CVPixelBuffers 附加到 AVAssetWriterInputPixelBufferAdaptor,但它似乎太快了,而且我的数学已经关闭。这不是从相机捕捉,而是捕捉变化的图像。实际视频比捕获它的经过时间快得多。
我有一个函数每 1/24 秒附加一次 CVPixelBuffer。所以我试图在最后一次添加 1/24 秒的偏移量。
我试过了:
let sampleTimeOffset = CMTimeMake(value: 100, timescale: 2400)
和:
let sampleTimeOffset = CMTimeMake(value: 24, timescale: 600)
和:
let sampleTimeOffset = CMTimeMakeWithSeconds(0.0416666666, preferredTimescale: 1000000000)
我添加到 currentSampleTime 并像这样附加:
self.currentSampleTime = CMTimeAdd(currentSampleTime, sampleTimeOffset)
let success = self.assetWriterPixelBufferInput?.append(cv, withPresentationTime: currentSampleTime)
我想到的另一种解决方案是获取上次时间和当前时间之间的差异,并将其添加到 currentSampleTime 以确保准确性,但不确定如何执行。