Problème de lecture des fichiers MKV "Erreur de réception des données audio (Trop lente)"

https://wiki.epfl.ch/pierre-etienne/multimedia/bug/mkvmerge-compression-none   (http://blogs.epfl.ch/article/29460)

[2010-09-09 / 00:16]

Problème de lecture des fichiers MKV "Erreur de réception des données audio (Trop lente)"

Bonjour,

Si vous lisez un fichier MVK, dans un lecteur multimédia, comme le "EMTEC Movie Cube N200", et que vous avez le message d'erreur suivant qui s'affiche: "Erreur de réception des données audio (Trop lente)", il faudra DEMUXER et REMUXER le container MKV.


Selon un article dans le forum:

The Matroska specifications know a feature called "header removal compression". This allows a muxer to keep a certain number of bytes that are identical for each frame in the track headers removing them from the individual frames. This reduces the size of the tracks significantly without altering the content as a demuxer can add the bytes found in the track headers to each frame during demuxing.

Starting with v4.1.0 Mkvmerge uses header removal compression for a couple of track types by default. These include AC3, DTS and MP3 audio tracks as well as Dirac and MPEG-4 part 2 (aka. XviD/DivX) video tracks. The user muxing a file may disable it by explicitely selecting 'none' as the compression scheme for such a track.




Il est donc préférable de ne pas activer la compression des header's, si on veut pouvoir exploiter ses fichiers MKV, dans les lecteurs multimédia actuels.



Exemples pratiques:

Avec un fichier en "HD Ready" (upscalé en "Full HD"), j'ai séparé les deux pistes vidéo et audio (DEMUX), puis REMUX avec MKVmerge, en faisant 3 configurations distinctes, sur le paramètre de la compression des header's:




- None : Sur les 2 pistes vidéo et audio, sur CHACUNE, le paramètre "None" a été appliqué:

                  Test Video cygnes - Compression none.mkv

                  Le fichier MKV est joué parfaitement dans le lecteur "EMTEC N200".



- Blank : par défaut, (rien n'est affiché); cela sera le soft MKVMerge qui fera le choix d'activer ou pas, l'option de compression des header's, pour la vidéo et/ou l'audio, en fonction des sources:

                   Test Video cygnes - Compression blank (default).mkv

                   Le fichier MKV affiche un écran noir, mais on entend le son, avec le lecteur "EMTEC N200".



 - Zlib : Sur les 2 pistes vidéo et audio, sur CHACUNE, le paramètre "Zlib" a été appliqué, pour activer la compression des header's:

               Test Video cygnes - Compression zlib.mkv

               Le fichier MKV n'est pas joué, et le lecteur "EMTEC N200", affiche le message d'erreur suivant:

               Erreur de réception des données audio (Trop lente)



Pour ce dernier cas, j'ai repris le fichier "… Compression zlib.mkv", et avec le logiciel "MKVMerge", pour les deux pistes vidéo et audio, sur CHACUNE, j'ai appliqué sur le paramètre de la compression des header's, la valeur "None":

 

et fait un MUXING d'un nouveau fichier MKV:

Test Video cygnes - Remux compression zlib to none.mkv


Ce fichier MKV résultant est joué parfaitement dans le lecteur "EMTEC N200".


Conclusions:

La stratégie choisie par le logiciel "MKVMerge", sur l'activation ou pas de la compression des header's, n'est pas bonne, car l'option "Blank", n'indique pas à l'utilisateur quelle option sera appliquée. Il faudrait avoir les options "None / Zlib / Automatic"; ainsi on saurait exactement celle utilisée. Il y a d'autres paramètres qui sont "Blank" (options que rentre l'utilisateur), et qui n'auront pas d'incidence sur le résultat, si on les laisse ainsi.

Je ne me prononce pas sur l'utilité de cette option de compression des header's, mais pour le moment, si vous voulez exploiter vos fichiers MKV, dans des lecteurs multimédia actuels, sélectionnez "None" sur chaque pistes vidéo, audio, subtitles, …


Si vous avez un fichier qui pose ce problème, vous aurez deux possibilités:

- DEMUXER toutes les pistes vidéo, audio, chapitres, … (avec "MKVExtract-Gui") et les MUXER (avec MKVMerge), en activant les bons paramètres dans les différents onglets, et en mettant "None" sur la compression des header's.

- Traiter directement le fichier MKV avec "MKVMerge", en paramétrant sur "None" la compression des header's, sur CHACUN des éléments (vidéo, audio, …) et en le sauvant sur un nouveau nom de fichier. Pour mon exemple, qui n'est que de 20 secondes, cela a fonctionné, mais je n'ai pas testé sur une vidéo de 3 heures!



Bonne journée!


Pierre ETIENNE


Références:

- Soft MKVMerge : http://www.bunkus.org/videotools/mkvtoolnix/downloads.html
  Tools associés  : http://www.bunkus.org/videotools/mkvtoolnix/links.html

- Soft MKVExtract-Gui 2 : http://sourceforge.net/projects/mkvextractgui-2/

- Vidéos de test: "Falun 'FULL HD' Productions – Noville"

       * Test Video cygnes - Compression none.mkv
       * Test Video cygnes - Compression blank (default).mkv
       * Test Video cygnes - Compression zlib.mkv
       * Test Video cygnes - Remux compression zlib to none.mkv