J'ai essayé de comprendre cela moi-même, mais la myriade d'options me laisse perplexe.
Je souhaite utiliser idéalement soit ffmpeg
, soit mencoder
(ou autre chose, mais ces deux-là, je sais que je travaille) pour convertir toute vidéo entrante en une taille d'écran fixe.
Si la vidéo est plus large ou trop courte, coupez la vidéo au centre. Si ce n'est pas la bonne taille, redimensionnez-le pour qu'il corresponde exactement à la taille de l'écran.
La dernière chose dont j'ai besoin est 720x480 dans un XVid AVI avec une piste audio MP3.
J'ai trouvé de nombreuses pages montrant comment redimensionner à une résolution maximale, mais j'ai besoin que la vidéo soit exactement de cette résolution (avec des parties supplémentaires coupées, pas de barres noires).
Quelqu'un peut-il me dire la ligne de commande pour exécuter - ou au moins me faire un peu/la plupart du chemin là-bas? S'il doit y avoir plusieurs lignes de commande (exécutez X pour obtenir la résolution, effectuez ce calcul, puis exécutez Y avec le résultat de ce calcul). Je peux en faire un script.
Remarque: la réponse originale a été publiée dans ce lien: Comment puis-je recadrer une vidéo avec ffmpeg? qui a été publiée par moi et modifiée à plusieurs reprises afin de: mettez-le à jour avec les options les plus récentes dans les versions les plus récentes de ffmpeg. Merci beaucoup à slhck , Jonathan. , Anton Rudeshko , LordNeckbeard et les futurs responsables.
Dans les versions récentes de FFmpeg, utilisez le filtre crop
NAME_ :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
Où les options sont les suivantes:
out_w
est la largeur du rectangle de sortieout_h
est la hauteur du rectangle de sortiex
et y
spécifient le coin supérieur gauche du rectangle de sortie
Image d'origine 320x240
Pour recadrer une section de 80 × 60 à partir de la position (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
Pour recadrer le quart inférieur droit:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
C'est pareil que:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
Quel est le même que:
ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
in_w
et in_h
comme indiqué dans ce premier exemple. La largeur et la hauteur de sortie peuvent également être utilisées avec out_w
et out_h
.Recadrer 20 pixels du haut et 20 du bas:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
x
et y
sont omis, comme dans cet exemple.Vous pouvez prendre un recadrage (heh heh) et le prévisualiser en direct avec ffplay
name__:
ffplay -i input -vf "crop=in_w:in_h-40"
De cette façon, vous pouvez expérimenter et ajuster votre recadrage sans avoir à encoder, voir, répéter.
Le codeur par défaut pour MP4 est libx264
(vidéo H.264) ou mpeg4
(vidéo MPEG-4, partie 2) en fonction de votre build ffmpeg
name__. Voir FFmpeg Wiki: Guide de codage vidéo H.264 pour plus d'informations.
Au lieu de recadrer et de ré-encoder, envisagez de recadrer lors de la lecture. Ceci est possible avec n'importe quel joueur utile.
Ancient ffmpeg
génère les options -croptop
, -cropbottom
, -cropleft
, -cropright
au lieu du filtre crop
name__. Si tel est le cas pour vous, obtenez un ffmpeg
name __ moderne . Le développement est très actif et il n'y a aucune raison d'utiliser une antiquité.