Je n'ai aucune connaissance du codage vidéo, j'ai une application écrite en OpenGL et je sauvegarde les images générées en png
images. Les images de mon application sont à 7 FPS et j'essaie de créer une vidéo à partir de celles-ci.
À cette fin, j'utilise ffmpeg comme ceci
ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
qui a été prise sur ce site , mais je me demandais s'il était possible d'avoir une vidéo qui montre l'animation à 30 FPS?
-framerate
paramètre pour obtenir les résultats souhaités.Réponses:
J'utilise le code ci-dessous pour faire la même chose.
Décomposer la commande:
Celui-ci lit l'entrée à 30 ips (en
-framerate 30
option) et l'encode à l'aide dulibx264
codec avec un facteur de débit constant de 23 (en-crf 23
option).la source
Il y a deux fréquences d'images à considérer: l'entrée et la sortie.
Par défaut, la fréquence d'images en entrée est de 25 et la sortie utilisera la même fréquence d'images que l'entrée, sauf indication contraire.
Même fréquence d'images pour l'entrée et la sortie
Si vous souhaitez que l'entrée et la sortie aient la même fréquence d'images, fournissez simplement la fréquence d'images en entrée. Cet exemple définit une fréquence d'images de 30000/1001 (vidéo NTSC):
Alternativement, dans cet exemple, vous pouvez utiliser à la
ntsc
place de30000/1001
, mais ne l'utilisez pas29.97
car ce n'est pas précis ou correct. Voir les autres alias de fréquence d'images .Étant donné que la fréquence d'images d'entrée par défaut est 25, et si vous définissez uniquement une fréquence d'images de sortie, les images seront supprimées ou dupliquées pour compenser. C'est pourquoi la fréquence d'images en entrée est définie dans cette situation.
Fréquence d'images différente pour l'entrée et la sortie
Parfois, vous souhaiterez peut-être que la fréquence d'images en entrée et la fréquence d'images en sortie diffèrent. Par exemple, vous souhaiterez peut-être saisir les images à une certaine fréquence, puis dupliquer ou supprimer des images afin que la sortie ait une fréquence d'images différente. Vous pouvez le faire en raison de problèmes de compatibilité avec votre conteneur de format de sortie, votre lecteur et / ou votre appareil:
Dans cet exemple, les images seront dupliquées pour passer de 10 à 25. La sortie de la console vous indiquera si des images sont supprimées ou dupliquées.
Le démultiplexeur de fichiers image utilise
-framerate
, tandis que la fréquence d'images de sortie est définie à l'aide de-r
.Vous devrez peut-être ajouter l'
-pix_fmt yuv420p
option dans certaines circonstances si vous sortez de la vidéo H.264 (laffmpeg
sortie de la console vous avertira si vous en avez besoin). Cela utilisera un schéma de sous-échantillonnage chromatique compatible avec tous les lecteurs.la source
Option framerate not found.
:-(-framerate
n'existe plus. Je vais supprimer mon commentaire, car cela n'a vraiment rien à voir avec la conversion d'une série d'images en une vidéo avec un certain taux de rafraîchissement.-framerate
existe. Il est utilisé par les démultiplexeurs image et rawvideo et certains périphériques d'entrée tels que x11grab et v4l2.-framerate
documentée? J'ai lu laman ffmpeg
page, mais je ne l'ai pas trouvée. Un pointeur, peut-être?FFMPEG-DEVICES(1)
.sera suffisant dans la dernière version de ffmpeg.
la source