Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
encodage_dvd_mkv [Le 14/03/2015, 17:12] – [Encoder l'audio et la vidéo simultanément] 88.120.197.48 | encodage_dvd_mkv [Le 14/04/2019, 14:37] (Version actuelle) – [Encoder l'audio et la vidéo simultanément] 193.250.138.66 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== 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' | ||
+ | |||
+ | Toutes les étapes, de l' | ||
+ | |||
+ | Le rip se fera également grâce à des logiciels open-source, | ||
+ | |||
+ | 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' | ||
+ | |||
+ | |||
+ | ===== Solutions alternatives à ce tutoriel avec interface graphique ===== | ||
+ | |||
+ | * [[: | ||
+ | * [[:dvdrip]] | ||
+ | * [[:ogmrip]] | ||
+ | * [[: | ||
+ | * [[:vlc]] | ||
+ | |||
+ | |||
+ | ===== Logiciels nécessaires ===== | ||
+ | |||
+ | Nous aurons besoin d' | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | === OGG Vorbis aoTuV === | ||
+ | |||
+ | Vous pouvez utiliser le OGG Vorbis présent par défaut dans Ubuntu. | ||
+ | |||
+ | Cependant, une version " | ||
+ | |||
+ | Nous aurons besoin d' | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | |||
+ | Cette installation remplacera votre fichier **usr/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Pour télécharger et installer OGG Vorbis aoTuV : | ||
+ | < | ||
+ | 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 : | ||
+ | < | ||
+ | |||
+ | Si vous avez plusieurs lecteurs de DVD, vous pouvez sélectionner le bon avec l' | ||
+ | |||
+ | Par tatonnement, | ||
+ | |||
+ | == méthodes alternatives == | ||
+ | |||
+ | Vous pouvez utiliser **dvdnav** et observer la sortie de mplayer pour déterminer le numéro du titre. | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Extraire les chapitres ==== | ||
+ | |||
+ | Pour cela nous allons utiliser **dvdxchap** avec l' | ||
+ | < | ||
+ | |||
+ | ==== 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** : | ||
+ | < | ||
+ | |||
+ | Les méta-données (langues des pistes audios et des chapitres) seront perdues. | ||
+ | Il est donc conseillé de les noter dans un fichier texte ou autre ; elles sont affichées par '' | ||
+ | < | ||
+ | Flux audio : 1 format : ac3 (5.1) langue : en aide : 129.</ | ||
+ | et | ||
+ | < | ||
+ | Sous-titre ( sid ) : 1 langue : fr | ||
+ | Sous-titre ( sid ) : 2 langue : es</ | ||
+ | |||
+ | Avant de retirer le DVD de votre lecteur, et si vous souhaitez extraire les sous-titres du dvd, il est conseillé de sauvegarder les fichiers IFO qu'il contient. | ||
+ | |||
+ | **À partir de maintenant, vous pouvez retirer le DVD.** | ||
+ | |||
+ | === méthodes alternatives === | ||
+ | |||
+ | Si vous avez des problèmes pour récupérer le fichier vob avec la méthode ci-dessus, vous pouvez essayer avec la commande : | ||
+ | < | ||
+ | === méthodes plus simples === | ||
+ | Avec l' | ||
+ | |||
+ | vobcopy -l | ||
+ | |||
+ | Il existe aussi d' | ||
+ | * [[http:// | ||
+ | * dvdbackup | ||
+ | |||
+ | ===== Encoder les pistes audio ===== | ||
+ | |||
+ | Dans cette section nous allons extraire et encoder certaines pistes audios du vob. | ||
+ | |||
+ | Cela est utile pour bien comprendre le processus d' | ||
+ | Cependant, il est aussi possible d' | ||
+ | L' | ||
+ | |||
+ | La section [[encodage_dvd_mkv# | ||
+ | |||
+ | ==== Méthode utilisant mplayer et oggenc ==== | ||
+ | |||
+ | Vous avez normalement déjà déterminé le numéro des pistes audios à extraire dans la section [[encodage_dvd_mkv# | ||
+ | |||
+ | Par exemple, si vous voulez sauvegarder la piste japonaise sachant que : | ||
+ | < | ||
+ | Vous devrez extraire la piste audio numéro 128. | ||
+ | |||
+ | Pour lire le fichier **vob** en utilisant une piste audio particulière (ici la numéro 128), histoire d' | ||
+ | < | ||
+ | |||
+ | Pour l' | ||
+ | < | ||
+ | |||
+ | Vous pouvez ajouter l' | ||
+ | < | ||
+ | |||
+ | Pour l' | ||
+ | |||
+ | Voici la relation entre le //preset// de qualité **q** et le débit nominal **b** en **Kibits/ | ||
+ | |||
+ | **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 : | ||
+ | |||
+ | < | ||
+ | |||
+ | Attention, ce n'est qu'un débit // | ||
+ | |||
+ | Pour encoder en utilisant une valeur de qualité : | ||
+ | < | ||
+ | |||
+ | Ces 2 commandes fournissent des fichiers de même taille à l' | ||
+ | |||
+ | Pour vous donner un ordre d' | ||
+ | ==== Méthode utilisant ffmpeg ==== | ||
+ | |||
+ | D' | ||
+ | < | ||
+ | Normalement l' | ||
+ | |||
+ | Une fois qu'on a repéré la piste audio voulue (ici la numéro 2) on l' | ||
+ | < | ||
+ | |||
+ | * **-map 0:2** permet de choisir la piste à encoder. | ||
+ | * **-vn** on extrait aucune piste vidéo (on ne conserve que la piste audio) | ||
+ | * **-sn** on extrait aucune piste de sous-titre (on ne conserve que la piste audio) | ||
+ | * **-aq 3** permet de choisir la qualité du son, plus la valeur est grande, meilleur est la qualité. Ce paramètre va de 1 à 10. | ||
+ | * **-ac 2** permet de spécifier le nombre de canaux voulu (2 pour du stéréo, 6 pour du 5.1, etc.), cette option n'est pas obligatoire. | ||
+ | |||
+ | ==== Méthode utilisant ffmpeg2theora ==== | ||
+ | |||
+ | On peut utiliser **[[apt> | ||
+ | < | ||
+ | |||
+ | Pour changer le numéro de la piste (qui s' | ||
+ | < | ||
+ | |||
+ | * **-a 3** permet de choisir la qualité du son. | ||
+ | * **--audiostream 2** permet de choisir la piste son à extraire. Pour avoir la bonne langue, choisissez la piste qui vous concerne. | ||
+ | |||
+ | ===== Encoder la vidéo ===== | ||
+ | |||
+ | Cette section est la suite logique de la précédente ; nous allons maintenant extraire et encoder la piste vidéo du fichier vob. | ||
+ | |||
+ | ==== Déterminer si votre vidéo est entrelacée ==== | ||
+ | |||
+ | Si, lors des mouvements, des [[http:// | ||
+ | Si vous n' | ||
+ | |||
+ | Attention, ne pas utiliser de filtre de désentrelacement sur une source **Telecine**. | ||
+ | En effet, le **Telecine** peut être inversé de manière // | ||
+ | |||
+ | Si vous allez encoder la vidéo via **mencoder**, | ||
+ | * **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, | ||
+ | < | ||
+ | |||
+ | Si vous allez encoder la vidéo via **ffmpeg**, pas besoins de vous creuser la tête... vous utiliserez l' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ==== 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 : | ||
+ | < | ||
+ | |||
+ | Placez vous sur une scène où les bandes noires apparaissent clairement et où le contraste film/bande est fort. | ||
+ | Il est aussi conseillé d' | ||
+ | En effet, parfois les bandes des séquences d' | ||
+ | |||
+ | **mplayer** devrait afficher la meilleure valeur de crop à utiliser, en respectant la taille des blocs (les valeurs sont des multiples de 16). | ||
+ | |||
+ | Vous pouvez fermez la vidéo. | ||
+ | |||
+ | Récupérez, | ||
+ | < | ||
+ | |||
+ | Vous pouvez également visualiser l' | ||
+ | < | ||
+ | |||
+ | Si cela ne convient pas vous pouvez modifier les valeurs manuellement. | ||
+ | Cependant, veuillez à ce que les tailles de l' | ||
+ | |||
+ | Pour une meilleur efficacité du codec il est préférable de ne laisser aucune bande noir, si petite soit-elle. | ||
+ | |||
+ | ==== Déterminer le débit vidéo ==== | ||
+ | |||
+ | Ce calcul n'est utile que si vous souhaitez fixer la taille du fichier final (pour le faire tenir sur un CD par exemple). | ||
+ | Si la qualité de l' | ||
+ | |||
+ | < | ||
+ | |||
+ | Pour calculer le débit moyen d' | ||
+ | * **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' | ||
+ | |||
+ | ==== Encodage ==== | ||
+ | |||
+ | Pour l' | ||
+ | |||
+ | === mencoder === | ||
+ | |||
+ | == encodage visant une taille de fichier (complexe) == | ||
+ | |||
+ | Avec un encodage à 800 Kbit/s, en 2 passes, sans désentrelacement, | ||
+ | |||
+ | __Pour la 1ère passe :__ | ||
+ | < | ||
+ | |||
+ | __Pour la 2nde passe :__ | ||
+ | < | ||
+ | |||
+ | Ces paramètres donnent une extrêmement haute qualité (on peut encore augmenter certains paramètres, | ||
+ | |||
+ | Cependant la première passe ne sert qu'à créer un fichier statistique, | ||
+ | |||
+ | Exemple 1ère passe plus rapide : | ||
+ | < | ||
+ | |||
+ | Vous pouvez alors changer les paramètres en vous documentant sur le [[http:// | ||
+ | |||
+ | Bien sûr, adaptez le crop, l' | ||
+ | |||
+ | < | ||
+ | Enregistrer le fichier dans le répertoire sous le nom " | ||
+ | |||
+ | == encodage visant une taille de fichier (simple) == | ||
+ | |||
+ | Si vous ne comprenez pas grand chose aux paramètres de " | ||
+ | Celui-ci utilise le programme '' | ||
+ | |||
+ | x264 possède des liste d' | ||
+ | On peut les lister avec la commande : | ||
+ | < | ||
+ | |||
+ | Par exemple pour un anime on peut utiliser : | ||
+ | < | ||
+ | mencoder video.vob -o video.avi -vf crop=720: | ||
+ | |||
+ | Plus le //preset// est lent, meilleur sera la qualité. | ||
+ | L' | ||
+ | |||
+ | == encodage visant une qualité == | ||
+ | |||
+ | Généralement le fichier final est destiné à être gravé (sur un CD par exemple), d'où le calcule du bitrate effectué au chapitre : [[encodage_dvd_mkv# | ||
+ | |||
+ | Lorsque le fichier n'est pas destiné à être gravé et que la qualité de l' | ||
+ | Avec ce paramètre, on ne vise pas une taille de fichier mais une qualité d' | ||
+ | |||
+ | Cette méthode ne nécessite qu'une seul passe : | ||
+ | < | ||
+ | <note tip>Dans certains cas, l' | ||
+ | Ce qui donnera : | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | Le paramètre " | ||
+ | |||
+ | === ffmpeg === | ||
+ | |||
+ | '' | ||
+ | Il ne possède pas de //tune// comme '' | ||
+ | Ceux-ci sont disponibles sous forme de fichier, un simple " | ||
+ | |||
+ | Cette partie du tutoriel est fortement inspirée de [[http:// | ||
+ | |||
+ | == encodage visant une taille de fichier == | ||
+ | |||
+ | Chaque //preset// possède son équivalent spécifique à la première passe (on ajoute " | ||
+ | |||
+ | < | ||
+ | |||
+ | puis la second passe : | ||
+ | < | ||
+ | |||
+ | * **-an** : on extrait aucune piste audio (on ne conserve que la piste vidéo) | ||
+ | * **-sn** : on extrait aucune piste de sous-titre (on ne conserve que la piste vidéo) | ||
+ | * **-vpre** : spécifie le //preset// (on peut spécifier plusieurs fois cette option) | ||
+ | * **-threads 0** : permet d' | ||
+ | * **-deinterlace** : si la vidéo est entrelacée | ||
+ | |||
+ | Pour les appareils et lecteurs ne supportant pas les fonctionnalités les plus avancées de h264, il est conseillé d' | ||
+ | |||
+ | == encodage visant une qualité == | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Encoder l' | ||
+ | |||
+ | Cette section n'est pas la suite logique de la section précédente ! | ||
+ | |||
+ | Ici nous considérerons que vous avez déjà lu le reste du tutoriel et que vous comprenez les notions qu'il contient. | ||
+ | Nous ne traiterons qu'un exemple utilisant une passe **crf**. | ||
+ | |||
+ | Pour encoder simultanément l' | ||
+ | < | ||
+ | |||
+ | La première **-map** doit être celle désignant la piste vidéo et la seconde l' | ||
+ | |||
+ | L' | ||
+ | Or le fait de spécifier au moins une de ces pistes avec l' | ||
+ | Concrètement, | ||
+ | |||
+ | == plusieurs piste audio == | ||
+ | |||
+ | Pour cela vous pouvez utiliser l' | ||
+ | |||
+ | < | ||
+ | |||
+ | L' | ||
+ | |||
+ | **/!\ " | ||
+ | |||
+ | === synchronisation audio/ | ||
+ | |||
+ | Lors de l' | ||
+ | Cela peut entraîner une désynchronisation des pistes dans le mkv final. | ||
+ | |||
+ | Pour éviter ce problème, nous pouvons utiliser l' | ||
+ | < | ||
+ | |||
+ | Les valeurs intéressantes sont les " | ||
+ | |||
+ | Si par exemple le PTS de la vidéo est de 0,1 et celui de l' | ||
+ | |||
+ | Pour rectifier ce décalage, on peut utiliser l' | ||
+ | < | ||
+ | |||
+ | L' | ||
+ | "-map 1.0" permet de spécifier que nous prenons la piste vidéo dans l' | ||
+ | |||
+ | Ici nous appliquons donc un délai négatif à la vidéo pour la resynchroniser avec l' | ||
+ | |||
+ | Attention, pour une raison quelconque (bug ou //feature// ?) seul la vidéo peut être décalée ! | ||
+ | C'est à dire que la première option " | ||
+ | |||
+ | En effet, la commande suivante ne fonctionne pas (mais ne crash pas non plus), bien qu' | ||
+ | < | ||
+ | |||
+ | ===== Extraire les sous-titres ===== | ||
+ | |||
+ | Si votre DVD contient des sous-titres, | ||
+ | |||
+ | Dans la section [[encodage_dvd_mkv# | ||
+ | < | ||
+ | où " | ||
+ | |||
+ | Une fois que vous connaissez les numéros sid qui vous intéresse, il suffit de faire : | ||
+ | < | ||
+ | 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, en changeant le numéro de l' | ||
+ | |||
+ | < | ||
+ | Il existe des méthodes permettant de transformer ces sous-titre " | ||
+ | Nous ne les détaillerons pas ici cependant, voici deux liens qui sont particulièrement utile pour comprendre la méthode (en anglais) : | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | </ | ||
+ | |||
+ | == méthode alternative == | ||
+ | |||
+ | < | ||
+ | ou à partir d'un DVD | ||
+ | < | ||
+ | Vous pouvez alors transformer le fichier français.ps1 en vobsub (ou en image via subtitle2pgm, | ||
+ | < | ||
+ | Cela crée les fichiers " | ||
+ | Ces options ne sont pas obligatoires : | ||
+ | * **-i** : spécifie le fichier déterminant la taille et la palette de couleurs des sous-titres | ||
+ | * **-a** : spécifie le vobsuboutindex et la langue | ||
+ | ===== Multiplexer en mkv ===== | ||
+ | |||
+ | Nous aurons besoin de : | ||
+ | * **[[apt> | ||
+ | * **[[apt> | ||
+ | |||
+ | Démarrez la **M**kv**M**erge**G**UI : | ||
+ | < | ||
+ | |||
+ | === Input === | ||
+ | |||
+ | Dans le premier onglet − //input// − ajoutez la vidéo, les pistes audio et les pistes de sous-titres, | ||
+ | Sélectionnez ensuite chacune des pistes audio dans la liste //Tracks// et définissez en la langue. Donnez leur éventuellement un titre. | ||
+ | <note tip>Il se peut que les pistes audio et vidéo n' | ||
+ | Vous pouvez heureusement décaler la bande son dans le "sous onglet" | ||
+ | |||
+ | Sélectionnez les pistes de sous-titres, | ||
+ | Redirigez éventuellement la sortie avec le champ //Output filename//. | ||
+ | |||
+ | === Attachments === | ||
+ | |||
+ | Dans cet onglet, vous pouvez ajoutez l' | ||
+ | Tout ce qui se trouve dans cet onglet est optionnel. | ||
+ | N' | ||
+ | |||
+ | === Global === | ||
+ | |||
+ | Dans le champ // | ||
+ | Dans le champ //Chapter file//, parcourez l' | ||
+ | Précisez en juste en dessous la langue. | ||
+ | Si votre fichier est en XML, précisez l' | ||
+ | |||
+ | === Start Muxing === | ||
+ | |||
+ | Appuyez sur le bouton //Start Muxing//... | ||
+ | |||
+ | Quelques dizaines de secondes plus tard, votre fichier mkv est prêt : il contient un film avec une image qualité DVD, plusieurs bandes sons, plusieurs pistes de sous-titres et un chapitrage complet du film. |