Pré-requis :
Avoir copier l’arborescence du dvd sur son PC, surtout le dossier VIDEO_TS.
1ère étape : identifier les pistes audio.
mplayer -v VTS_01_1.VOB | grep aid
Cela va lancer le film avec mplayer et afficher les paramètres dans le terminal, l’option grep aid permet de filtrer tout ceci et de n’afficher que les langages présents sur le dvd.
Nous allons donc avoir quelque chose comme ceci dans le terminal :
[open] audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
[open] audio stream: 1 audio format: ac3 (5.1) language: fr aid: 129
2ème étape : identifier les sous titres (facultatif)
Les sous titres sont identifiés par sid donc la commande mplayer -v VTS_01_1.VOB | grep sid devrait donner ceci à quelque chose près :
[open] subtitle ( sid ): 0 language: en
[open] subtitle ( sid ): 1 language: fr
[open] subtitle ( sid ): 2 language: es
[open] subtitle ( sid ): 3 language: nl
3ème étape : préparation des fichiers VOB
Nous allons réunir les fichiers VOB pour qu’ils n’en fassent plus qu’un.
Si le dvd est issu d’une série il va avoir plusieurs fichiers correspondant à plusieurs épisodes.
Par exemple pour un dvd contenant 4 épisodes :
cat VTS_01_1.VOB VTS_01_2.VOB > episode1.VOB
cat VTS_02_1.VOB VTS_02_2.VOB > episode2.VOB
cat VTS_03_1.VOB VTS_03_2.VOB > episode3.VOB
cat VTS_04_1.VOB VTS_04_2.VOB > episode4.VOB
Exemple pour un film :
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB > film.VOB
4ème étape : encodage
Pour ce faire je vais utiliser le codec x264, je sais x264 c’est le mal !
Mais en attendant j’ai fais plusieurs essais avec xvid et je n’ai jamais réussi à avoir une qualité correcte (même avec plusieurs passes) et Theora et WebM ne sont pas supportés par le disque dur multimédia qui va accueillir ces fichiers…
Donc solution de repli : x264.
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o film.avi
Et voilà, un dvd rippé en avi d’une qualité tout à fait convenable.
5ème étape : Automatisation (facultatif)
Pour un film il suffit donc de deux commandes :
- une pour concaténer les fichiers VOB
- une pour encoder le VOB en avi
Alors que pour un dvd comportant des épisodes d’une série il faut deux commandes par épisode, un dvd contenant généralement 4 épisodes il faut 8 commandes par dvd.
Et il faut attendre que la commande soit finie pour lancer la suivante.
Pour automatiser la transformation d’un dvd de serie on peut fait un script sh qui ressemblerai à ceci :
cat VTS_01_1.VOB VTS_01_2.VOB > episode1.VOB
cat VTS_02_1.VOB VTS_02_2.VOB > episode2.VOB
cat VTS_03_1.VOB VTS_03_2.VOB > episode3.VOB
cat VTS_04_1.VOB VTS_04_2.VOB > episode4.VOB
mencoder episode1.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode1.avi
mencoder episode2.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode2.avi
mencoder episode3.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode3.avi
mencoder episode4.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o episode4.avi
On place ce script dans le répertoire VIDEO_TS et on le lance par la commande :
sh script-encodage.sh
6ème étape : Options (facultatif)
Analysons une commande d’encodage :
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc x264 -x264encopts bitrate=950:turbo -o film.avi
Comme vu plus haut -aid xxx permet de choisir la piste audio.
Si l’on veut rajouter des sous titres, il faut rajouter -sid x.
Le format natif d’un dvd étant 720×576 pixels l’option -vf scale=720:576 permet de garder ce format pour le fichier de sortie.
Options audio
-oac copy indique qu’il faut copier le flux audio si on veut le réencoder il faut modifier cette option.
Par exemple pour une piste audio en mp3 à un débit constant de 128 kbps il faut faudrait mettre :
-oac mp3lame -lameopts mode=2:cbr:br=128
Si le son est trop faible ou trop fort on peut ajouter :vol=x si x=0 le son restera pareil que sur la vidéo d’origine sinon une valeur positive ou négative fera changer la gain/
Donc si le son est trop faible on peut mettre -oac mp3lame -lameopts mode=2:cbr:br=128:vol=3
Options x264
bitrate=950 : indique que l’on souhaite encoder la vidéo en 950kbps, il faut donc jouer sur ce paramètre pour modifier la qualité de la vidéo.
turbo : le mode turbo permet de réaliser l’encodage plus rapidement mais entraîne une légère baisse de la qualité.
pass=1 ou pass=2 : permet de faire plusieurs passes afin d’avoir une qualité optimale.
threads=x : indique qu’il faut utiliser x cores de votre CPU. Sans cette option un seul core est utilisé.
xvid
Pour faire un encodage en deux passes en xvid les commandes ressemblerait à ceci :
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc xvid -xvidencopts bitrate=1000:pass=1 -ovc lavc -lavcopts "threads=2" -o /dev/null
mencoder film.VOB -aid 129 -vf scale=720:576 -oac copy -ovc xvid -xvidencopts bitrate=1000:pass=2 -ovc lavc -lavcopts "threads=2" -o video.avi
On retrouve les mêmes options qu’avec le x264 sauf le mode turbo.
Le multithreading est aussi pris en charge mais avec une syntaxe différente :
- en x264 on aurait -x264encopts bitrate=950:threads=2
- en xvid on a -xvidencopts bitrate=950 -ovc lavc -lavcopts "threads=2"