automatic translation maschinelle Übersetzung

Add to Technorati Favorites
urzhiata | index

      transformer une vidéo en série d'images

Voici une méthode pour décomposer une vidéo en images fixes (png ou jpeg). On peut s'en servir également pour reconstituer une sorte de synopsis à partir d'une séquence, en extrayant une image selon une fréquence donnée...

Pour obtenir notre séquence d'image, on utilise ffmpeg, le couteau suisse de la conversion audio-video, utilisable en ligne de commande. Un truc bien pratique pour utiliser ce type d'utilitaire est d'installer cmdhere.exe téléchargeable parmi les powertoys du site de microsoft. Une fois installé, le choix "open command window here" est ajouté au menu contextuel des dossiers. Un autre truc à retenir, c'est qu'on peut rappeler les dernières commandes tapées, en utilisant la "fléche haut", ce qui évite de retaper les mêmes lignes ou presque en faisant des essais et même faire un copier-coller avec le bouton droit de la souris (ctrl-v ne marchera pas)

Pour cet exemple, une fois téléchargé et décompressé ffmpeg, on copie les fichiers dans notre répertoire de travail "C:\video", avec la vidéo, c'est la aussi que nous placerons les images extraites. Ensuite on ouvre une fenêtre de commandes dans ce répertoire

ffmpeg est capable de traiter un nombre de formats différents pour en avoir la liste il faut taper :

ffmpeg -formats

Pour extraire toutes les images de la vidéo dans le répertoire

ffmpeg -i video.avi -r 25 -f image2 "test-%4d.png"

-i : indique le fichier de départ (input file), le nom du fichier suit
-r : taux d'images par secondes (ici 25)
-f : forcer le format de sortie (sequence d'image)
puis le nom du fichier de sortie, l'expression '%04d' signifie que les fichiers seront enregistrés avec 4 chiffres croissants (sous la forme test-0001.png, test-0002.png, test-0003.png, etc.)

On peut avoir la liste des commandes de ffmpeg en tapant

ffmpeg -h

Pour extraire une image à un moment précis, on utilisera

ffmpeg -i video.avi -an -ss 00:00:03 -r 1 -vframes 1 -s 400×300 -f mjpeg -y image.jpg

Le temps est exprimé sous la forme HH:MM:SS.XXX, ou XXX représente les millisecondes Voila, c'est très rapide (une fois digérée l'utilisation de la ligne de commande!), ici l'export se fait en png car l'export jpeg en série donne des résultats bizarres (la qualité diminue au fur et à mesure), je n'ai pas trouvé pour l'instant d'explication à ce problème. Le poids des fichiers png peut poser problème selon la taille de la vidéo. On peut les traiter tous en lot, en utilisant irfanview par exemple (voir le billet concernant le traitement par lot d'images)

ffmpeg : site officiel de ffmpeg, documentation, on peut télécharger la version précompilée pour windows ici : ffmpeg pour windows

Dans le tutoriel sur chuck, il y a les infos pour débuter avec la ligne de commande, je vous invite à y jeter un oeil, si cela vous paraît obscur... N'hésitez pas à me poser des questions, j'essaierais d'y répondre...

L'inverse est également possible : créer une vidéo à partir d'images


Si cet article vous a été utile, aidez à le faire connaître en deux clics : en lui ajoutant une "mark" sur tutmarks (en cliquant sur le chiffre dans le rond bleu!)


      traitement par lot d'images

Quand il faut répéter de nombreuses fois la même opération, c'est bien utile d'avoir le logiciel adéquat pour le faire automatiquement. J'ai recherché un moyen pour transformer des dizaines d'images au format de gimp (.xcf), un préalable obligatoire avant d'utiliser les outils d'animation du gimp animation package. Au fil de la recherche, 3 solutions ont émergé, bien qu'une seule finalement s'acquitte de la tache.

Irfanview est un visualiseur d'images plein de qualités (en freeware), mais il est capable de bien plus : sauvegarde dans un nouveau format, application d'effets visuels, lecture et écriture des méta-données, acquisition twain (scanner, etc) et traitement par lot (batch conversion) : avec découpe, redimensionnement, etc. si nécessaire. Mais, dans mon cas, ce n'est pas suffisant car irfanview ne gère pas le format xcf. (Irfanview)

Imagemagick : encore une boite à outils pleine de ressources : conversion dans de nombreux formats et manipulation graphique de l'image : composition, filtres, rotations, transformations... Sa spécificité est de fonctionner en ligne de commande, sans interface graphique, pas très "convivial" mais sobre et efficace. On peut l'utiliser pour du traitement par lot nécessitant plusieurs opérations répétitives en écrivant un fichier batch. Imagemagick lit et affiche le format xcf mais ne l'écrit pas! (Imagemagick)

La solution est apparue sous la forme d'un plugin pour gimp, le David Batch Processor. De plugin permet d'appliquer différentes transformations sur une série d'images : renversement, flou, modifications colorimétriques, redimensionnement, découpe, netteté, renommage, enregistrement en xcf et 10 autres formats! Voila la solution! (David Batch Processor)

Précision : dans le cas d'une animation, la première étape consiste à avoir toutes les images au format xcf et nommées de manière régulière (image_000001.xcf, image_000002.xcf, etc.) Ensuite il est possible de leur appliquer (calque par calque) les modifications que l'on veut avec Gimp-GAP.

Pour avoir un aperçu des capacités d'imagemagick voir de nombreux exemples ici sur cette page.

mise à jour : Après quelques jours d'utilisation, je m'aperçois finalement que la solution est bien plus simple que tout ça, elle se trouve (naturellement...) dans le menu images > video de gimp, il suffir de faire frames > convert, de choisir le nombre de fichier à convertir et le nouveau format, et voila! Les solutions proposées au-dessus sont donc inutiles, à part pour garnir une trousse à outils numériques.