Retrouvez cet article dans : Linux Magazine 81
Acquisition de la vidéo
Ce sujet est très vaste. Vous pouvez obtenir une vidéo par internet, comme vous pouvez la générer à partir d’images de synthèse, comme vous pouvez encore l’acquérir depuis votre caméscope. Dans un paragraphe suivant, nous verrons même comment générer simplement une vidéo à partir de photos. À part cet exemple précis, nous n’aborderons pas ce sujet et nous contenterons d’une réflexion sur la résolution des vidéos, qui sert à ceux qui numérisent des vidéos, mais aussi plus loin lors du calcul de la taille de l’image d’un menu. Une vidéo, pour tenir sur un DVD, doit respecter quelques contraintes de format. Une de ces contraintes est les dimensions de l’image, qui sont de 720x576 pour une vidéo destinée à un lecteur PAL. D’autres dimensions sont possibles, comme le 704x576, mais vous ne pouvez pas choisir les dimensions qui vous arrangent. Par ailleurs, les pixels d’une télévision, contrairement à ceux d’un écran d’ordinateur, ne sont pas carrés. Autant il semble évident que les pixels n’ont pas une forme ovale ou triangulaire, autant il paraît surprenant, lorsque vous l’apprenez, que ces pixels sont rectangulaires. Et pour couronner le tout, lorsque vous réalisez une acquisition de vidéo depuis un caméscope DV, vous obtenez bien une image de 720x576, ce qui correspond à un format 5/4 et non à un format 4/3 comme votre télévision sait l’afficher. La taille en hauteur est respectée sur la télévision et donc, les bords à droite et à gauche sont rognés. Que faire ? La première chose à faire, c’est comprendre, et ce n’est pas simple au premier abord. Nous allons commencer par la télévision. Un poste standard, vendu comme télévision 4/3, se caractérise par une résolution qui correspond à 702x576 pixels, et des pixels rectangulaires d’un rapport 59/54. Le rapport 4/3 s’obtient ainsi : (702 * 59/54) / 576. Nous retrouverons ces chiffres plus loin dans l’article et vous savez maintenant d’où ils viennent. Ceux qui numérisent des vidéos obtiennent des vidéos de 720x576 pixels. Si vous passez le résultat tel quel sur un poste de télévision, vous perdez 18 pixels. L’idée serait de redimensionner l’image en lui ajoutant au préalable des bandes noires, afin d’obtenir à la fois un rapport correct et des dimensions autorisées par le format DVD. Il s’agit donc de passer d’une largeur de 720 pixels carrés à une largeur de 702 pixels rectangulaires. Pour cela, une première étape consiste à connaître le rapport longueur/largeur de l’image numérique afin de le conserver : 720/576 = 5/4. Comme nous souhaitons une image de 702 pixels de large, sa hauteur sera de 702/(5/4), soit 562. La différence est de 14 pixels en hauteur. Le pourcentage de réduction est alors de 97.5%. Le principe consisterait alors à réduire l’image, en lui mettant des bandes noires à droite et à gauche, et par effet de bord en haut et en bas, ce qui donne par ailleurs un effet 16/9. Avant de conclure que vous pouvez utiliser Transcode avec les options qui vont bien (-j, -B...), essayez de faire la transformation sur une image seule avec votre outil de traitement d’image favori (Gimp, ImageMagick...). Une réduction de 97,5% devrait donner un résultat de qualité très décevante. Par ailleurs, si malheureusement le lecteur DVD de salon et sa télévision coupent les bords, ô surprise, lorsqu’on passe ce même DVD sur l’ordinateur, l’image est affichée sans être tronquée (tests de lectures effectués avec xine et vlc sur Linux, ainsi qu’avec le lecteur Apple et vlc sur MacOSX). Alors, si vous savez faire une croix sur ces bandes latérales qui ne s’affichent pas dans le salon, sachez qu’elles ne sont perdues que pour votre télévision.Transcode : une vidéo simple
Nous allons réaliser ici un DVD le plus simple qui soit. Il ne contient qu’une vidéo, qui est jouée dès l’insertion dans le lecteur, sans menus ni tralala. Pour cela, nos outils seront :- Transcode ;
- Les mjpegtools ;
- Dvdauthor.
Les options d’entrée
Peu d’options d’entrée nous intéressent ici. Nous n’allons utiliser que l’optionLes options de transformation
Ceux qui se sont intéressés au redimensionnement de la vidéo dans un paragraphe précédent peuvent indiquer ici ces options. Le site de Transcode en indique la liste, ainsi que l’ordre dans lequel ils agissent :Les options de sortie
Pour un DVD, le format de sortie doit être du MPEG. Vous pouvez alors choisir entre ffmpeg et les mjpegtools pour exporter dans ce format. Le premier a l’avantage de la vitesse d’exécution et les seconds celui de la qualité. Réaliser un film n’étant pas une opération courante, nous estimons qu’avec Transcode (lancé avec screen pour ceux qui connaissent), nous pouvons nous permettre de payer le prix de la qualité en attendant un peu plus. Nous indiquons donc, en codec de sortie, l’option suivante- -v 0 : verbosité nulle.
- -S 4400 : taille des séquences individuelles. Nous utilisons cette valeur plus loin avec mplex.
- -a 2 : aspect 4/3. Indiquez 3 pour du 16/9.
- -K kvcd : matrice de quantisation.
- -q 2 : niveau de quantisation ; les valeurs basses entraînent une meilleure qualité et le débit binaire (bitrate) est meilleur pour les valeurs élevées.
INPUT=votre_film.dv
OUTPUT=le_film
transcode -a 0 -i ${INPUT} -w 9500 -b 224 \
--encode_fields b \
--export_asr 2 \
-u 10,2 -I 5 \
-F 8,’-v 0 -S 4400 -a 2 -K kvcd -q 2 -N 1’ \
-y mpeg2enc,mp2enc -o ${OUTPUT} \
--print_status 100
Si vous effectuez des recherches sur internet, chacun utilise ses propres options et, au final, il est rare d’avoir un résultat d’une qualité largement meilleure avec telle ou telle option. D’ailleurs, cela se saurait ! Donc faites vos tests...
mplex : mixez la vidéo et l’audio
Transcode, utilisé pour convertir un film au format MPEG, génère deux fichiers, un pour la vidéo (d’extension .m2v) et un pour l’audio (d’extension .mpa). Pour obtenir un seul fichier contenant les deux, vous pouvez utiliser mplex. Voici une ligne de commande typique :OUTPUT=le_film
mplex -v 1 -f 8 -S 4400 -o ${OUTPUT}.mpeg ${OUTPUT}.m2v ${OUTPUT}.mpa
Vous pouvez reconnaître les options ici, avec dvdauthor : la structure d’un DVD
Pour réaliser notre DVD, nous allons utiliser dvdauthor. Ce logiciel a une syntaxe très simple lorsque vous lui fournissez toutes les informations dont il a besoin dans un fichier XML. C’est ce que nous allons faire ici :<dvdauthor>
<vmgm />
<titleset>
<titles>
<pgc>
<vob file="film.mpeg" />
</pgc>
</titles>
</titleset>
</dvdauthor>
À la lecture de ce fichier, vous comprenez sans difficulté que notre vidéo doit être au format MPEG dans un fichier dvd-slideshow : les photos de vos vacances
Vous êtes-vous déjà retrouvé chez vos parents ou chez des amis à vouloir leur montrer vos photos de vacances alors qu’ils n’ont pas d’ordinateur ou alors celui-ci plante lamentablement ou refuse de lire vos photos ? Ou encore chez vous, l’ordinateur n’est pas disponible car vous venez d’installer gentoo et il manque encore l’outil de diaporama (gqview, gthumb...) ? Quoi de plus sympathique que de proposer vos photos sur la télé grâce au lecteur DVD de salon ? Il existe bien sûr plusieurs façons de faire. L’une, assez simple au premier abord, consiste à transformer chaque photo en une vidéo de quelques secondes et de faire pause automatiquement, pendant quelques secondes ou en attendant que vous appuyiez sur la bonne touche de la télécommande. Cette façon de faire pose plusieurs problèmes. En effet, le nombre de PGC dans un titleset est limité. Vous devrez ruser en utilisant plusieurs titlesets pour vous en sortir. Mais cela n’est pas fini. En effet, si vous choisissez une pause infinie pour chaque image vous devrez appuyer autant de fois sur la télécommande. À l’usage, c’est ennuyeux, cela use la pile et n’a que le mérite de muscler l’un de vos doigts. Si vous préférez la pause de quelques secondes, le diaporama se lance, mais il est impossible de l’interrompre : pour chaque photo il est interrompu (par définition du mode pause) et vous ne pouvez pas interrompre quelque chose qui l’est déjà. Cela ne l’empêche pas de reprendre quelques secondes après. Ceci est une fonctionnalité du DVD qui est plutôt gênante ici. Nous allons préférer une autre solution : transformer chacune de nos photos en une vidéo de quelques secondes (7 pour notre exemple) et concaténer toutes ces vidéos en une seule. Ainsi, lorsque le diaporama est lancé, vous l’interrompez avec la touche de pause, le relancez normalement, et vous pouvez faire de l’accélération rapide ou du retour rapide comme pour tout film, puisqu’il va s’agir d’un film. Pour nous faciliter la tâche, l’outil dvd-slideshow nous propose cela tout cuit. Il n’y a qu’un fichier à éditer pour y mettre la liste de nos photos ainsi que quelques paramètres supplémentaires (le temps pour chaque photo par exemple). Remarque : Les utilisateurs d’Ubuntu 5.10 et peut-être d’autres distributions ont une version des mjpegtools trop récente par rapport à dvd-slideshow. Cela se manifeste par une erreur[image.jpg|mot-clé]:durée:sous-titre:effet:params_de_l’effetLes mots-clés permettent d’indiquer un titre, par exemple le lieu de vos vacances et la date. Vous pouvez aussi indiquer un fond d’écran avec background, ou entre deux photos, indiquer un effet de fade-in (fade-in) fade-out (fade-out) ou de fondu enchaîné (crossfade). Comme vous commencerez probablement par quelque chose de simple, vous vous contenterez d’indiquer la liste de vos images ainsi que la durée :
vacances.txt
DSC_0001.JPG:7 DSC_0002.JPG:7 DSC_0005.JPG:10:la maison DSC_0006.JPG:8:le chienCe film va présenter quatre photos et va durer 32 secondes. Les deux dernières contiendront des sous-titres. Nous n’ajoutons aucun effet, mais vous ne manquerez pas d’ajouter par la suite un titre au début, et au moins un fade-out à la fin. Pour réaliser le film, il ne reste plus qu’à lancer ceci :
mkdir diaporama dvd-slideshow -o diaporama -n Vacances -f vacances.txt -pLe résultat, si tout fonctionne bien, sera dans le répertoire
Ajoutez un menu
Cette partie est probablement la plus délicate. Il s’agit d’abord de comprendre ce qu’est un menu, puis de le réaliser. Un menu n’est rien d’autre qu’une vidéo au format MPEG, avec des sous-titres un peu spéciaux (que vous placez où bon vous semble). À cela s’ajoutent des zones sensibles auxquelles sont associées des actions. Nous allons donc commencer par créer une image que nous transformerons en la vidéo d’une image fixe, et c’est elle qui nous servira de menu. Nous allons créer deux autres images, l’une pour montrer qu’un item est sélectionné (Votre menu avec Gimp
Avec Gimp, vous allez créer une image de 720x576 pixels. Attention, la résolution est inhabituelle : choisissez 75dpi horizontalement et 80dpi verticalement. Vous pouvez dessiner comme vous voulez sur cette image, par exemple ajouter une des meilleures photos de vos vacances. Vous pouvez ensuite ajouter, sur cette même image, les boutons, à savoir leur texte.



menu_background.ppm menu_highlight.png menu_select.png
Création de la vidéo du menu
La vidéo du menu s’effectue en répétant notre imageppmtoy4m -n50 -F25:1 -A59:54 -I p -r -S 420mpeg2 \ menu_background.ppm | mpeg2enc -n p -f8 -b5000 -a2 -o menu.m2vLe résultat de notre commande est donné sur la sortie standard. Nous en profitons pour l’injecter dans un tube branché à mpeg2enc dont nous nous sommes déjà servis plus haut, avec les options
$ ffmpeg -ab 224 -ar 48000 -ac 2 -t 5 menu_audio.ac3La ligne suivante que vous connaissez maintenant mixe l’audio et la vidéo pour générer un
$ mplex -f 8 -o menu.mpeg menu.m2v menu_audio.ac3
Création des sous-titres
Comme nous l’avons vu plus haut, pour créer notre menu interactif, nous allons utiliser l’outil de sous-titrage, spumux. Il nécessite une description de ce que nous voulons faire, que nous allons lui indiquer dans le fichier<subpictures> <stream> <spu start="00:00:00.0" end="00:00:00.0" highlight="menu_highlight.png" select="menu_select.png" autooutline="infer" autoorder="rows"/> </stream> </subpictures>La lecture de ce fichier montre que nous allons plaquer les images
Ajout des sous-titres à la vidéo
Vous pouvez maintenant envoyer le flux vidéo dans spumux, et vous obtenez le menu final en sortie :$ spumux menu.spumux.xml < menu.mpeg > menu_final.mpegCertaines informations peuvent être intéressantes sur la sortie d’erreur :
[...] INFO: Autodetect 0 = 107x47-223x103 INFO: Autodetect 1 = 447x47-653x113 [...]Vous pouvez lire ici les boutons détectés, leurs coordonnées et surtout, leur numéro. C’est ici que vous verrez si spumux a bien détecté tous vos boutons.
Les actions pour dvdauthor
Nous revenons maintenant à notre sujet initial et au fichier<dvdauthor>
<vmgm />
<titleset>
<titles>
<pgc>
<vob file=”le_film.mpeg” />
</pgc>
<pgc>
<vob chapters="0,0:0:3.0,0:0:5.97,0:0:8.94,0:0:11.91[...]" file="diaporama.vob" />
</pgc>
</titles>
</titleset>
</dvdauthor>
Nous pourrions ajouter le menu dans la partie VMGM. Mais comme le menu ne touche que le film et le diaporama qui se trouvent dans le même titleset, nous allons le mettre avec eux. Cela consiste en une nouvelle section <dvdauthor>
<vmgm />
<titleset>
<menus>
<pgc>
<button>jump title 1; </button>
<button>jump title 2; </button>
<vob file=”menu_final.mpg” pause=”inf” />
</pgc>
</menus>
<titles>
<pgc>
<vob file=”le_film.mpeg” />
<post>jump menu;</post>
<pgc>
</titles>
<titles>
</pgc>
<vob chapters="0,0:0:3.0,0:0:5.97,0:0:8.94,0:0:11.91[...]" file="diaporama.vob" />
<post>jump menu;</post>
</pgc>
</titles>
</titleset>
</dvdauthor>
Vous découvrez ici une nouvelle possibilité avec le tag Cas pratique : un DVD de MP3
Vous disposez maintenant d’à peu près tout ce qu’il vous faut pour créer un DVD bourré à craquer de musique. Cependant, le format MP3 pose un problème à dvdauthor. Vous devrez donc convertir vos fichiers audio, mp3 comme ogg, en mp2, par exemple avec mp2enc. Nous allons néanmoins vous proposer quelques idées avant de laisser libre court à votre créativité. Vous pouvez ensuite faire appel à dvd-slideshow pour réaliser votre DVD. Le format sera une variation sur le thème qui suit. Après chaque nom de fichier mp3 (ou ogg ou wav), vous indiquez le numéro de piste, qui est toujours le même. Les pistes audio servent plutôt pour les DVD multilingues. Quant àmusique1.mp3:1 musictitle:audio::titre1:auteur1:album1 musique2.mp3:1 musictitle:audio::titre2:auteur2:album2 musique3.mp3:1 musictitle:audio::titre3:auteur3:album3 ...Les programmeurs en Perl se régaleront probablement à la rédaction d’un script à base de
cat image.ppm | ppmtoy4m -S 420mpeg2 -n 50 -r -A 59:54 \ -F 25:1 | mpeg2enc -v 0 -a 2 -f 8 -o video.m2vLes options de ppmtoy4m sont maintenant faciles à comprendre : nous générons 50 images en répétant la dernière (la première puisqu’il n’y en a qu’une) au format PAL (options
cat musique.wav | mp2enc -v 1 -r 48000 -o musique.mp2 mpg321 -w - -s musique.mp3 | mp2enc -v 1 -r 48000 -o musique.mp2 ogg123 -d wav -f - musique.ogg | mp2enc -v 1 -r 48000 -o musique.mp2Mixez ensuite audio et vidéo :
mplex -f 8 -v 1 -o video.mpeg video.m2v musique.mp2Une fois que vous avez toutes vos pistes, répartissez-les dans le fichier de paramétrage de dvdauthor. Vous pouvez par exemple proposer un menu dans le VMGM pour choisir un album. Si vous répartissez ceux-ci dans les titleset, vous pouvez mettre un second menu pour choisir quel titre de l’album écouter ou une écoute complète de l’album. Tout cela demande beaucoup plus de travail qu’avec dvd-slideshow, mais le résultat en vaudra probablement la peine ! Si vous créez un tel DVD avec de la musique libre dont la distribution est autorisée, pensez à nous envoyer une copie !
Conclusion
Cet article bien long vous aura donné un aperçu de la structure d’un DVD et comment mettre les mains dans le cambouis pour créer le vôtre tel que vous le souhaitez. La photo utilisée pour le menu correspond aux Gorges du Diable, où le fleuve se jette d’une hauteur de plus de 100 m, dans le magnifique site des chutes d’Iguaçu, à la frontière entre le Brésil et l’Argentine. Liens :- Création de DVD et menus : http://wiki.arslinux.com/DVD_Authoring_and_Backup
- Authoring PC media to DVD using the Linux operating system : http://mightylegends.zapto.org/dvd/dvdauthor_howto.php
- Howto author AVI->DVD with menus using Linux only : http://forums.gentoo.org/viewtopic.php?t=117709
- Transcode : http://www.transcoding.org
- Ffmpeg : http://ffmpeg.sourceforge.net/
- Mjpegtools : http://mjpeg.sourceforge.net/
- dvdauthor : http://sourceforge.net/projects/dvdauthor/
- dvd-slideshow : http://dvd-slideshow.sourceforge.net/
Retrouvez cet article dans : Linux Magazine 81





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