ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[encodage_dvd_mkv]]

Piste: » encodage_dvd_mkv

Encodage DVD → MKV

Ce tutoriel est destiné à ceux qui veulent faire des rips de leurs DVD, tout en gardant la meilleure qualité possible, aussi bien audio que vidéo, en gardant les différentes pistes audio et les différentes pistes de sous-titres —ce qui permet d'obtenir un rip multilangue—, ainsi que le système de chapitrage. Et tout ça, dans un fichier de la taille d'un CD : 700 Mio.

Toutes les étapes, de l'installation à la création du fichier final, sont expliquées dans ce tutoriel. Vous allez utiliser uniquement des formats open-source, pour la vidéo, l'audio, le chapitrage et le conteneur. Ils ont l'avantage d'être multi-plates-formes (lisibles sous Windows, Linux, Mac…), gratuits, et surtout plus performants que leurs homologues propriétaires…

Le rip se fera également grâce à des logiciels open-source, sous GNU/Linux.

Voici les caractéristiques du fichier final que vous allez obtenir en suivant ce tutoriel :

  • Conteneur : Matroska Video
  • Codec vidéo : x264
  • Codec audio : OGG Vorbis aoTuV
  • Sous-titrage : SUB
  • Chapitrage : OGG Chapters / XML

Vous pouvez cependant n'utiliser que certaines parties du tutoriel : par exemple, si vous voulez transcoder une vidéo ogg theora en x264, vous n'avez pas besoin de la partie rip de dvd.

Logiciels nécessaires

Nous aurons besoin de :

Commencez par installer x264.

OGG Vorbis aoTuV

Vous pouvez utiliser le OGG Vorbis présent par défaut dans Ubuntu.

Cependant, une version "améliorée" donne apparemment de meilleurs résultats. C'est cet encodeur qui est recommandé sur hydrogenaudio : http://wiki.hydrogenaudio.org/index.php?title=Recommended_Ogg_Vorbis

L'installation remplacera votre fichier usr/bin/oggenc, faites-en une copie auparavant.

sudo cp /usr/bin/oggenc /usr/bin/oggenc-default

Pour télécharger et installer OGG Vorbis aoTuV :

wget http://www.geocities.jp/aoyoume/aotuv/source_code/libvorbis-aotuv_b5.tar.bz2
tar xvfj libvorbis-aotuv_b5.tar.bz2
cd aotuv-b5_20061024
CFLAGS=-fno-strict-aliasing sh ./configure
make
sudo make install

Rip du DVD

Sélectionner le bon titre

Pour lire un titre du dvd, il suffit de passer en paramètre de mplayer le numéro du titre :

mplayer dvd://1

Si vous avez plusieurs lecteurs de DVD, vous pouvez sélectionner le bon avec l'option -dvd-device chemin_du_lecteur.

Par tatonnement, vous trouverez ainsi le bon numéro, correspondant à la vidéo que vous souhaitez encoder.

Extraire les chapitres

Pour cela nous allons utiliser dvdxchap avec l'argument t pour préciser le titre à extraire (ici on a besoin du point de montage du lecteur DVD):

dvdxchap -t 4 /media/cdrom > chapters.txt

Extraire en vob

Une fois que vous avez trouvé le bon numéro, par exemple ici 4, tapez la commande suivante pour ripper le titre dans un fichier vob :

mplayer -dumpstream dvd://4 -dumpfile video.vob

À partir de maintenant, vous pouvez retirer le DVD de votre lecteur.

Encoder les pistes audio

Pour lister tous les flux contenus dans le fichier vob, tapez la commande :

mplayer video.vob -v -vo null -ao null -frames 0 | grep "==> Found"

Vous obtenez ainsi les numéros des différentes pistes audio. Pour lire le fichier vob en utilisant une piste audio particulière (ici celle de numéro 128), tapez la commande suivante :

mplayer video.vob -aid 128

Pour l'extraire en wav, tapez la commande suivante :

mplayer video.vob -aid 128 -ao pcm:file=audio128.wav -vc dummy -vo null

Pour l'encoder en OGG Vorbis, il faut choisir un débit nominal ou une valeur de qualité.

Voici la relation entre le preset de qualité q et le débit nominal b en Kibits/s :

b =

  • 16×q + 64 si qϵ[0;4] ;
  • 32×q si qϵ[4;8] ;
  • 64×q - 256 si qϵ[8;9] ;
  • 180×q - 1300 si qϵ[9;10].

Pour encoder en donnant en paramètre un débit nominal, ici 112 :

oggenc audio128.wav -o audio128.ogg -b 112

Attention, ce n'est qu'un débit nominal, le débit réel sera sûrement inférieur pour un film.

Pour encoder en utilisant une valeur de qualité :

oggenc audio128.wav -o audio128.ogg -q 3

Ces 2 commandes fournissent des fichiers de même taille à l'octet près (car q3 et 112 Kibits/s sont équivalents).

Pour vous donner un ordre d'idée, pour un film, on choisit généralement un preset entre 3 et 4,5, selon la durée du film.

Encoder la vidéo

Déterminer le crop

Les vidéos provenant des DVD contiennent souvent des bandes noires. Il faut les détourer. Pour détecter la bonne valeur de crop à utiliser, il suffit de lancer la vidéo avec cette commande :

mplayer video.vob -vf cropdetect

Parcourez un peu l'ensemble de la vidéo tout en regardant la console, lorsque la valeur de crop s'est stabilisée, fermez la vidéo. Normalement il trouve la meilleure valeur de crop à utiliser, en respectant la taille des blocs (les valeurs sont des multiples de 16).

Récupérez, par copier-coller, le paramètre -vf crop ainsi trouvé, puis lisez la vidéo en indiquant le découpage :

mplayer video.vob -vf crop=720:576:0:0

Si cela convient, c'est bon, sinon vous pouvez modifier les valeurs manuellement.

Déterminer un filtre de désentrelacement

Si lors des mouvements, des lignes horizontales apparaissent sur l'image, il faut utiliser un filtre de désentrelacement.

Attention, ne pas utiliser de filtre de désentrelacement sur une source Telecine. En effet, le Telecine peut étre inversé de manière lossless (sans pertes), contrairement à l'entrelacement.

Si vous avez une vidéo entrelacée, vous avez le choix entre plusieurs désentrelaceurs :

  • lavcdeint : ?
  • kerndeint : Kernel deinterlace
  • filmdint : ?
  • pp=lb : Linear Blend Deinterlace
  • pp=li : Linear Interpolating Deinterlace
  • pp=ci : Cubic Interpolating Deinterlace
  • pp=md : Median Deinterlace
  • pp=fd : FFMpeg Deinterlace

Pour lire votre vidéo avec un filtre de désentrelacement (tout en gardant votre découpage des bandes noires), tapez la commande suivante (si vous voulez utiliser le désentrelaceur cubique) :

mplayer video.vob -vf pp=ci,crop=720:576:0:0
Surtout, si votre vidéo n'est pas entrelacée, n'appliquez aucun filtre de dé\-sen\-tre\-la\-ce\-ment, vous perdriez en qualité!

Déterminer le débit vidéo

Certaines notations utilisées, pourtant normalisées, sont très peu connues ; consultez http://fr.wikipedia.org/wiki/Préfixe_binaire pour plus d'informations.

Pour calculer le débit moyen d'encodage de la vidéo, vous avez besoin de connaître:

  • cd : la taille finale du fichier que vous voulez obtenir (en Mio) (par exemple 700 Mio) ;
  • aud : la somme des tailles des pistes audio que vous avez encodées (en Mio) ;
  • st : la taille des pistes de sous-titres (comptez 1 Mio à 2 Mio par piste);
  • d : la durée de la vidéo (en secondes).

Le débit bitrate à utiliser en paramètre du x264 est calculé de la manière suivante : bitrate = (cd - aud - st) × 2^23 × 10^-3 / d

Pour vous faciliter le calcul, 2^23 × 10^-3 = 8388,608.

Pour ceux qui veulent comprendre cette formule, cd - aud - st correspond à la taille en Mio réservée à la vidéo. Pour convertir de Mio en Kio, il faut multiplier par 2^10. On divise ce résultat par la durée pour obtenir la taille à utiliser en moyenne pour chaque seconde de vidéo, on obtient donc un résultat en Kio/s. On le multiplie par 8 = 2^3 pour obtenir le résultat en Kibits/s. Comme le débit à passer en paramètre de l'encodeur x264 doit être exprimé en Kbits/s, et non en Kibits/s, il faut multiplier par 2^10 × 10^-3.

Encodage

Avec un encodage à 800 Kibit/s, en 2 passes, sans désenterlacement, tapez la commande suivante :

Pour la 1ère passe :

mencoder video.vob -o video.avi -vf crop=720:576:0:0 -ovc x264 -x264encopts bitrate=800:frameref=8:mixed_refs:bframes=3:b_adapt:b_pyramid:weight_b:partitions=all:8x8dct:me=umh:subq=7:trellis=2:brdo:threads=auto:pass=1 -nosound

Pour la 2nde passe :

mencoder video.vob -o video.avi -vf crop=720:576:0:0 -ovc x264 -x264encopts bitrate=800:frameref=8:mixed_refs:bframes=3:b_adapt:b_pyramid:weight_b:partitions=all:8x8dct:me=umh:subq=7:trellis=2:brdo:threads=auto:pass=2 -nosound

Ces paramètres donnent une extrêmement haute qualité (on peut encore augmenter certains paramètres, mais ça serait de l'abus), mais demandent beaucoup de temps d'encodage.

Vous pouvez alors changer les paramètres en vous documentant sur ce topic : http://www.unite-video.com/phpbb/viewtopic.php?t=6726

Ou en encore sur la documentation sur le site de mplayer : http://www.mplayerhq.hu/DOCS/HTML/fr/menc-feat-x264.html

Bien sûr, adaptez le crop, l'éventuel filtre de désentrelacement et le débit selon votre vidéo.

FIXME À compléter !

Extraire les sous-titres

Si votre DVD contient des sous-titres, il est possible de les intégrer au fichier final.

On commence d'abord par identifier les pistes de sous-titres. Si le numéro trouvé au début était 4, cela nous donne :

mplayer -v dvd://4

Qui devrait vous afficher quelque part des lignes du genre :

subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: en
subtitle ( sid ): 2 language: fr
subtitle ( sid ): 3 language: nl
subtitle ( sid ): 4 language: fr

Vous devez retenir les sid (0, 1, 2 …).

Vous pouvez identifier clairement une piste de sous-titres avec mplayer :

mplayer -sid 2 video.vob

Une fois que vous connaissez les numéros sid qui vous intéresse, il suffit de faire un :

mencoder dvd://4 -vobsubout subtitles -vobsuboutindex 0 -sid 2 -o /dev/null -nosound -ovc frameno

Les fichiers subtitles.idx et subtitles.sub seront alors créés dans le répertoire courant.

Répétez cette opération pour chacune des pistes de sous-titres que vous souhaitez extraire.

Multiplexer en mkv

Nous aurons besoin de :

Démarrez la MkvMergeGUI :

mmg

Input

Dans le premier onglet − input − ajoutez la vidéo, les pistes audio et les pistes de sous-titres, de préférence dans l'ordre que vous souhaitez établir par défaut.

Sélectionnez ensuite chacune des pistes audio dans la liste Tracks et définissez en la langue. Donnez leur éventuellement un titre.

Il se peut que les pistes audio et vidéo n'aient pas la même durée… Cela risque d'introduire un gros décalage entre la bande vidéo et la bande son.

Vous pouvez heureusement décaler la bande son dans le "sous onglet" Format Specific Options en indiquant ce décalage dans le champ Delay (en millisecondes).

Sélectionnez les pistes de sous-titres, définissez en la langue et choisissez le format de compression zlib.

Redirigez éventuellement la sortie avec le champ Output filename.

Attachments

Dans cet onglet, ajoutez une affiche du film, comme la couverture du boitier DVD, ajoutez le synopsis du film dans un fichier texte, etc.

Tout ce qui se trouve dans cet onglet est optionnel.

N'oubliez pas de bien préciser le type mime de chacun des fichiers joins.

Global

Dans le champ File/segment title, renseignez le titre du film.

Dans le champ Chapter file, parcourez l'arborescence pour y ajouter votre fichier de chapitrage du DVD. Précisez en juste en dessous la langue. Si votre fichier est en XML, précisez l'encodage utilisé (généralement utf-8 pour le XML).

Start Muxing

Appuyez sur le bouton Start Muxing

Quelques dizaines de secondes plus tard, votre fichier mkv est près : il contient un film avec une image qualité DVD, plusieurs bandes sons, plusieurs pistes de sous-titres et un chapitrage complet du film.

Tout çà sur seulement 700 Mio ! (Vous pouvez faire plus gros bien entendu)


encodage_dvd_mkv.txt · Dernière modification: 2008/10/10 02:34 par 78.129.56.24, 127.0.0.1
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL