Я пишу несколько кадров для видео с помощью AVAssetWriterInputPixelBufferAdaptor
, а поведение w.r.t. время не то, что я ожидаю.
Если я пишу только один кадр:
[videoWriter startSessionAtSourceTime:kCMTimeZero];
[adaptor appendPixelBuffer:pxBuffer withPresentationTime:kCMTimeZero];
это дает мне видео с нулевой длиной, что и я ожидаю.
Но если я добавлю второй кадр:
// 3000/600 = 5 sec, right?
CMTime nextFrame = CMTimeMake(3000, 600);
[adaptor appendPixelBuffer:pxBuffer withPresentationTime:nextFrame];
Я получаю десять секунд видео, где я ожидаю пять.
Что здесь происходит? Установляет ли withPresentationTime
как начало кадра, так и продолжительность?
Обратите внимание, что я не звоню endSessionAtSourceTime
, просто finishWriting
.