Je nai aucune connaissance de lencodage vidéo, jai une application écrite en OpenGL et je Jenregistre les images quil a générées dans des images png. Les images de mon application sont à 7 FPS et jessaie de créer une vidéo à partir de celles-ci.

À cette fin, jutilise ffmpeg comme ceci

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

qui a été prise de ce site , mais je me demandais sil est possible davoir une vidéo qui montre lanimation à 30 FPS?

Commentaires

Réponse

Jutilise le code ci-dessous pour faire la même chose.

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -pix_fmt yuv420p -crf 23 output.mp4 

Décomposition de la commande:

ffmpeg <- call ffmpeg -framerate 30 <- set the input framerate to 30 -i img%03d.png <- read PNG images with filename img001, img002, img003, etc.. img can be changed to another prefix %03d can be changed to %04d for 0001, %05d for 00001 formats, etc... -c:v libx264 <- Set the codec to libx264 -pix_fmt yuv420p <- Set the pixel format to planar YUV 4:2:0, 12bpp -crf 23 <- set the Constant Rate Factor to 23 (default value) -output.mp4 <- the output filename 

Ceci lit lentrée à 30 ips (le -framerate 30) et lencode à laide du libx264 codec avec facteur de débit constant de 23 (le -crf 23 option).

Réponse

Il y a deux fréquences dimages à considérer: lentrée et la sortie.

Par défaut, la fréquence dimages dentrée est de 25 , et la sortie utilisera la même fréquence dimages que lentrée, sauf indication contraire.

Même fréquence dimages pour lentrée et la sortie

Si vous voulez entrer et sortie pour avoir la même fréquence dimages, puis fournissez simplement la fréquence dimages dentrée. Cet exemple définira une fréquence dimages de 30000/1001 (vidéo NTSC):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Sinon, dans cet exemple, vous pouvez utiliser ntsc au lieu de 30000/1001, mais nutilisez pas 29.97 car ce nest pas exact ou correct. Voir les autres alias de fréquence dimages .

  • Parce que la fréquence dimages dentrée par défaut est de 25, et si vous définissez uniquement une fréquence dimages en sortie, puis les images seront supprimées ou dupliquées pour compenser. Cest pourquoi la fréquence dimages dentrée est définie dans cette situation.

Une fréquence dimages différente pour lentrée et la sortie

Parfois, vous voudrez peut-être que la fréquence dimages dentrée et la fréquence dimages de sortie soient différentes. Par exemple, vous pouvez entrer les images à une certaine fréquence, puis dupliquer ou supprimer des images afin que la sortie ait un fréquence dimages différente. Vous souhaiterez peut-être effectuer cette opération 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 fichier image utilise -framerate, tandis que la fréquence dimages de sortie est défini à laide de -r.

  • Vous devrez peut-être ajouter loption -pix_fmt yuv420p dans certaines circonstances si vous « sortez une vidéo H.264 (la sortie de la console ffmpeg vous avertira si vous en avez besoin). Cela utilisera un schéma de sous-échantillonnage de chrominance compatible avec tous les lecteurs.

Commentaires

  • ffmpeg version 3.2.2 me dit: Option framerate not found. 🙁
  • Oui, vous avez raison. Mais néanmoins loption -framerate nexiste pas Je vais supprimer mon commentaire, car il na vraiment rien à voir avec la conversion dune série dimages en une vidéo avec un certain nombre dimages par seconde.
  • @erik -framerate existe. Il ' est utilisé par les démultiplexeurs dimage et de rawvideo et certains périphériques dentrée tels que x11grab et v4l2.
  • Où est loption -framerate documenté? Jai ' lu la page man ffmpeg, mais je nai pas pu ' Je ne le trouve pas. Un pointeur, peut-être?
  • OK, je lai trouvé … FFMPEG-DEVICES(1).

Réponse

ffmpeg -framerate 30 -i img%03d.png output.mp4 

sera suffisant dans les derniers délais t version de ffmpeg.

Commentaires

  • Noubliez pas le -pix_fmt yuv420p ou vous risquez de vous retrouver avec des fichiers que de nombreux outils logiciels ne ' t aiment: trac.ffmpeg.org/ticket/8856

Réponse

Vous parlez dinterpolation vidéo. Il ny a aucun moyen pour 7 fps de devenir 30 fps sans interpolation vidéo … Fondamentalement, vous voulez obtenir 30fps dès le début, dans le processus de création de vidéos … car linterpolation vidéo prendra beaucoup de ressources et de temps, et cela pourrait être rempli dartefacts.Jai entendu dire que vous pouviez transformer une seule photo en un court métrage, avec Adobe, mais beaucoup de travail manuel ici …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *