Я записываю несколько кадров в видео с помощью AVAssetWriterInputPixelBufferAdaptor
, и поведение по времени не такое, как я ожидал.
] Если я напишу только один кадр:
[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
.