¿Qué gobierna la velocidad de reproducción al codificar con MediaCodec + mp4parser de Android?

Estoy tratando de grabar, codificar y finalmente crear una película corta en Android (usando API 16) con una combinación de MediaCodec y Mp4Parser (para encapsular en .mp4).

Todo funciona bien, excepto por la duración del .mp4: siempre dura 3 segundos y funciona aproximadamente al doble de la velocidad 'correcta'.

La entrada al codificador es de 84 cuadros (separados 100ms).El último cuadro establece el indicador de "fin de transmisión".Configuré el tiempo de presentación para cada fotograma enqueueInputBuffer

He tratado de ajustar todos los parámetros imaginables, pero nada parece marcar la diferencia: la película siempre dura 3 segundos y siempre se reproduce demasiado rápido.

Entonces, ¿qué gobierna la reproducción seepd? ¿Cómo genero una película con velocidad 'natuarl'?

Respuestas a la pregunta(1)

Su respuesta a la pregunta