Du DVD à la poupée russe

Rédigé par Christophe LEFEVRE | Classé dans : Accueil, Savoir faire

19
10 | 11

Vous avez du temps de libre et vous souhaitez faire une sauvegarde de vos DVD vers un format plus simple à transporter. Une solution s'offre à vous, c'est le Dixv. Mais non, je déconne !
Dans cet article, nous allons voir comment procéder pour transformer vos DVD en MKV (Matroska) en n'utilisant exclusivement des Logiciels Libres.
Ce tutoriel ne propose qu'un modèle de sauvegarde pouvant être adapté à vos gouts.

Télécharger en PDF
Télécharger le code source (LaTeX)


Avant tout, qu'est-ce que c'est le MKV ?
Prenons la définition sur WhiskyWikipedia :
Matroska (MKV) n'est pas un codec mais un format de fichier qui peut contenir des flux encodés avec les codecs suivants :
  • Vidéo : DivX, XviD, RealVideo, H.264, Theora, VP8, etc.
  • Audio : Vorbis, AAC, MP2, MP3, AC3, DTS, PCM, WV (WavPack), FLAC et bientôt MPC (Musepack).
  • Sous-titres : SubRip (srt), SubStationAlpha (ssa), Advanced SubStationAlpha (ass), VobSub (sub/idx), etc.
Il existe plusieurs autres conteneurs courants tels que le MPEG4 (.mp4), QuickTime (.mov), AVI (.avi) pour les principaux. Le mkv se distingue de ces derniers de par plusieurs points:
  • support de quasiment tous les flux vidéo et audio existants ;
  • grande capacité pistes de sous-titres de différents formats ;
  • support du chapitrage ;
  • possibilité d'étiquetage des pistes audio, vidéo et les sous-titres ;
  • possibilité d'intégration de pièces jointes, comme les images d'illustration (couverture/jaquette).
Maintenant que les présentations sont faites, passons aux choses sérieuses. Tout d'abord, les logiciels qu'il vous faut:
  • MPlayer : Lecteur Multimedia
  • MEncoder : Outil d'encodage vidéo utilisant MPlayer. Cela implique que tous les formats lus par MPlayer peuvent êtres encodés.
  • MKVtoolnix : Paquet contenant, entre autres, MKVMerge (Utilitaire en ligne de commande) qui permet de créer un MKV.
  • MKVMerge GUI : Outils en interface graphique qui va nous servir pour utiliser MKVMerge sans passer par la ligne de commande.
  • libdvdcss2 : librairie permettant de lire des DVD commerciaux sous Linux.
  • x264 : Implémentation libre du codec H264.
Bien entendu, il ne vous reste qu'à avoir installé les codec nécessaires à l'encodage des vidéos.

Copie du DVD

Afin de ranger le plus rapidement possible le précieux DVD et d'éviter de trop utiliser le lecteur, nous allons procéder à la copie dans une image ISO.
Plusieurs solutions s'offrent à nous.
La première, la plus simple, consiste à utiliser les fonctions de votre logiciel de gravure préféré (Brasero, K3B, Néro, ...).
Pour K3B :
Créez un projet de données et dans la boite de dialogue "Gravure" et sélectionnez "Crée seulement une image".
Pour Brasero :
Dans la fenêtre principale, Créer un projet > "Copier un disque". Dans la fenêtre "Copie de CD et de DVD", choisissez comme disque "Fichier image".
Vous pouvez choisir le fichier de destination en cliquant sur "Propriétés".
Cliquez sur "Créer une image" pour valider.
La seconde solution, plus compliquée, consiste à passer par la ligne de commande en utilisant dd
Extrait du manuel de dd que vous pouvez consulter avec la commande man dd :
dd copie un fichier (par défaut, depuis l'entrée standard vers la sortie standard) en permettant de sélectionner la taille de bloc, et d'effectuer des conversions.
En gros, cela dit qu'il copie le contenu de ce que vous voulez vers l'emplacement que vous voulez avec des options avancées. Mais nous allons utiliser cet outils uniquement pour copier une source (le lecteur DVD) vers une image ISO.
Voici la commande (A exécuter dans le répertoire dans lequel vous allez travailler) :
dd if=/dev/dvd of=‹Image du DVD›.iso
Dans cette commande, if= est le paramètre qui donne à la commande dd la source à lire. of= donne la destination où écrire.
Avec un exemple que nous reprendrons tout au long du tutoriel, cela donne:
dd if=/dev/dvd of=Ghost_in_the_shell.iso
Après cela, vous avez une image ISO de votre DVD que vous pouvez ranger sur votre étagère.

Repérage des titres

Un titre, sur un DVD, c'est l'équivalent d'une piste sur un CD audio.
Ici, il n'y a pas de solution miracle pour trouver les titres que vous cherchez, il va falloir explorer les pistes grâce à Mplayer.
Votre DVD étant composé de plusieurs titres, Mplayer les reconnaîtra facilement.
Vous pouvez les explorer avec la commande :
mplayer dvd://1 -dvd-device ‹Image du DVD›.iso
Ceci lancera la lecture du titre 1 sur l'image du dvd en iso. Vous n'avez qu'à incrémenter de 1 le paramètre dvd:// jusqu'à arriver au film.
Pour exemple :
mplayer dvd://2 -dvd-device Ghost_in_the_shell.iso
La lecture du titre 2 du DVD "Ghost in the Shell" se lance. Pour arrêter la lecture, appuyez sur "Echap" ou "q".
N'ayez aucune inquiétude, sur un DVD il y a, au plus, une dizaines de titres. Les seuls cas où il pourrait y avoir plus de 10 piste, ce sont les dvd avec x bandes-annonces ou les DVD Musicaux (Sauf dans le cas d'un concert).
Une fois le titre repéré, vous pouvez passer à l'extraction.
ATTENTION : Au moment de la lecture, Mplayer renvoie dans le terminal des informations concernant la vidéo, gardez-les bien au chaud, dans un fichier texte.

Extraction du film

Dans cette étape, nous allons extraire le film et le récupérer dans un fichier .vob qui va, non seulement nous permettre de transcoder la vidéo, mais aussi de récupérer les pistes audio d'origine.
Comme dans la partie précédente, nous allons utiliser Mplayer qui va lire l'image ISO du DVD et copier le film.
Le titre sera considérée comme une source et la destination est celle que vous choisirez (avec .vob comme extension).
Ce qui donne :
mplayer -dumpstream dvd://‹piste› -dvd-device ‹Image du DVD›.iso -dumpfile ‹nom du film›.vob
Expemple :
mplayer -dumpstream dvd://2 -dvd-device Ghost_in_the_shell.iso -dumpfile gits.vob
Après, il ne reste plus qu'à attendre la fin de l'extraction.

Extraction des sous-titres

Nous allons, maintenant, laisser tomber Mplayer (Quoique...) pour Mencoder.
Effectivement, nous ne procédons pas à une simple lecture, mais aussi a un transcodage pour isoler les sous-titres de l'audio et la vidéo.
Pour cela, il va falloir jeter un coup œil sur les informations récupérées lors du repérage des pistes.
Si cela n'a pas été fait, vous pouvez toujours les récupérer en lançant directement une lecture sur le fichier vob avec Mplayer.
Dans cette partie, nous aurons besoin de connaître les identifiants des sous-titres.
En prenant notre exemple depuis le début, cela va donner :
audio stream: 0 format: ac3 (unknown) language: fr aid: 128.
audio stream: 1 format: ac3 (5.1) language: en aid: 129.
audio stream: 2 format: ac3 (stereo) language: ja aid: 130.
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: fr
number of subtitles on disk: 1
La ligne commencent par subtitle ( sid ) est celle qui vous indique d'identifiant (Dans le cas présent : 0). Dans cet exemple nous avons une seule piste de sous-titre mais il peut y en avoir plusieurs.
Pour récupérer les sous-titre, nous utiliserons MEncoder comme ceci :
mencoder dvd://‹piste› -dvd-device ‹Image du DVD›.iso -vobsubout ‹soustitres› -vobsuboutindex 0 -sid ‹id sous-titre› -o /dev/null -nosound -ovc frameno
Ainsi, si vous souhaitez extraire plusieurs sous-tires, modifiez le chiffre derrière le paramètre -sid. Il est aussi nécessaire de modifier le paramètre -vobsubout qui indique le nom du/des fichier(s) de destination Dans notre exemple, voici ce que cela donne:
mencoder dvd://2 -dvd-device Ghost_in_the_shell.iso -vobsubout fr -vobsuboutindex 0 -sid 0 -o /dev/null -nosound -ovc frameno
Vous vous retrouvez donc avec deux fichiers par piste de sous-titre, un .idx et un .sub. Dès que l'extraction des sous-titre est terminée, vous pouvez supprimer l'image ISO du DVD.

Encodage de la vidéo

Voilà enfin la partie la plus longue mais la plus adaptable du tutoriel : l'encodage de la vidéo.
Bien entendu, plusieurs formats et plusieurs traitements sont disponibles.
L'un des plus important des traitement à faire, c'est le respect du ratio (4/3, 16/9, ...).
Lors de l'extraction de la piste en un fichier VOB et si votre film est en 16/9, vous avez peut-être remarqué que votre film est passé de 16/9 à 4/3. Ceci peut être corrigé par le paramètre -aspect

Voici ce que dit le Manuel de Mplayer/MEncoder :
-aspect ‹ratio›
Force le rapport hauteur/largeur du film, dans le cas où l'information de ration d'aspect est incorrecte ou manquante dans le fichier lu.

EXEMPLE:
-aspect 4:3 ou -aspect 1.3333
-aspect 16:9 ou -aspect 1.7777
Retenons seulement -aspect 4:3 ou -aspect 16:9, les valeurs décimales étant ici pour des cas particuliers.

Maintenant, il nous faut un codec, représenté par -ovc
-ovc
Encode avec le codec vidéo indiqué (pas de valeur par défaut).
NOTE : Pour obtenir la liste complète des codecs disponibles, voir -ovc help.

EXEMPLE :
-ovc copy
pas d'encodage, juste une copie du flux
-ovc raw
Encode dans un format non-compressé arbitraire (que vous sélectionnez avec '-vf format').
-ovc lavc
Encode avec un codec de libavcodec.
Ici, nous allons utiliser le H264 via son implémentation sous la licence GNU/GPL : x264.
Voici le modèle de notre future commande :
mencoder -aspect ‹16:9 ou 4:3› ‹Nom du film›.vob -o ‹Nom du fichier›.avi -ovc ‹Codec› -nosound -nosub
Dans notre exemple, voici ce que cela donne :
mencoder -aspect 16:9 gits.vob -o Ghost_in_the_shell.avi -ovc x264 -nosound -nosub
Cette commande peut être adaptée en fixant le bitrate, le nombre de passe, etc...
Mais en laissant juste -ovc x264, la vidéo sera encodé avec les paramètre par défaut de MEncoder, ce qui donne un assez bon rendu.
La phase d'encodage peut prendre une cinquantaine de minutes avec un pc récent.

MKVMerge

Vous pouvez quitter le Terminal et lancer MKVMerge GUI qui se trouve dans "Son et vidéo". Si vous ne souhaitez pas quitter le terminal, car vous êtes un gros G33K, vous pouvez utiliser la commande suivante :
mmg
Très compliqué, non ?
Bref, vous vous retrouvez sur l'interface principale :

MKVMerge GUI
Pour agrandir, cliquez sur l'image.

Avant de nous intéresser plus profondément au multiplexage de nos fichiers, vous pouvez spécifier un nom dans "Options globales > File/Segment title".
Ensuite, revenez sur l'onglet "Entrée".
Celui-ci se décompose en 4 parties :

Première partie


Pour agrandir, cliquez sur l'image.

Ici, sont représentés les fichiers contenant les pistes à intégrer. C'est là que nous ajoutons les fichiers que nous avons créés (vob, idx, avi et éventuellement le ac3).
Nous voyons, dans le cas présent, qu'il y a le fichier vob parmi les fichiers sources. C'est effectivement à partir du vob que nous récupérons les pistes audio.
Si vous voulez éviter de créer un gros fichier mkv, faites attention à ce que la piste audio de soit pas encodé au delà de 1000.0 kbit.
Ceci peut arriver sur des films ne possedant qu'une seule piste son. Référez-vous aux informations reçu au début de ce tutoriel, dans une partie ressemblant à celle-ci :
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
Ici le problème ne se pose pas. Dans le cas contraire, vous pouvez ouvrir le .vob dans audacity et l'exporter en ac3. Par la suite vous utiliserez ce fichier à la place du vob.
Enfin, pour intégrer les pistes de sous-titres, choisissez le .idx et non le .sub.

Seconde partie


Pour agrandir, cliquez sur l'image.

Ici, vous choisissez quelles pistes intégrer ou non.
Comme vous l'avez remarqué, la piste MPEG-2 de type vidéo provenant de gits.vob est décoché, puisque nous avons déjà notre vidéo en H264 provenant de Ghost_in_the_shell.avi qui est plus légère.

Troisième partie


Pour agrandir, cliquez sur l'image.

Dans cette avant-dernière partie, vous pouvez spécifier le nom et la langue pour chacune des pistes. L'option "Defalut track flag" donne la priorité d'une piste sur l'autre. Par exemple, si vous souhaitez avoir la piste de sous-titre active par défaut, il vous suffit de cliquer sur VobSub (sans la décocher) et de mettre "Defalut track flag" sur oui.

Quatrième et dernière partie


Pour agrandir, cliquez sur l'image.

Pour finir, il vous reste à choisir le nom du fichier de destination et de démarrer le multiplexage qui ne prend même pas une minute.


Licence Creative Commons
Du DVD au MKV de Christophe LEFEVRE est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage à l'Identique 2.0 France.

Mots clés : mkv, dvd, mkvmerge, mplayer, mencoder

Ecrire un commentaire




Quelle est la première lettre du mot lbuw ? :