Impasse numérique
Accueil du site > Logiciels libres > Comment ripper efficacement un DVD sous linux ?

Comment ripper efficacement un DVD sous linux ?

jeudi 8 mai 2008


Pour commencer

Un DVD vidéo, c’est encombrant sur les étagères et ce n’est pas toujours disponible sous la main. C’est pourquoi je souhaite ripper ma collection.

La première approche, la plus simple, consiste à faire une copie complète du DVD à l’aide d’un logiciel de rip. Des outils intégrés existent sous linux. Je n’en citerai qu’un que je considère comme particulièrement pratique et facile pour cet usage : K9copy. Il s’agit d’une interface graphique à mencoder (et quelques autres outils) qui permet d’inclure ou de ne pas inclure les menus du dvd, de choisir quelles langues et quels sous-titres seront présents et d’éliminer les titres inintéressants (publicités, par exemple). L’outil permet également d’augmenter le taux de compression des fichiers pour réduire un peu le volume total des fichiers. On obtient au choix une belle image iso ou un simple répertoire. Le problème reste la taille des fichiers obtenus. Pour conserver une qualité correcte, environ 4Go sont nécessaires par vidéo. C’est beaucoup.

Pour réduire la place occupée par une vidéo sans réduire la qualité, la seule solution consiste à choisir un meilleur codec. Et justement les DVD sont encodés au format mpeg2 qui est ancien et n’offre que de médiocres performances. En choisissant un meilleur format de compression pour le son et la vidéo, il est possible d’obtenir un fichier de 700Mo à 1Go dont la qualité soit équivalente à la qualité d’origine. Encore une fois, des outils simples existent et K9copy peut également se charger de ce travail. Malheureusement, dans ces conditions, il faut choisir une fois pour toute la langue et les sous-titres : le spectateur ne pourra plus choisir sa version.

Pour aller plus loin et gagner sur tous les tableaux, il faut accepter d’abandonner le confort d’un service "clé en main" pour choisir et configurer soi même les outils.

Les poupées russes

Pour regrouper les contenus qui nous intéressent, il faut commencer par sélectionner un conteneur vidéo. C’est un fichier unique que l’on utilisera comme une "boite" dans laquelle nous rangerons la vidéo, les bandes sons, les sous titres et même, pourquoi pas, la jaquette du film. Les conteneurs vidéos les plus connus sont les fichiers avi, mouv ou mpg. Pour ma part, je retiens un autre format : matroska (ou poupée russe, en russe). L’extension utilisée pour les fichiers est mkv. Sans entrer dans le détail il présente le double avantage d’être très polyvalent et d’être complètement libre. Restent à choisir les codecs audio et vidéos.

Audio et Vidéo

L’extraction de la vidéo et des bandes sons peut se faire en une seule étape à l’aide de l’outil HandBrakeCLI, en ligne de commande. Pour la suite, on va supposer que le DVD est monté dans le répertoire /mnt/iso

Il faut d’abord lister le contenu du DVD :

  • -i /mnt/video définit le chemin d’accès au périphérique (/mnt/iso)
  • -t 0 demande de lister les titres

On repère alors soigneusement le titre et les bandes sons qui nous intéressent. Ensuite, on va ripper le son et la vidéo :

  • -i /mnt/iso définit le chemin d’accès au périphérique (/mnt/iso)
  • -t 1 sélectionne le titre du dvd qui nous intéresse (ici le 1)
  • -c 2-30 sélectionne les chapitres qui nous intéressent (ici, j’élimine le chapitre 1 du générique qui n’est pas intéressant et le chapitre 31 du générique de fin)
  • -a 1,2 sélectionne les bandes sons à inclure (ici, les 1 et 2)
  • -o mon-film.mkv définit le nom du fichier de sortie (mon-film.mkv)
  • -f mkv sélectionne le format du conteneur (matroska)
  • -S 980 définit la taille du fichier de sortie en Mo
  • -e xvid sélectionne le codec video à utiliser (ici xvid)
  • - 2 demande à l’encodeur vidéo de faire deux passages. Cela permet un gain de qualité mais double presque le temps nécessaire
  • -E lame sélectionne le codec audio à utiliser (ici lame correspond au format mp3 en 96 kbps)

Les sous titres

HandbrakeCLI permet d’inclure des sous titres mais malheureusement, il les "grave" sur la vidéo ce qui ne permet pas de les désactiver ou de choisir entre plusieurs sous-titrage. Nous allons donc utiliser pour extraire les sous titres un autre outil mencoder qui est une partie du projet mplayer.

La première chose à faire est de repérer les différents sous-titres. Car, malheureusement mplayer/mencoder et handbrake ne les repèrent pas de la même façon ! La ligne de commande magique est la suivante :

  • dvd ://1 sélectionne le titre 1 du dvd
  • -dvd-device /mnt/iso/ définit le chemin vers le dvd (ici /mnt/iso)
  • tout le reste de la linge ne change jamais et permet de n’afficher que les informations intéressantes

Il ne reste plus qu’à extraire chaque piste de sous titre avec mencoder :

  • dvd ://1 sélectionne le titre 1 du dvd
  • -chapter 2-30 sélectionne les chapitres 2 à 30 (soyons logiques avec ce que nous avons fait pour la vidéo…)
  • -dvd-device /mnt/iso/ définit le chemin du dvd
  • -ovc frameno définit qu’il ne faut encoder aucune vidéo
  • -nosound définit qu’il ne faut encoder aucun son
  • -o /dev/null sélectionne /dev/null comme fichier de sorti. C’est à dire qu’aucun fichier n’est créé
  • -sid 0 sélectionne les sous titre 0
  • -vobsubout définit le nom des fichiers de sorti (ici soutitres-fr)

Pour chaque langue de sous titrage, deux fichiers à ne jamais séparer sont définis l’un contenant les timecodes (.idx) et l’autre les images des sous-titres (.sub).

Un peu de rangement

Maintenant que tout est prêt, nous n’avons plus qu’à ranger l’ensemble dans le conteneur, c’est à dire dans le fichier matroska et nous allons même y ajouter la jaquette du DVD !

Pour cela, nous allons utiliser un dernier outil : mkvmerge qui permet de faire ce type de chose très simplement. Comme tous les contenus que nous avons créés sont cohérents, il n’y a presque aucune option à lui passer.

  • -o mon-film-complet.mkv définit le nom du fichier de sortie (ici mon-film-complet.mkv)

On énumère ensuite les objets à insérer, précédé éventuellement de leurs options :

  • mon-film.mkv C’est la vidéo et les bandes sons
  • soustitres-en.idx C’est les sous titres en anglais. Il faut également disposer, dans le même répertoire, du fichier "sub" correspondant mais ce n’est pas la peine de l’indiquer explicitement
  • soustitres-fr.idx C’est les sous titres en français. Il faut également disposer, dans le même répertoire, du fichier "sub" correspondant mais ce n’est pas la peine de l’indiquer explicitement
    • —attachment-description "Jaquette DVD"
    • —attachment-mime-type image/jpeg
    • —attach-file jaquette.jpg
    • définissent respectivement le nom (Jaquette DVD) et le type (image/jpeg) du fichier à inclure, le fichier étant jaquette.jpg.

Et voila, votre fichier est prêt. Ce n’était pas si difficile, finalement.


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette