2017-04-05 2 views
0

J'utilise MediaCodec pour encoder la vidéo de l'appareil photo en h264. Je l'habitude d'avoir 30 images par seconde, ce qui est la sortie que je recevais, mais maintenant je dois passer à 25fps et la ligne de MediaFormat:KEY_FRAME_RATE est ignoré dans Android

format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE); 

ne fonctionne pas: Je reçois toujours 30fps quelle que soit cette valeur (j'ai même essayé de mettre 5 fps et la vidéo est toujours lisse).

Y a-t-il autre chose que je dois faire pour atteindre la valeur fps désirée? MediaFormat.KEY_FRAME_RATE ne demande pas à l'encodeur de supprimer des trames.

Répondre

1

Visit for more information.

Pour réduire le framerate global que vous devez soit cadres déposer manuellement, corriger les estampilles pour correspondre à votre fps désiré (probablement pas ce que parce que le résultat sera une vidéo plus longue)

Un très basique, mais bon doc sur la façon pour manipuler framerate (malheureusement la plupart du temps en augmentant le taux) se trouve here

Salutations

+0

@MichelReap Vous pouvez corriger les horodatages que les cadres sont introduits dans le MediaMuxer par writeSampleData(). – nyttimangus

+0

ne serait-ce pas rendre la vidéo saccadée? – MichelReap