web-dev-qa-db-fra.com

Comment puis-je réduire la taille de fichier d'une vidéo à partir de la ligne de commande?

Je veux réduire la taille d'une vidéo. La vidéo peut être .flv, .avi, etc. Je le veux depuis le terminal. Comment puis je faire ça?

7
thirdeye

Cela devrait commencer par une mise en garde, selon laquelle le transcodage entre formats de supports avec perte entraîne généralement une perte de qualité.

Il y a beaucoup d'options ici:

  • Convertissez les anciens formats (_MPEG-1_, _DivX 3_ etc) en codecs plus récents et plus efficaces (par exemple _x264_, theora) qui préservera généralement la qualité vidéo/audio dans une sortie plus petite .

  • Réduisez le débit cible ou la taille de sortie cible en améliorant la taille au détriment de la qualité de la reproduction.

  • Réduisez les dimensions de la vidéo, permettant ainsi une qualité de reproduction similaire à une taille totale inférieure.

_x264_ pour la vidéo et aac pour l’audio dans un conteneur _mp4_ est un bon choix pour la qualité et une compatibilité relativement large (mais vous devez coder quelque chose essayez-le sur tout ce que vous voudrez jouer - obtenir des résultats transcodés largement jouables reste un exercice de sorcellerie).

Je trouve que la commande actuelle me sert assez bien pour convertir des formats plus anciens:

_avconv -y -i INPUT -pre:v libx264-slower -b:a 96k -c:v libx264 -c:a libvo_aacenc OUTPUT.mp4
_

Vous pouvez réduire la taille de l'image en ajoutant _-vf scale=iw*0.5:ih*0.5_ avant le nom de sortie, ou définir un débit binaire vidéo _-b:v_, ou lire avec des options multi-passes ... mais la plupart du temps donnera un résultat raisonnable.

6
chronitis