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
Matroska (MKV) n'est pas un codec mais un format de fichier qui peut contenir des flux encodés avec les codecs suivants :Maintenant que les présentations sont faites, passons aux choses sérieuses. Tout d'abord, les logiciels qu'il vous faut:
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:
- 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.
- 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).
- 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.
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,
Pour K3B :La seconde solution, plus compliquée, consiste à passer par la ligne de commande en utilisant ddCré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.
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›.isoDans 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.isoAprè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›.isoCeci 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.isoLa 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›.vobExpemple :
mplayer -dumpstream dvd://2 -dvd-device Ghost_in_the_shell.iso -dumpfile gits.vobAprè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.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.
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
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 framenoAinsi, 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 framenoVous 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›Retenons seulement -aspect 4:3 ou -aspect 16:9, les valeurs décimales étant ici pour des cas particuliers.
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
Maintenant, il nous faut un codec, représenté par -ovc
-ovcIci, nous allons utiliser le H264 via son implémentation sous la licence GNU/GPL : x264.
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 copypas d'encodage, juste une copie du flux-ovc rawEncode dans un format non-compressé arbitraire (que vous sélectionnez avec '-vf format').-ovc lavcEncode avec un codec de libavcodec.
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 -nosubDans notre exemple, voici ce que cela donne :
mencoder -aspect 16:9 gits.vob -o Ghost_in_the_shell.avi -ovc x264 -nosound -nosubCette 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 :mmgTrès compliqué, non ?
Bref, vous vous retrouvez sur l'interface principale :
Pour agrandir, cliquez sur l'image.
Ensuite, revenez sur l'onglet "Entrée".
Celui-ci se décompose en 4 parties :
Première partie
Pour agrandir, cliquez sur l'image.
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 :
==========================================================================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.
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)
==========================================================================
Enfin, pour intégrer les pistes de sous-titres, choisissez le .idx et non le .sub.
Seconde partie
Pour agrandir, cliquez sur l'image.
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.
Quatrième et dernière partie
Pour agrandir, cliquez sur l'image.
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.