AVAssetWriterInputPixelBufferAdaptor и CMTime

Я записываю несколько кадров в видео с помощью 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 .

14
задан Dhaivat Pandya 27 April 2011 в 18:12
поделиться