DVD vers AVI : Mencoder
17 Sep. 2006
- Auteur : Hyacinthe MENIET
- Responsable : TrustRobot
- Score ( voter ) :



- Connexes : Même auteur | Même responsable | Historique
1. Pré-requis :
- Installez comme indiqué : lame, a52dec et libdvdread
- nasm, nécessairement présent sur les cdroms de votre distribution, si pas déjà installé.
- mencoder est installé avec mplayer, vous devez donc installer ce dernier. Il faut impérativement installer mplayer après, lame, liba52 et libdvdread, sinon ils ne seront pas pris en charge.
2. Rip de DVD et encodage en avi :
Mencoder utilise libavcodec, un codec compatible MPEG-4, au même titre que Divx 5 ou Xvid, il est généralement plus performant pour une meilleure qualité d'image que les 2 derniers, quand votre player le supporte. Sous Linux, aucun soucis, la plus part des lecteurs multimédia, savent lire les fichiers ainsi encodé, mais sous Windows rien n'est garantit.2.1 Identifier le(s) vob(s) intéressant(s) :
Petit rappel, un DVD est généralement au format UDF sur une piste unique, il contient 3 type de fichiers, les .IFO, les .BUK et les .VOB. Les .IFO contiennent les infos de navigations (chapitres, langues ...), chaque .VOB contient un bout ou l'intégralité du film. Enfin les .BUK, sont des sauvegardes de ces fichiers. Avant de lancer l'encodage, il vous faut déterminer quel vobs encoder. Pour cela, lancer, par exemple :
mplayer dvd://1 -dvd-device /dev/hdc
en supposant que votre lecteur soit, sur /dev/hdc, bien-sûr. Mplayer va donc essayer de lire le titre 1 (qui peut être fomé de plusieurs vob). Si ce n'est pas lui qui contient votre film, passez au 2, puis 3 etc. Chez moi, c'était le 5, j'obtiens entre autres, ceci :
Joue DVD title 5
Lecture de la structure du disque, veuillez patienter...
Il y a 14 titres sur ce DVD.
Il y a 17 chapitres sur ce titre DVD.
Il y a 1 séquences sur ce titre DVD.
C'est le bon. Quand vous êtes, satisfait fermez mplayer. Pour la suite, nous avons besoin de quelques informations supplémentaires, localisez la ligne suivante :
L'aspect du film est 1,77:1 - pré-redimensionnement à l'aspect correct.
Ce qui signifie que mon film, est en 16/9, pour le 4/3 ça aurait été 1,33.
2.2 Rip et encodage :
Nous allons employer la méthode, 3-passes, cette méthode permet l'estimation du bitrate vidéo recommandé de façon à tenir sur un CD. De plus, l'audio n'est encodé qu'une fois, au contraire du mode 2-passes, que nous ne verrons pas.2.2.1 Audio sans sous-titre :
Le fichier généré doit s'appeler frameno.avi, s'il en existe un dans le répertoire courant, supprimez-le auparavant, par :
rm frameno.avi
Puis lancez le rip :
$ mencoder dvd://5 -ovc frameno -o frameno.avi -oac mp3lame -lameopts abr:br=128
-alang fr
selon la puissance de votre processeur, votre machine devrait mouliner un petit moment. Quand il a finit, mencoder vous affiche-les infos suivantes :
Bitrate vidéo recommandé pour 650MB CD: 690
Bitrate vidéo recommandé pour 700MB CD: 753
Bitrate vidéo recommandé pour 800MB CD: 878
Bitrate vidéo recommandé pour 2 x 650MB CD: 1506
Bitrate vidéo recommandé pour 2 x 700MB CD: 1632
Bitrate vidéo recommandé pour 2 x 800MB CD: 1883
Flux vidéo: 0,800 kbit/s (100 bps) taille: 667616 octets 6676,160 secs 166908 trames
Flux audio: 112,936 kbit/s (14116 bps) taille: 94254360 octets 6676,680 secs
qui sont assez explicites, notament le bitrate (753 pour une compression sur un CD de 700 Mo). Ces infos seront utilisées dans la suite. Mencoder génère un fichier frameno.avi.
2.2.2 Audio avec sous-titre :
Si vous avez des fichiers soustitres.idx soustitres.sub dans le répertoire courant, supprimez-les par :
rm soustitres.idx soustitres.sub
Mencoder peut extraire des sous titres, d'un film, dans un fichier au format vobsub, il s'agit, en fait, d'une paire de fichier .idx et .sub. On spécifie le nom des fichiers avec l'argument -vobsubout et l'index des sous-titres dans le fichier final avec -vobsuboutindex.
Si l'entrée n'est pas un DVD vous pouvez utiliser -ifo pour indiquer le fichier .ifo requis pour construire le fichier .idx final. Si l'entrée n'est pas un DVD et que vous n'avez pas de fichier .ifo vous aurez besoin d'utiliser l'option -vobsubid pour lui permettre de savoir quel id langue placer dans le fichier .idx.
Concrètement pour un DVD 3-passes. Commencez par identifier l'index des sous titre, pour cela tapez :
mplayer -dvd-device /dev/hdc dvd://5 -vo null -frames 0 -v 2>&1 | grep sid
fermez mplayer, si votre film a des sous-titres il devrait afficher :
[open] subtitle ( sid ): 0 language: da
[open] subtitle ( sid ): 1 language: de
[open] subtitle ( sid ): 2 language: en
[open] subtitle ( sid ): 3 language: es
[open] subtitle ( sid ): 4 language: fr
[open] subtitle ( sid ): 5 language: it
[open] subtitle ( sid ): 6 language: nl
[open] subtitle ( sid ): 7 language: no
[open] subtitle ( sid ): 8 language: sv
[open] subtitle ( sid ): 9 language: en
Pour récupérer, la bande sonore anglaise et les sous-titres en français :
$ mencoder dvd://5 -vobsubout soustitres -vobsuboutindex 0 -sid 4 -o frameno.avi -ovc frameno -oac mp3lame -lameopts abr:br=128 -alang en
selon la puissance de votre processeur, votre machine devrait mouliner un petit moment. Quand il a finit, mencoder vous affiche-les infos suivantes :
Bitrate vidéo recommandé pour 650MB CD: 690
Bitrate vidéo recommandé pour 700MB CD: 753
Bitrate vidéo recommandé pour 800MB CD: 878
Bitrate vidéo recommandé pour 2 x 650MB CD: 1506
Bitrate vidéo recommandé pour 2 x 700MB CD: 1632
Bitrate vidéo recommandé pour 2 x 800MB CD: 1883
Flux vidéo: 0,800 kbit/s (100 bps) taille: 667616 octets 6676,160 secs 166908 trames
Flux audio: 112,936 kbit/s (14116 bps) taille: 94254360 octets 6676,680 secs
qui sont assez explicites, notament le bitrate (753 pour une compression sur un CD de 700 Mo). Ces infos seront utilisées dans la suite. Finissez par :
$ mencoder dvd://5 -oac copy -ovc divx4 -divx4opts pass=1
$ mencoder dvd://5 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout sous-titres -vobsuboutindex 1 -sid 4
Cela va générer 3 fichiers frameno.avi, sous-titres.idx et sous-titres.sub. Si vous aviez un fichier mpeg ça tient en une ligne :
$ mencoder film.mpg -ifo film.ifo -vobsubout soustitres -vobsuboutindex 0
-vobsuboutid fr -sid 1
Cela va générer également 3 fichiers frameno.avi, soustitres.idx et soustitres.sub.
2.2.3 Première passe vidéo :
Mon film étant en 16/9 et souhaitant le compresser sur 2 CD de 700 Mo, je tape la ligne suivante : $ mencoder dvd://5 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1632:vhq:vqmin=2:vlelim= -4:vcelim=9:lumi_mask=0.05:dark_mask=0.01:vpass=1 -vop scale=640:480,crop=716:572:2:2 -oac copy -o /dev/null Si j'avais choisi, un autre taux de compression, il aurait fallu adapter la valeur de vbitrate, et si mon film avait été en 4/3, j'aurais mis scale=600:450. C'est le moment de sortir votre cafetière.2.2.4 La seconde passe vidéo :
La seconde passe est en tout point identique, à ceci près que vpass=2 et -o film.avi à la place de -o /dev/null, donc recopiez la ligne que vous avez précédemment tapée et modifiez ces 2 paramètres, concrètement chez moi j'ai mis : $ mencoder dvd://5 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1632:vhq:vqmin=2:vlelim= -4:vcelim=9:lumi_mask=0.05:dark_mask=0.01:vpass=2 -vop scale=640:480,crop=716:572:2:2 -oac copy -o film.avi Après quelques tasses de café, j'obtiens un fichier film.avi (j'aurais pu l'appeler moi.avi, évitez simplement les accents et les espaces). Ce fichier pèse : 896 Mo pour 1H45, l'image est nette et la synchronisation image/son, parfaite. Le fichier à graver est film.avi. Si vous avez des sous titres, vous devrez également graver : sous-titres.idx et sous-titres.sub. Pour lire votre fichier avec les sous-titres se sera :
mplayer -vobsub sous-titres film.avi
3. Utilisation avancée de mencoder :
3.1 Réparer l'index d'un avi :
Il suffit de copier le flux vidéo et audio et de régénérer un index, mencoder sait le faire très facilement :
mencoder -idx bad.avi -ovc copy -oac copy -o good.avi
3.2 Assembler plusieurs avi :
Cela ne marche qu'avec des avi, utilisant les mêmes codecs, résolution, débit et qu'au moins l'un deux ne soit pas endommagé, n'hésitez pas à réparer les défectueux avant :
cat 1.avi 2.avi 3.avi | mencoder -noidx -ovc copy -oac copy -o film.avi -