web-dev-qa-db-fra.com

Comment redimensionner une vidéo pour la rendre plus petite avec FFmpeg

Est-il possible de redimensionner mes vidéos pour les réduire avec FFmpeg?

J'ai une dimension vidéo originale de 1024x576, maintenant je veux redimensionner la vidéo en 720x480 pour répondre à l'exigence.

Comment puis-je faire ceci?

90
Alan

L'exemple le plus fondamental est le suivant:

ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv

L'utilisation de le filtre scale fournira plus de flexibilité:

ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv

Le -1 indiquera à ffmpeg de choisir automatiquement la hauteur correcte par rapport à la largeur fournie pour conserver le rapport de format. -1 peut également être utilisé pour la largeur si vous fournissez une hauteur donnée.


Un inconvénient de l'échelle lorsque vous utilisez libx264 est que cet encodeur requiert des valeurs paires et que l'échelle peut automatiquement choisir une valeur impaire, ce qui génère une erreur: width or height not divisible by 2. Vous pouvez indiquer à scale de choisir une valeur paire pour une hauteur donnée (720 dans cet exemple):

scale="trunc(oh*a/2)*2:720"

... ou une largeur donnée (1280 dans cet exemple):

scale="1280:trunc(ow/a/2)*2"

Notez que votre version de ffmpeg pourrait se plaindre de ne pas reconnaître les options -c ou -filter. Il peut également ne pas supporter scale. Dans ce cas, vous devriez utiliser un fichier ffmpeg plus récent, que vous pouvez télécharger sous forme de compilation statique, ou vous-même compiler .

145
jimhark

J'utilise les commandes suivantes pour redimensionner des vidéos et des images. Pour largeur et hauteur fixe -

ffmpeg -i input.avi -vf scale="720:480" output.avi

et si vous souhaitez conserver les proportions, donnez simplement height -1 et le redimensionnement se fera automatiquement en fonction de la largeur -

ffmpeg -i input.avi -vf scale="720:-1" output.avi

Si vous souhaitez mettre à l'échelle en fonction de la taille d'entrée, par exemple. Disons réduire la largeur/hauteur de la moitié que vous pouvez faire -

ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi

REMARQUE :

iw : input width
ih : input height

La construction statique peut être téléchargée depuis - https://johnvansickle.com/ffmpeg/

Documentation: https://ffmpeg.org/ffmpeg.html#filter_005foption

6
Aniket Thakur