web-dev-qa-db-fra.com

Le moyen le plus rapide de convertir des vidéos (par lots ou à l'unité)?

Je sais qu'il y a beaucoup de questions sur les encodeurs vidéo ici, mais ma question porte plus sur le flux de travail/l'efficacité.

Pour mon travail quotidien, j'ai besoin de convertir des vidéos, souvent, à partir de nombreux formats aléatoires (généralement de grands formats AVI , M4V , et quoi encore), de les convertir et de les compresser. des fichiers efficaces que nous pouvons utiliser sur Internet pour le téléchargement. Les formats que je dois produire sont:

Je dois créer des modèles communs pour quelques cas d'utilisation (convertir en sources identiques, 1080p ou 720p ) et pouvoir les traiter rapidement, et en file d'attente. .

Des idées sur la meilleure façon de procéder à ce processus dans Ubuntu?

26
Garrett

Si vous préférez la ligne de commande, vous pouvez utiliser ffmpeg (ou handbrake-cli).

MP4

En supposant que vous utilisez une version récente de ffmpeg:

ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
  • -crf: Quality. La plage est logarithmique de 0 (sans perte) à 51 (qualité la plus mauvaise). La valeur par défaut est 23. La plage de subjectivité est ~ 18-28 ou plus. Utilisez la valeur la plus élevée qui vous donne toujours une qualité acceptable. Si vous réencodez des entrées trop volumineuses à télécharger sur YouTube ou un logiciel similaire, essayez une valeur de 17 ou 18, car ces services vidéo seront néanmoins réencodés.

  • -preset: vitesse d'encodage. Un préréglage plus lent fournit une meilleure compression (qualité par taille de fichier) mais est plus lent. Utilisez le plus lent pour lequel vous avez de la patience: ultra-rapide, ultra-rapide, très rapide, plus rapide, plus rapide, moyen (par défaut), lent, plus lent, très lent.

  • -movflags +faststart: Autorise la lecture de la vidéo avant son téléchargement complet dans le cas du visionnage par téléchargement progressif. Utile si vous hébergez la vidéo, sinon superflue si vous téléchargez sur un service vidéo tel que YouTube.

  • -vf scale=-2:720,format=yuv420p: A filtergraph utilisant scale et format filtres vidéo. Échelle à 720 pixels en hauteur et choisissez automatiquement une largeur qui préservera l'aspect, puis assurez-vous que le format de pixel est compatible avec les lecteurs muets.

  • -b:a 128k: bitrate audio. Si votre ffmpeg est obsolète, vous devez ajouter -strict experimental pour utiliser -c:a aac.

MOV

Étant donné que vos fichiers MOV et MP4 contiennent probablement les mêmes formats vidéo et audio, vous pouvez encoder le MP4 et créer le MOV en re-muxing (avec le mode copie de flux ) au lieu du ré-encodage:

ffmpeg -i input.mp4 -codec copy output.mov

WMV

FFmpeg ne supporte que WMV 7 et 8. Je ne suis pas au courant d'un encodeur open source pour la version 9.

$ ffmpeg -encoders | grep -i windows
[...]
 V..... = Video
 A..... = Audio
 ------
 V..... wmv1                 Windows Media Video 7
 V..... wmv2                 Windows Media Video 8
 A..... wmav1                Windows Media Audio 1
 A..... wmav2                Windows Media Audio 2

Comme je ne suis pas familier avec ces encodeurs, je ne peux que donner un exemple non testé:

ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv

Obtenir ffmpeg

Vous pouvez télécharger un version Linux de ffmpeg ou suivre une procédure étape par étape guide de compilation de ffmpeg pour personnaliser votre version.

Utiliser un bash "for loop" pour effectuer un encodage par lots

Pour encoder toutes les vidéos d'un répertoire:

$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
  -c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
  "encoded/${f%.avi}.mp4"; done

Regarde aussi

52
llogan

Essayez HandBrake .

HandBrake est un outil permettant de convertir une vidéo de presque n'importe quel format en une sélection de codecs modernes largement pris en charge. Pour installer, appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez les commandes ci-dessous:

Sudo add-apt-repository ppa:stebbins/handbrake-releases
Sudo apt-get update
Sudo apt-get install handbrake
5
Mitch