Montage vidéo en ligne de commande

Gazette Linux n°181 - Septembre 2010

par Silas Brown (Copyright © 2010)

traduction par Grégory Jamot(tous droits réservés) gregory.jamot@gmail.com


Montage vidéo en ligne de commande

By Silas Brown

Cet article porte sur la production de vidéos avec MPlayer. MPlayer possède son propre système d'édition de listes de décision, mais cela reste limité à la suppression de scènes d'un film déjà conçu; cela ne peut être utilisé pour récupérer des scènes provenant de plusieurs fichiers sources et de les enchaîner dans un ordre différent, aussi souvent que nécessaire en production. Cependant, vous pouvez exécuter plusieurs commandes MPLayer à la suite en utilisant la ligne de commande, et vous n'avez pas particulièrement besoin d'équipement haut de gamme de grandes compétences de maniement de la souris ou même d'une bonne vue pour le faire (Une bonne vue est un plus mais vous n'en n'avez pas besoin)

Prévisualisation avec MPlayer

Premièrement, assurez vous de pouvoir lire chacun de vos fichiers vidéos avec la commande mplayer (utiliser mplayer -framedrop si vous avez un ordinateur lent). Installer mplayer de votre gestionnaire de paquets devrait suffire, mais dans certains cas une version plus récente de mplayer est requise pour supporter des codecs vidéo optionnels; dans ce cas, l'étape d'installation peut varier, en fonction de votre distribution et de la version de votre linux, donc vous devrez faire quelques recherches sur le web pour y parvenir.

Une fois que mplayer est correctement configuré pour lire le format vidéo que vous avez, dans la fenêtre de la vidéo vous devriez être capable d'appuyer sur la barre Espace pour mettre en pause et parcourir la vidéo en utilisant les flèches gauche et droite du clavier, et dans la fenêtre de la console vous devriez obtenir un rapport du statut continuellement mis à jour sur une seule ligne qui inclut le champ V: suivi du temps en secondes de lecture de la vidéo. Quand la vidéo est en pause, vous serez capable de mesurer la valeur V: exacte, et utiliser ces valeurs afin de décider où vous voulez commencer et finir vos extraits. (Vous pouvez peaufiner les valeurs plus tard en tâtonnant.)

Génération des extraits

Après que vous ayez décidé de l'ordre de vos extraits et pris note de leur horodatage de commencement et fin (par exemple dans un éditeur de texte), vous pouvez extraire séparément chaque extrait dans un fichier en exécutant mencoder une seule fois par extrait, comme ceci:

mencoder video3.avi -ofps 25 -o clip1.avi -oac lavc -ovc lavc -vf scale=320:240 -ss 59 -endpos 15
mencoder video1.avi -ofps 25 -o clip2.avi -oac lavc -ovc lavc -vf scale=320:240 -ss 14 -endpos 3

Dans l'exemple précité, clip1.avi provient du fichier video3.avi, commençant à partir de 59 secondes (la -ss 59) et ayant une durée de 15 secondes (la -endpos 15). clip2.avi provient du fichier video1.avi, commençant à partir de 14 secondes et ayant une durée de 3 secondes. On spécifie une valeur pour la fréquence de trame (-ofps 25) et la résolution de la vidéo (-vf scale=320:240) afin de s'assurer que tous nos extraits auront la même résolution et la même cadence d'images, et qu'ils soient correctement agencés.

Après l'exécution de mencoder pour chaque extrait, il est recommandé d'utiliser mplayer pour voir le résultat et vérifier que les points de départ et d'arrivée sont corrects. Dans le cas contraire, vous devrez réexécuter la commande mencoder avec les valeurs ajustées (ajouter une demi-seconde par-ci, soustraire une demi-seconde par-là) jusqu'à ce que vous soyez satisfait du résultat.

Vérifier la fréquence d'images

Dans certains cas, en plus de -ofps, vous aurez aussi à spécifier la valeur -fps(le mieux est de la placer au début de la commande mencoder) pour s'assurer que les entrées en images par seconde sont lues correctement; par exemple certaines vidéos FLV ont besoin de -fps 24.Si les entrées d'images par seconde ne sont pas correctement lues, après un certain temps, l'image sera en avance par rapport au son si le FPS est trop élevé, ou sera en retard par rapport au son si le FPS est trop bas. Même si l'extrait est très court, un mauvais FPS pourrait causer un décalage entre l'image et le son dans l'extrait suivant. Donc quand chaque extrait est lu, vérifier que le son finit exactement au même moment que l'image. Heureseusement le plus souvent mplayer usually obtient la bonne valeur d'entrée FPS, mais c'était important de savoir le faire quand ce n'est pas le cas.

Il serait bon de vérifier que les valeurs de sortie d'image par seconde (-ofps) que vous avez fourni sont réellement respectées par mencoder. Parfois mencoder doit l'ajuster pour respecter les contraintes en fonction du format de sortie que vous utilisez. Si vous lisez le manuel de mencoder, vers la fin il y aura une ligne commençant par Video: qui contiendra le nombre de secondes et le nombre d'images correspondant à la sortie vidéo; diviser les images par les secondes pour obtenir la fréquence d'image. La synchronisation devrait être légèrement meilleure si vous choisissez ensuite une approximation de cette nouvelle valeur comme votre valeur -ofps préférée. (Ne prêtez surtout pas attention aux valeurs "fps" qui sont imprimées de façon incrémentale par mencoder; cela vous indique à quelle vitesse mencoder effectue la conversion, et non la vitesse d'exécution du film.)

Réunir les extraits

Quand vous êtes satisfaits de tous les extraits composants, vous devez les combiner dans l'ordre dans la vidéo finale. Cette opération est réalisée avec une dernière commande mencoder, par exemple :

./mencoder clip1.avi clip2.avi clip3.avi -o result.avi -oac lavc -ovc lavc

Ensuite vérifier que le fichier result.avi se lit bien avec mplayer et que vous en êtes satisfait. Parfois, (peut-être dû aux erreurs d'arrondi de type virgule flottante dans mencoder) la vidéo arrivera en avance par rapport au son dans le résultat final même si tous les extraits individuels concordent; Au final, il peut arriver souvent que mencoder rapporte Skipping frame!. Si c'est le cas, vous pouvez tester l'option -fps sur mplayer pour trouver le nombre de frames par seconde synchronisant son et image, et ensuite exécuter la commande ffmpeg afin d'ajuster la fréquence d'images avec sa vitesse, par exemple :

ffmpeg -r 23 -i result.avi -sameq -ab 224k corrected-result.avi

Où 23 est la fréquence d'images qui trouve la meilleure synchronisation avec le son, et 224k est le débit binaire audio toujours utilisé (A ce stade, vous pouvez changer cette valeur si vous le souhaitez). ffmpeg semble être une meilleure solution d'ajustement que mencoder. Ne soyez pas juste tenté à la place d'ajouter le nouveau -fps à la commande mencoder ci-dessus, parce que dans certains cas faire cela a pour résultat l'inclusion de sons provenant à l'extérieur de vos points d'attache. Revérifier le résultat après ajustement avec mplayer, et si nécessaire essayer de répéter la commande ffmpeg avec une fréquence légèrement différente.


Silas Brown

Silas Brown est un informaticien légalement aveugle à Cambridge UK. Il utilise des versions fortement personnalisés de Debian Linux depuis 1999.


Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site http://www.traduc.org/Gazette_Linux

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.