Ceci est une ancienne révision du document !



Les fichiers Matroska (mkv)

Le format Matroska est un conteneur multimédia libre, il est caractérisé par l'extension .mkv. Son nom vient des poupées russes, qui s'emboîtent les unes dans les autres.

Un fichier mkv est un conteneur multimédia. On peut y encapsuler différents flux vidéo, audio, de sous-titrage et de chapitrage, ce qui le rend beaucoup plus complet que l'avi ou l'ogm. Les types de flux acceptés dans un fichier mkv sont:

  • Vidéo: XviD - DivX 3,4,5 - MPEG1,MPEG2,MPEG4 - H264,x264 - RealVideo 5,8,9 - Theora - L/AVC - Quicktime Vidéo
  • Audio: mp1,mp2,mp3 (CBR,VBR,ABR) - Vorbis - PCM - Musepack - ac3 (Dolby) - DTS - FLAC - RealAudio 1,2 - AAC - Quicktime Audio
  • Sous-titres: srt - sub - ssa - Bitmap - VobSub

À chaque version de matroska, de nouveaux formats sont ajoutés (prochainement le WMA/WMV et le HuffYUV).

Le nombre de pistes est illimité, ce qui rend ce format idéal pour la sauvegarde de DVD, car pouvant gérer plusieurs pistes audio et de sous-titres, ainsi que définir des chapitres et même le multiangle (avec plusieurs pistes vidéo). Chaque piste peut être taguée, et la création de menus est en développement.

La compatibilité avec la prochaine génération de lecteurs de salon est également à l'étude.

IMPORTANT : le mkv n'est pas un format de compression ou un codec: une vidéo ne peut pas être compressée en mkv. On confond souvent la boîte (le conteneur, l'extension) avec son contenu (qui est de la vidéo ou de l'audio) géré par un codec.

Explications

La lecture des mkv est acceptée par les lecteurs multimedia les plus courants (vlc, xine, gstreamer, mplayer …). Encore faut-il que le lecteur puisse décoder les flux présents à l'intérieur du fichier mkv. Par exemple vlc ne peut pas lire le Real Media, et le support x264 n'est pas encore parfait …

On trouve souvent des mkv contenant des vidéos en RealVideo ou en H264, ainsi que des pistes audio en AAC, car ce sont des formats de compression de haute qualité, et mkv est le seul conteneur pouvant les accepter. Si on ne réussit pas à bien les lire, on a tendance à penser : "mon lecteur ne lit pas les mkv". C'est une erreur, le mkv est bien "désencapsulé", mais les codecs nécessaires pour lire certains des flux ne sont pas présents.

Lecteurs et codecs

  • Sous linux, le lecteur idéal pour les mkv est à mon avis Mplayer, car il lit parfaitement ce conteneur et possède un large éventail de codecs à sa disposition ;
  • Xine est également un très bon moteur de lecture prenant en charge les mkv, avec ses front-ends Totem-Xine et Kaffeine ;
  • Pour faire face à toute éventualité, installez également les codecs non-libres w32codecs.

Mplayer

Exemple de lecture d'un mkv avec Mplayer : Tout d'abord on liste les differences pistes disponibles :

$ mplayer  Episode\ 01\ -\ Asteroid\ blues.mkv 
Playing Episode 01 - Asteroid blues.mkv.
[mkv] Track ID 1: video (V_REAL/RV40), -vid 0
[mkv] Track ID 2: audio (A_AAC/MPEG4/LC/SBR), -aid 0, -alang jpn
[mkv] Track ID 3: audio (A_AAC/MPEG4/LC/SBR), -aid 1, -alang fre
[mkv] Track ID 4: subtitles (S_TEXT/SSA), -sid 0, -slang fre
[mkv] Track ID 5: subtitles (S_TEXT/SSA), -sid 1, -slang dut
[mkv] Track ID 6: subtitles (S_TEXT/SSA), -sid 2, -slang spa
[mkv] Track ID 7: subtitles (S_TEXT/SSA), -sid 3, -slang por

Puis on lance mplayer avec les options de sélection de piste audio et video :

$ mplayer  -alang jpn -slang fre Episode\ 01\ -\ Asteroid\ blues.mkv

Logiciels dédiés

Un ensemble de logiciels est disponible avec la suite mkvtoolnix et son interface graphique mmg pour la création et la manipulation de fichiers mkv.

On pourra notamment connaître les codecs employés dans un mkv, en extraire les pistes (vidéo, audio, sous-titres), ou rassembler des fichiers en un mkv.

Du DVD au MKV

Vous souhaitez transformer un DVD de plus de 9 Gio (ou moins, peu importe) en un film de seulement 700 Mio (ou plus, ou moins) avec une très haute qualité d'image, avec plusieurs pistes sonores, avec des pistes de sous-titres et un chapitrage complet du film ?

Regardez donc cette page spécialement consacrée à l'encodage d'un DVD en MKV.

Créer un mkv à partir d'autres fichiers ou pistes

Supposons que nous ayons un fichier film.avi, avec une piste vidéo en DivX5 et une piste audio française en MP3. Nous avons, dans un fichier séparé, une deuxième piste audio anglaise en Ogg-Vorbis (film_audio2.ogg), ainsi qu'un fichier srt de sous-titres français (film_stfr.srt). Nous allons utiliser l'interface graphique de mkvmerge, mmg, pour créer notre fichier mkv.

Les 3 fichiers sont ouverts et séparés en flux individuels. Notez que l'on peut taguer chaque piste, lui donner un nom ainsi qu'un identificateur de langue. On peut aussi définir un délai (dans le cas par exemple de pistes audio mal synchronisées) et changer l'aspect de l'image.

Dans certains cas, les flux doivent être transcodés afin de pouvoir être lus. Par exemple, dans le cas du FreePlayer, utilisant VLC, l'image des mkv contenant du Real Video ne peut pas être décodée. Le même problème se pose dans le cas des lecteurs DivX de salon, le mkv n'étant pas encore supporté sur ceux-ci.

Il convient donc de transformer le mkv en avi (XviD+MP3). Nous choisissons de faire un codage simple en une passe.

L'outil le plus indiqué est Mencoder, car lui aussi accepte tout type de flux vidéo et audio.

Installation de Mencoder

Activez les dépôts Universe.

sudo apt-get install mencoder

Transcodage

Nous choisissons un bitrate audio de 128kbps.

Il vous faudra faire le calcul du bitrate vidéo pour atteindre la taille de fichier voulue. Supposons qu'il vaut 900kbps

mencoder -oac mp3lame -lameopts cbr=128 -ovc xvid -xvidencopts bitrate=900 nom_du_fichier.mkv -o fichier_final.avi

Supposons que nous choisissons de conserver la deuxieme piste audio du fichier mkv (option "-aid" de mp3lame):

mencoder -oac mp3lame -lameopts cbr=128 -aid 1 -ovc xvid -xvidencopts bitrate=900 nom_du_fichier.mkv -o fichier_final.avi

Vous obtenez un fichier avi lisible avec VLC et sur une platine de salon.

ATTENTION : ceci est une méthode basique et générale. Mplayer et Mencoder sont des outils beaucoup plus puissants, mais néanmoins complexes à appréhender, en raison de la multitude d'options disponibles et de cas de figure pouvant être rencontrés. Une lecture approfondie du manuel de Mplayer/Mencoder est recommandée.

Lorsque la vidéo et le son d'un mkv sont déjà dans un format géré par l'avi (DivX, XviD, Mp3 …) le transcodage n'est pas nécessaire. Un simple démultiplexage (mkvextract) suivi d'un multiplexage (mencoder, avidemux) suffit à en faire un avi, sans aucune perte en qualité.

Flux video en "Real"

Sur Ubuntu 8.10, installez le paquet w32codec (qui n'est pas un paquet libre) du dépôts Médinbuntu. (Ce format n'est pas lu par la simple manipulation proposée sur la page formats_non-libres.) Contrairement à ce que l'on entend sur les forum, cette manipulation est suffisante.

  • matroska.1290365907.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)