web-dev-qa-db-fra.com

Comment lire une vidéo MKV dans un navigateur Web

J'essaye de faire une vidéo MKV avec un codec vidéo MPEG4 et un codec audio AC3 disponibles pour être lus en ligne en utilisant Mozilla ou Chrome. J'ai essayé plusieurs méthodes, y compris HTML5 natif, qui lit la vidéo mais pas d'audio et d'après ce que j'ai lu, AC3 est un codec propriétaire, il n'est donc pas inclus dans les codecs pris en charge. Le code pour cela était le suivant:

<video width='1024' height='768' controls autoplay> 
<source src="path_to_src" type='video/x-matroska'</video>

J'ai ensuite essayé d'utiliser le plugin Web VLC (car je sais que VLC peut lire les fichiers correctement) mais je ne l'ai pas encore lu pour lire n'importe quel fichier, il ne semble pas y avoir beaucoup de cohérence dans les exemples d'utilisation de cette méthode. Voici ce que j'ai essayé jusqu'à présent en utilisant le plugin VLC:

<embed type="application/x-vlc-plugin" version="VideoLAN.VLCPlugin.2" 
width="1024" height="768" id="vlc" autoplay="yes" target="path_to_file"></embed>

La page VLC ici dit d'ajouter ceci:

<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
 codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab">

Mais la base de code ne semble plus exister et l'ajout de ce classid au code ci-dessus n'a aucun effet sur la lecture du fichier. Les deux méthodes entraînent la création de la boîte du lecteur VLC mais rien n'est jamais joué et la console du développeur ne montre aucune erreur.

Ma question est donc: est-ce que quelqu'un connaît une solution pour que l'audio AC3 soit lu dans le lecteur HTML5 natif ou quelle est la syntaxe correcte pour le plugin Web VLC? Ou est-ce que quelqu'un aurait un joueur différent à recommander? Toute aide appréciée!

15
Alex Meyer

Vous pouvez utiliser ce code suivant. Travaillez uniquement sur le navigateur chrome.

 function failed(e) {
   // video playback failed - show a message saying why
   switch (e.target.error.code) {
     case e.target.error.MEDIA_ERR_ABORTED:
       alert('You aborted the video playback.');
       break;
     case e.target.error.MEDIA_ERR_NETWORK:
       alert('A network error caused the video download to fail part-way.');
       break;
     case e.target.error.MEDIA_ERR_DECODE:
       alert('The video playback was aborted due to a corruption problem or because the video used features your browser did not support.');
       break;
     case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
       alert('The video could not be loaded, either because the server or network failed or because the format is not supported.');
       break;
     default:
       alert('An unknown error occurred.');
       break;
   }
 }
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <meta name="author" content="Amin Developer!" />

 <title>Untitled 1</title>
</head>
<body>

<p><video src="http://jell.yfish.us/media/Jellyfish-3-Mbps.mkv" type='video/x-matroska; codecs="theora, vorbis"' autoplay controls onerror="failed(event)" ></video></p>
<p><a href="YOU mkv FILE LINK GOES HERE TO DOWNLOAD">Download the video file</a>.</p>

</body>
</html>
10
Amin

HTML5 ne prend pas en charge les fichiers .mkv/Matroska mais vous pouvez utiliser ce code ...

<video>
    <source src="video.mkv" type="video/mp4">
</video>

Mais cela dépend du navigateur pour savoir s'il va jouer ou non. Cette méthode est connue pour fonctionner avec Chrome.

8
Narendra Dharajiya

HTML5 et le plugin Web VLC étaient un non pour moi mais j'ai pu obtenir ce travail en utilisant la configuration suivante:

DivX Web Player

Décodeur audio AC

Et voici le HTML:

<embed id="divxplayer" type="video/divx" width="1024" height="768" 
src ="path_to_file" autoPlay=\"true\" 
pluginspage=\"http://go.divx.com/plugin/download/\"></embed>

Le lecteur DivX semble permettre un éventail beaucoup plus large d'options vidéo et audio que le HTML5 natif, jusqu'à présent, je suis très impressionné par celui-ci.

4
Alex Meyer
<video controls width=800 autoplay>
    <source src="file path here">
</video>

Cela affichera la vidéo (.mkv) en utilisant Google Chrome uniquement.

2
JohnC