Ripper et encoder en XviD
Introduction
Le Xvid est un codec MPEG4 distribué sous licence GPL, ce qui lui permet, contrairement au DivX d'être en constante évolution grâce a une importante communauté de développement.
De plus, ce codec apporte beaucoup moins de flou que le DivX (c'est le principal défaut du DivX) et la qualité globale me semble meilleure. Mais ceci a un prix : suivant les options utilisées, l'encodage en XviD sera plus long qu'en DivX.
La méthode présentée ici est celle que j'utilise pour encoder. On obtient un excellent résultat. Un conseil de manière générale : il faut absolument éviter d'utiliser des logiciels comme EasyDivX ou NeoDivX. On obtient jamais un aussi bonne qualité avec ces logiciels tout en un. En utilisant des logiciels spécialisés dans chaque étape, on peut plus facilement contrôler le processus.
Logiciels utilisés
Ripp du DVD et identification de la piste contenant le film
On nommera le répertoire de travail {PATH}.
Le rip complet se fait avec la commande :
dvdbackup -i /dev/dvd -M -o {PATH} -v 1-M est utilisé pour ripper l'intégralité du DVD.Le
-o {PATH} place le RIP dans le répertoire {PATH}.Le
-v 1 active du verbosage.Nous n'avons maintenant plus besoin du DVD :).
Il faut maintenant identifier quelle est la piste contenant le film sur le DVD. Pour cela, on affiche la table du contenu du DVD avec cette commande :
dvdbackup -i {PATH}/DVDBACKUP -I
Extraction et encodage de l'audio
Il est aussi possible de repérer la langue avec son identifiant numérique. Pour cela, utiliser la commande :
mplayer -dvd-device {PATH}/DVDBACKUP dvd://{TITLE} -v 2>/dev/null | egrep '^\{open\}'{open} audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
{open} audio stream: 1 audio format: ac3 (stereo) language: en aid: 129
{open} audio stream: 2 audio format: ac3 (5.1) language: fr aid: 130
{open} audio stream: 3 audio format: ac3 (stereo) language: fr aid: 131
{open} audio stream: 4 audio format: ac3 (stereo) language: en aid: 132
{open} audio stream: 5 audio format: ac3 (stereo) language: en aid: 133On notera l'identifiant de la langue voulue {AID}. Par exemple ici "130" pour la piste française en son 5.1.
La commande pour l'extraction est (on choisira entre la méthode -alang et -aid, pas les deux !) :
mplayer -dvd-device {PATH}/DVDBACKUP dvd://{TITLE} -vc dummy -vo null -hardframedrop -ao pcm -aofile {WAVEFILE} -channels {2|4|6} <-alang {AUDIOLANG}|-aid {AID}>-vc dummy -vo null -hardframedrop ignore la partie vidéo du DVD. Elle sera extraite plus tard.-ao pcm -aofile {WAVEFILE} <-alang {AUDIOLANG}|-aid {AID}> va extraire la bande son de langue {AUDIOLANG} ou {AID} (suivant la méthode choisie !) dans le fichier wave pcm nommé {WAVEFILE}. l'option -channels {2|4|6} indique le nombre de canneaux : 2 pour de la stéréo, 6 pour du 5.1, ou 4 pour de la quadriphonie. Pour un réencodage en mp3, seule la stéréo est supportée. En ogg (ce que je conseille vivement), tout est possible.La bande son est maintenant extraite, il faut la traiter. Il est peut-être nécessaire de la normaliser :
normalize {WAVEFILE}Pour l'encodage, je préconise plutôt l'Ogg/Vorbis. D'une part, il permet d'encoder facilement sur plus de 2 voix si désiré, et il permet aussi d'avoir une meilleure qualité à un bitrate plus faible. Pour une bande son standard en stéréo, je préconise ceci :
oggenc -q4 {WAVEFILE}-q4 est définitivement le meilleur choix. Le facteur de qualité quant a lui est peut-être à ajuster en fonction du nombre de canneaux et de la nature du film.
Extraction du chapitrage du DVD
dvdxchap -t {TITLE} {PATH}/DVDBACKUP > {CHAPTERFILE}
Extraction de la bande vidéo et encodage
Pour l'extraction, une seule commande suffit :
mplayer -dvd-device {PATH}/DVDBACKUP dvd://{TITLE} -nosound -dumpvideo -dumpfile {VOBFILE}On peut maintenant paramétrer le codec xvid. Pour cela, il existe un petit utilitaire très pratique :
xvid4conf
Il apparaît la boite ci-contre, boite d'options du XviD.

Dans l'onglet "Quantizers" : il faut régler les quantizers, ie le niveau de compression des frames. Les I-Frames sont les frames clé (frames complètes), et les P-Frames représentent la variation par rapport a l'image précédente, et les B-Frames sont des frames dites bidirectionnelles (comme les P-Frames, mais tenant compte des variations de la frame d'avant, et de la frame d'après).
Paramétrer les options comme sur l'image ci-contre :
Dans le cas de la quantization MPEG, vous pourrez spécifier vos propres matrices ici, mais cela demande de l'expérience. Les réglages par défaut sont très bien pour commencer.

Dans l'onglet "Two pass", mettre "Keyframe Boost" a 10. Laisser tout le reste par défaut.
Passer dans l'onglet "Save/Load" et enregistrer la configuration dans le répertoire courant {PATH} (par défaut). Le fichier doit se nommer comme par défaut : xvid4.cfg
On peut maintenant passer a l'encodage de la première passe :
transcode -i {VOBFILE} -x vob,null -y xvid4 --config_dir {PATH} -R 1,xvid4.log-I mode pour désentrelacer, -Z widthxheight pour redimensionner, -Y top[,left[,bottom[,right]]] pour le cropping. Au besoin, faire une capture d'ecran du film en visualisant le {VOBFILE} avec mplayer, pour calculer les paramètres adéquats.Il y en a pour un petit moment. Nous allons donc nous livrer a un petit calcul nécessaire a la deuxième passe. En effet, il nous faut connaître la place disponible pour la vidéo.
Pour un encodage sur 2 CDs, soit 1400Mo, on va soustraire 1.2% du a l'overhead de l'OggMovie : c'est la place pour les headers de l'OGG. il nous reste donc 1384Mo.
On convertit cela en ko, soit 1 417 200 ko (en base 1024, je le rappelle, et avec un léger arrondi).
On retire à cela la taille en ko de toutes les bandes son soit pour l'exemple qui me concerne 170 030 ko. Il nous reste 1 247 170 ko.
Cette valeur multipliée par 8 divisé par la durée du film en secondes nous donne le {bitrate}, la valeur que l'on cherchait. Pour mon exemple, le film fait 3h20, soit 12000 secondes. J'obtiens donc un bitrate de 831kbits/s. On retient cette valeur dans {bitrate}.
Une fois ceci calculé et l'encodage de la première passe finie, passons a la deuxième passe :
transcode -i {VOBFILE} -o {VIDEO} -x vob,null -y xvid4 --config_dir {PATH} -R 2,xvid4.log -w {bitrate}
Multiplexage des différents fichiers
ogmmerge -o {FICHIERFINAL}.ogm -c TITLE="Titre du film" -A {VIDEO} -c LANGUAGE="Langue" audio1.ogg -c LANGUAGE="Langue" audio2.ogg ... -c LANGUAGE={Langue} sous-titres.srt {CHAPTERFILE}-c TITLE="Titre du film" indique le titre du film que vous voulez (pas de formatage particulier).Pour chaque flux audio/sous-titres, on peut spécifier sa langue, en le faisant précéder dans la ligne de commande par
-c LANGUAGE="Langue" où Langue est l'une des dénominations standard anglaises : French, English, German....Voila, l'encodage est terminé. Je n'ai pas détaillé l'extraction des sous-titres, car ce n'ai pas une chose très aisée, car cela utilise de la reconnaissance de caractères. C'est une opération assez lourde. Mais c'est tout a fait possible a l'aide des outils issus du package transcode : tccat, pgm2txt et srttool.



