AVAssetWriterInputPixelBufferAdaptor y CMTime
Estoy escribiendo algunos cuadros para video conAVAssetWriterInputPixelBufferAdaptor
, y el comportamiento w.r.t. el tiempo no es lo que esperaría.
Si escribo solo un cuadro:
[videoWriter startSessionAtSourceTime:kCMTimeZero];
[adaptor appendPixelBuffer:pxBuffer withPresentationTime:kCMTimeZero];
esto me da un video de longitud cero, que es lo que espero.
Pero si continúo agregando un segundo marco:
// 3000/600 = 5 sec, right?
CMTime nextFrame = CMTimeMake(3000, 600);
[adaptor appendPixelBuffer:pxBuffer withPresentationTime:nextFrame];
Recibo diez segundos de video, donde espero cinco.
¿Que está pasando aqui? HacewithPresentationTime
establece de alguna manera tanto el inicio del marco como la duración?
Nota que no estoy llamandoendSessionAtSourceTime
, sólofinishWriting
.