Catégorie : Audio-vidéo     Tags :      

    Retrouvez cet article dans : Linux Pratique 43

    Nous allons découvrir ici un programme en ligne de commande qui permet de générer un film à partir de photographies, avec gestion des transitions et possibilité de sonoriser l'ensemble, afin d'agrémenter les séances de diapositives à
    la maison.

    Introduction

    image2mpeg est une solution intéressante qui permet de visualiser de façon agréable vos photographies de vacances sur un téléviseur ou de les diffuser sous forme de petit film en ligne sur la Toile. Il est possible de spécifier plusieurs types de transition entre les photographies, mais aussi de réaliser des titrages (génériques, crédits ou titres) ou de zoomer sur les photographies pendant leur affichage ou encore d'ajouter une piste audio.
    image2mpeg est en fait un frontend d’ image2ppm, qui est le véritable encodeur MPEG qui réalise tout le travail, grâce notamment à ImageMagick pour tout ce qui concerne la manipulation des images. Certaines options d'image2mpeg sont d'ailleurs directement issues d'ImageMagick, pour plus de consistance et une compatibilité parfaite.

    Installation

    Il n'existe à ce jour pas de paquets prêts à l'emploi pour vos distributions préférées. Pour installer et utiliser ce logiciel, il n'y a pas d'autre choix que de télécharger les sources et les compiler.

    Dépendances

    image2mpeg dépend fortement d'autres programmes pour fonctionner. En particulier, il a besoin de :

    • FFMPEG et MPEG Tools (paquets ffmpeg et mjpegtools sur Ubuntu) pour réaliser l'encodage des vidéos ;
    • ImageMagick et ses paquets de développement (paquets imagemagick et libmagick++9-dev) pour la manipulation d'images et la création des effets ;
    • tooLAME et MAD MPEG audio decoder (paquets toolame, libmad0 et libmad0-dev) pour réaliser l'encodage audio en MPEG-1 layer 2.
    • Optionnellement, vous pouvez également installer VCDimager pour créer des vidéos CD (VCD ou SVCD) à partir des films créés (paquet vcdimager), ainsi qu'un logiciel d'authoring de DVD de votre choix, comme DVDStyler (http://www.dvdstyler.de/).

    Téléchargement et installation

    La page http://www.gromeck.de/?image2mpeg présente une section Downloads qui vous permet de récupérer les sources de la dernière version d'image2mpeg, en l'occurrence, la version 0.9 à date de rédaction de cet article.
    Une fois les sources récupérés, il suffit de les décompacter et de lancer la compilation :

    $ tar xvzf image2mpeg-0.9.tar.gz
    $ cd image2mpeg-0.9
    $ ./configure
    $ make

    Une fois ceci fait, en super utilisateur, $ make install ou $ sudo make install permet de réaliser l'installation effective du programme.

    Usage

    La page d'accueil du projet présente des vidéos montrant les capacités d'image2mpeg, dans le domaine des transitions et de la correction d'aspect d'images de résolutions ou de formats différents. Il y a également une section Download Example qui peut vous servir de base à l'apprentissage de ce programme. Téléchargez le plus récent fichier d'exemple AmsterdamByBoat.tgz pour travailler sur la base de photographies et de musiques fournies par l'auteur du programme ou commencez votre apprentissage directement avec les vôtres.
    En bon programme utilisable en ligne de commande, image2mpeg utilise une syntaxe spécifique et accepte de nombreuses options. La ligne générique pour travailler ressemble à :

    $ image2mpeg [options] --output [nom du fichier de film] [images source]

    Les options sont nombreuses et permettent de définir le type de vidéo, les durées d'affichage, les transitions et les durées de celles-ci, le fichier audio à prendre en considération, et d'autres choses encore.

    /img-articles/lp/43/cc-art-img2mpeg/fig-1.jpg
    Fig. 1 : Un exemple prêt à l'emploi et à télécharger, idéal pour apprendre les bases du programme : Amsterdam By Boat

    Un simple slideshow vidéo

    Il s'agit de l'usage le plus simple d'image2mpeg :
    à partir d'une série d'images, réaliser une vidéo avec transitions simples entre celles-ci et récupérer la sortie sous forme de film. Parmi les options qui vont nous intéresser, nous noterons :

    • -mode [mode] : il est possible de spécifier les modes suivants : VCD, SVCD et DVD.
    • -norm [norme] : les normes utilisables sont PAL et NTSC.
    • -time-per-image [temps] : spécifie la durée d'affichage de chaque image au cours du film.
    • -time-per-transition [temps] : spécifie la durée d'une transition entre deux images au cours du film.
    • -transition [type] : la première et la dernière transition seront automatiquement de type FADE (fondu).

    Ainsi, si nous souhaitons réaliser un film (film.mpg) au format DVD (--mode DVD) à destination d'un téléviseur français (--norme PAL) à partir d'une série d'images au format JPEG (*.jpg) qui resteront 5 secondes à l'écran (--time-per-image 5) et qui s'enchaîneront entre elles par fondus successifs (--transition FADE) de durée 1.5 s (--time-per-transition 1.5), nous utiliserons la commande suivante :

    $ image2mpeg --mode DVD --norm pal --time-per-image 5 --time-per-transition 1.5 --transition FADE --output film.mpg *.jpg

    image2mpeg s'occupera alors de fixer les débits audio et vidéo, et enverra à image2ppm toutes les instructions relatives à la création des images et des transitions. Le fil sera alors généré conformément aux options.

    Les types de transition

    image2mpeg repose sur image2ppm pour générer les transitions. Celles disponibles sont les suivantes :

    • FADE : réalise un fondu de l'image suivante par-dessus l'image courante.
    • SLIDE_L2R, SLIDE_R2L, SLIDE_T2B, SLIDE_B2T : fait glisser la nouvelle image par-dessus l'image courante (qui reste fixe et est progressivement masquée). Le sens de glissement dépend du suffixe de l'option : _L2R de gauche (L, left) à droite (R, right) et réciproquement _R2L de droite à gauche, mais aussi _T2B du haut (T, top) vers le bas (B, bottom) et réciproquement _B2T du bas vers le haut.
    • PUSH_L2R, PUSH_R2L, PUSH_T2B, PUSH_B2T : la nouvelle image glisse comme précédemment, mais pousse l'image courante hors de l'écran. Le sens de la poussée peut être défini avec les mêmes suffixes. Par exemple, PUSH_T2B poussera l'ancienne image vers le bas, la remplaçant par une image arrivant depuis le haut.
    • SWAP_L2R, SWAP_R2L, SWAP_T2B, SWAP_B2T : permet de substituer une image avec une autre en les faisant passer l'une par-dessus l'autre comme s'il s'agissait de cartes. Les suffixes habituels sont disponibles.
    • ROLL_L2R, ROLL_R2L, ROLL_T2B, ROLL_B2T : les images semblent représenter les facettes d'un cube qui tourne sur lui-même (par exemple, de gauche à droite avec le suffixe _L2R) pour montrer la nouvelle image. Les suffixes habituels sont disponibles.
    • RANDOM : utilise une transition au hasard entre chaque image parmi les précédentes.

    Un slideshow sonorisé

    Vous pouvez instruire image2mpeg d'ajouter à la vidéo une piste sonore. Pour cela, il faudra lui spécifier un fichier .mp3 qui lui servira de source sonore, tout simplement en ajoutant le nom (et l'éventuel chemin) du fichier en question à la suite des images devant constituer le slideshow. Par exemple, si vous souhaitez utiliser le fichier musiqueduslideshow.mp3,
    vous ajouterez son nom à la ligne de commande précédente :

    $ image2mpeg --mode DVD --norm pal --time-per-image 5 --time-per-transition 1.5 --transition FADE --output film.mpg *.jpg musiqueduslideshow.mp3

    Forçage des valeurs prédéfinies

    Lorsque vous spécifiez un mode (par exemple --mode DVD), image2mpeg utilise automatiquement des dimensions d'image et des débits vidéo/audio correspondant au standard choisi. Par exemple :

    • VCD : résolution 352x288
    • SVCD : résolution 480x576 en PAL
    • DVD : résolution 720x576 en PAL

    Les options --width et --height permettent de déterminer des dimensions d'images différentes. Si vous savez ce que vous faites, il est également possible de toucher aux débits.

    /img-articles/lp/43/cc-art-img2mpeg/fig-2.jpg

    Fig. 2 : Exemple de transition Swap Left to Right (SWAP_L2R) tirée des vidéos d'exemple du site

     

    Correction d'aspect

    Il se peut que les images aient un certain ratio d'aspect (par exemple 16:9 ou orientation portrait) et que la vidéo soit prévue pour un autre ratio (par exemple, 4:3 ou orientation paysage). Lors de l'assemblage des images sous forme de film, il est possible de demander à image2mpeg de prendre garde à ce qu'une image n'apparaisse pas déformée dans la vidéo. C'est le but de l'option --aspect-correction [TYPE] que de définir la méthode employée pour afficher l'image conformément au ratio d'origine. Cette option admet quatre types de correction.

    • NONE : l'image n'est pas corrigée, et elle peut présenter des déformations lorsque la vidéo la jouera.
    • FITIN : la méthode fit-in consiste à ajouter des bandes noires, soit à droite et à gauche de l'image, soit en haut et en bas, en fonction de son orientation, mais à faire tenir l'image en entier à l'écran.
    • FILLIN : la méthode fill-in, pour sa part, consiste à découper une partie de l'image, à droite ou à gauche, ou en haut et en bas, en fonction de son orientation, afin de faire rentrer l'image dans la vidéo ; elle ne sera donc pas visible dans son intégrité.
    • AUTO : le programme se charge de trouver pour chaque image le format le plus approprié ; en général, les orientations « portraits » seront corrigées en mode fit-in, tandis que les orientations « paysages » seront corrigées en mode fil-in.

    Par exemple :

    $ image2mpeg --mode DVD --norm pal --time-per-image 5 --time-per-transition 1.5 --transition FADE --aspect-correction AUTO --output film.mpg *.jpg musiqueduslideshow.mp3

    Générer un index de fichiers

    En ajoutant l'option --index [FICHIER_INDEX] à votre ligne de commande, le traitement des images et leur encodage ne sera pas réalisé, mais la séquence d'actions sera consignée dans un fichier portant le nom spécifié [FICHIER_INDEX]. Ce fichier peut être visualisé et édité dans n'importe quel éditeur de texte, et est écrit dans un langage interprétable par un humain. En particulier, il liste les fichiers images et audio à prendre en considération, et, dans le cas des images, permet de spécifier pour chacune d'elles, le type de transition ou la géométrie de l'image.
    Chaque ligne (à l'exception de celles commençant par les caractères spéciaux ; ou #, qui signalent des commentaires) débute par un type, ouvrant chacun à des paramètres supplémentaires. Parmi les types disponibles figurent AUDIO, SOLID, OVERLAY, IMAGE ou TRANSITION. La syntaxe complète de chaque option est reprise dans le manuel en ligne de commande du programme ($ man image2ppm).

    • type=AUDIO : définit un flux audio, défini par le paramètre file=.
    • type=SOLID : définit une image de couleur unie, grâce au paramètre rgb=.
    • type=OVERLAY : définit une image (impérativement avec un fond transparent) à superposer à toutes les images résultantes de l'animation ; l'image est définie grâce au paramètre file=.
    • type=IMAGE : définit une image grâce au paramètre file= ; d'autres options utiles permettent de définir une géométrie de départ (par exemple from_geo=100%) et une géométrie finale (par exemple to_geo=50%) qui permettent de « zoomer » dans l'image en fonction des taux géométriques appliqués (en %, la valeur indiquant la portion vue dans la vidéo).
    • type=TRANSITION : définit le type de transition grâce au paramètre transition=.

    Il y a d'autres paramètres à étudier, mais nous tenons là les principaux. Toutefois, si vous vous amusez à bricoler ces fichiers à la main, pensez à la contrainte suivante : les lignes de type SOLID et IMAGE doivent toujours être séparées par une ligne de type TRANSITION.
    Maintenant que vous savez générer un index de fichiers, et même un peu l'éditer, il ne vous reste plus qu'à charger cet index dans image2mpeg afin que la vidéo soit générée sur la base de ces spécifications affinées manuellement. Cela se fait simplement grâce à la ligne suivante :

    $ image2mpeg --mode [MODE] --norm [NORME] @[FICHIER_INDEX] --output [FICHIER_VIDEO]

    Comme les fichiers images ou audio sont déjà contenus dans l'index, il n'est pas nécessaire de les spécifier à nouveau.

     

    Travailler avec un index de fichiers

    Avec l'usage, vous vous trouverez de nombreuses raisons de travailler avec un index de fichiers. Mais nous allons toutefois vous présenter deux usages courants de l'index de fichiers, qui permettront de dynamiser les présentations, au prix de l'édition manuelle de l'index.
    Comme nous l'avons déjà vu, il est possible de spécifier des transitions aléatoires (RANDOM), mais en modifiant le fichier index, il est possible de spécifier, avant chaque image, le type de transition qui détermine son affichage. Par exemple, cette première image apparaît au cours d'un fondu (FADE) :

    type=TRANSITION,time=-1,transition=FADE
    type=IMAGE,time=-1, file=image001.jpg, from_geo=100%, to_geo=100%, aspectcorrection=AUTO

    puis celle-ci apparaît suite à une transition déterminée au hasard :

    type=TRANSITION,time=-1,transition=RANDOM
    type=IMAGE,time=-1, file=image002.jpg, from_geo=100%, to_geo=100%, aspectcorrection=AUTO

    Mais s'il est possible d'animer les transitions d'une image à l'autre, il est également possible d'animer partiellement une image au cours de son temps d'affichage. En effet, il est possible de réaliser des zooms d'avant en arrière grâce aux paramètres from_geo et to_geo. Chaque paramètre est accompagné d'un pourcentage, indiquant la fraction de l'image affichée dans l'espace disponible de la vidéo ; ainsi, 100% signifie que 100% de l'image occupent la place à l'écran, tandis que 50% indique que la moitié de l'image suffit à occuper la totalité de la place à l'écran. En animant l'affichage de 100% à 50%, on crée ainsi l'illusion d'un zoom sur l'image affichée. La taille de l'image au début de l'affichage est définie par from_geo, et celle à la fin de l'affichage par to_geo. Ainsi :

    type=IMAGE,time=-1, file=image002.jpg, from_geo=100%, to_geo=50%, aspectcorrection=AUTO

    permet de réaliser un zoom x2 sur l'image affichée, la vitesse du zoom dépendant de la durée d'affichage de l'image.

     

    Conclusion

    image2mpeg est un logiciel intéressant et facile à mettre en œuvre, bien qu'il soit en ligne de commande, et l'édition manuelle de l'index de fichiers permet d'affiner le contrôle de l'utilisateur sur son rendu. Finies les présentations à la papa au projecteur de diapositives ou à l'aide d'OpenOffice Présentation ! Grâce à ce logiciel, vous êtes capable de donner une ambiance sonore et des transitions intéressantes à vos séances photo. Même si cela n'a pas été abordé, il est également possible de mettre en place des génériques ou des titrages sans grande difficulté, dans le même esprit que les autres fonctionnalités. En définitive, il ne manque plus à image2mpeg qu'une petite interface graphique sympathique à ce programme pour le populariser totalement.

    • Dernière version : image2mpeg 0.9 (juillet 2007)

    Lien :
    Page d'accueil du projet : http://www.gromeck.de/?image2mpeg [en]

     

     

    /img-articles/lp/43/cc-art-img2mpeg/fig-3.jpg

    Posté par Olivier Saraja (olivS) | Signature : Olivier Saraja | Article paru dans Creative Commons License

    Laissez une réponse

    Vous devez avoir ouvert une session pour écrire un commentaire.


    • Il y a actuellement

    • 633 articles/billets en ligne.