Как воспроизводить MKV-видео в веб-браузере

Я пытаюсь сделать видео MKV с видеокодеком MPEG4 и аудиокодеком AC3, доступным для игры в Интернете, используя Mozilla или Chrome. Я пробовал несколько методов, включая собственный HTML5, который воспроизводит видео, но без звука и из того, что я прочитал. AC3 является проприетарным кодеком, поэтому он не включен в поддерживаемые кодеки. Код для этого был следующим:

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

Затем я попытался использовать веб-плагин VLC (так как я знаю, что VLC может правильно воспроизводить файлы), но еще не получил его для воспроизведения какого-либо файла, похоже, в примерах для использования не существует последовательности Этот метод. Вот что я пробовал до сих пор с помощью плагина VLC:

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

Страница VLC здесь говорит, чтобы добавить это:

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

Но кодовая база больше не существует и добавляет, что classid к указанному выше коду не влияет на воспроизведение файла. Оба метода приводят к созданию поля VLC player, но ничего не происходит, и консоль разработчика не показывает никаких ошибок.

Итак, мой вопрос: кто-нибудь знает обходное решение, чтобы получить аудио AC3 для воспроизведения в собственном проигрывателе HTML5 или какой правильный синтаксис для веб-плагина VLC? Или у кого-нибудь есть другой игрок, который они порекомендуют? Любая помощь приветствуется!

Ответ 1

Этот код можно использовать. работайте только на браузере 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>

Ответ 2

HTML5 и веб-плагин VLC не были для меня, но я смог получить эту работу, используя следующую настройку:

DivX Web Player

AC3 Audio Decoder

И вот 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>

Проигрыватель DivX, по-видимому, допускает гораздо более широкий набор видео и аудио опций, чем собственный HTML5, пока я очень впечатлен им.

Ответ 3

html5 не поддерживает какой-либо формат видео. для файла .mkv вы можете использовать этот код...

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

но убедитесь, что только хром поддерживает этот код это может помочь вам

Ответ 4

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

Это отобразит видео (.mkv) только с помощью браузера Google Chrome.