Faire un DVD à partir d'un fichier par exemple ici un enregistrement Freebox (Harry Potter, passé à la télévision à Noël, les personnes sont tenues de vérifier la légalité de ce qu'ils font, merci de me signaler si enregistrer un flux vidéo diffusé par télévision ADSL pour usage privé est illégal ou pas).

1) Préparation de la vidéo:
a) avec avidemux
VProcess ->Off
Audio->FFmMP2 (je n'ai pas essayé AC3)
Configure->bitrate (128 mini à mon avis, 224 est plutôt bien)
AFilter->Normalise
AProcess->On
Output->MPeg A+V PS

b) avec mencoder
mencoder enregistrement.mpg -ovc copy -oac lavc -lavcopts acodec=ac3 \
-of mpeg -mpegopts format=dvd -o Potter_DVD.mpg

(faire ça pour chaque vidéo)

Remarque Les enregistrements freebox présente souvent un décalage son/vidéo si on les édites directement avec avidemux. Je suggère dans ce cas un encodage préalable complet du fichier en format AVI/MPEG4/AC3 avec mencoder puis d'éditer le fichier obtenu avec avidemux.

On peut préférer mencoder pour faire le fichier, il suffit dans ce cas de faire la commande
mencoder Potter.avi -ovc lavc -oac lavc -lavcopts acodec=ac3:vcodec=mpeg2video:vbitrate=2000:aspect=4/3 -vf scale=720:576 -of mpeg -mpegopts format=dvd -o Potter_DVD.mpg
Option en plus éventuelles:
Pour forcer la langue Française: -alang fr
Pour forcer les sous titres d'un fichier .srt:
-sub soustitres.srt -subfont-autoscale 1
Parfois on tombe sur l'erreur «MPEG1/2 doesnt support 2997/125 fps», il faut dans ce cas rajouter l'option
-ofps xxx
avec xxx parmi 24000/1001, 24, 25, 30000/1001, 30, 50, 60000/1001, 60. Le codec mpeg2video ne supporte pas les autres formats. Il est conseillé de mettre 25 par compatibilté avec les lecteurs usuels.

2) Extraction musique pour le menu
mplayer -vo null -ao pcm -ao pcm:file=potter.wav enregistrement.mpg
et utilisation d'audacity pour obtenir une musique pour le menu
Puis conversion (inutile à mon avis mais bon) en .pcm (je crois que c'est
le même format)

mplayer potter.wav -vo null -ao pcm:file=potter.pcm

et enfin

mp2enc -r 48000 -o potter.mpa < potter.pcm

3) Le menu
a) Le fond à partir de menu_fond.jpg de taille 720x576, 75dpi sur la
largeur et 80 sur la hauteur:

jpeg2yuv -n 50 -I p -f 25 -j menu_fond.jpg | mpeg2enc -n p -f 8 -o menu.m2v

Mélange avec la bande son:

mplex -f 8 -o menu_final.mpg menu.m2v potter.mpa

(Ça c'est l'«image» de fond, -n 50 correspond à la durée totale en nombre de frames)

b) Les boutons sont fait à partir de deux images .png obtenu à partir de
l'image menu_fond.jpg de la façon suivante:

i) ajout d'un canal Alpha à l'image (sans ça ça coince...)
ii) ajout d'un calque.
Dans ce calque transparent, création de rectangles à bords colorés
très réguliers de couleur unique (3-4 pixels de largeur), ce sont les
boutons du menu. Sauvegarde du calque sous le nom bouton_OFF.png (le
fond ne sert qu'à aider pour placer les boutons)
Puis Changement de la couleur au moyen de la roue chromatique par ex
emple (dans gimp), le changement doit être uniforme. Resauvegarde du
calque sous le nom bouton_ON.png

Comme c'est assez compliqué j'ai mis sous
http://boisson.homeip.net/menuDVDpotter.tgz

une archive contenant l'image GIMP m'ayant servi à faire le DVD de
Harry Potter (image à 2 calques, attention, le fond n'est pas affiché,
demander l'affichage dans GIMP) ainsi que l'image jpg et les boutons
obtenus. Ça donne un exemple...

c) Ecriture du fichier spumux.xml:

<subpictures>
<stream>
<spu start="00:00:00.0" end="00:00:00.0"
highlight="bouton_OFF.png"
select="bouton_ON.png"
autooutline="infer"
autoorder="rows"/>
</stream>
</subpictures>

Je ne change à chaque fois que les deux noms des fichiers boutons,
c'est tout.

d) Et yop, on fait le menu:
spumux spumux.xml < menu_final.mpg > menu_dvd.mpg

4) Le dvd

a) Création de dvdauthor.xml (ne pas mettre les [blabla]

<dvdauthor dest="DVD"> [DVD est le répertoire où est fait le DVD]
<vmgm/>
<titleset>
<menus>
<pgc>
<button> jump title 1; </button> [ça c'est le Premier bouton]
<button> jump title 2; </button> [... le second ]
<vob file="menu_dvd.mpg" pause="inf"/> [ça c'est le menu ]
</pgc>
</menus>

<titles>
<pgc>
<vob file="Potter_2_DVD.mpg"/> [ premier bouton ]
<post> call menu; </post>
</pgc>

<pgc>
<vob file="Potter_1_DVD.mpg"/> [ deuxième bouton ]
<post> call menu; </post>
</pgc>
</titles>

</titleset>
</dvdauthor>

(si ma mémoire est bonne les boutons sont numérotés de haut en bas de
gauche à droite).

Pour faire le DVD:

dvdauthor -x dvdauthor.xml

5) Pour graver:
growisofs -Z /dev/dvd -dvd-video DVD/

Paquets recommandés: avidemux, mplayer, dvdauthor, normalize,
transcode, mjpegtools, dvd+rw-tools

Voilà voilà... Basique mais assez efficace. On peut faire des menus animés mais là ça devient compliqué....