Was regelt die Wiedergabegeschwindigkeit beim Codieren mit dem MediaCodec + mp4parser von Android?

Ich versuche, einen Kurzfilm unter Android (mithilfe von API 16) mit einer Kombination aus MediaCodec und Mp4Parser aufzunehmen, zu kodieren und schließlich zu erstellen (um ihn in .mp4 zu kapseln).

Alles funktioniert einwandfrei, bis auf die Dauer der .mp4: Sie ist immer 3 Sekunden lang und läuft ungefähr doppelt so schnell wie die "richtige".

Die Eingabe für den Encoder beträgt 84 Frames (im Abstand von 100 ms).Der letzte Frame setzt das Flag "Ende des Streams".Ich stelle die Präsentationszeit für jeden Frame aufqueueInputBuffer

Ich habe versucht, alle denkbaren Parameter zu optimieren - aber nichts scheint einen Unterschied zu machen - der Film ist immer 3 Sekunden lang - und wird immer viel zu schnell abgespielt.

So was regelt die Wiedergabe seepd? Wie erstelle ich einen Film mit Natuarl-Geschwindigkeit?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage