33

我正在尝试使用 MPEG4 视频编解码器和 AC3 音频编解码器制作 MKV 视频,以便使用 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 播放器框,但没有播放任何内容,并且开发人员控制台没有显示任何错误。

所以我的问题是,有没有人知道让 AC3 音频在原生 HTML5 播放器中播放的解决方法,或者 VLC 网络插件的正确语法是什么?或者有没有人会推荐一个完全不同的播放器?任何和所有的帮助表示赞赏!

4

5 回答 5

24

HTML5 不支持 .mkv / Matroska 文件,但您可以使用此代码...

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

但这取决于浏览器是否会播放。已知此方法适用于 Chrome。

于 2015-09-11T07:18:57.950 回答
15

您可以使用以下代码。只在 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>

于 2015-12-03T14:35:54.123 回答
6

使用 MKV 的视频扩展。您应该使用视频,而不是来源

例如 :

  <!-- mkv -->
  <video width="320" height="240" controls src="assets/animation.mkv"></video>
<!-- mp4 -->
  <video width="320" height="240" controls>
    <source src="assets/animation.mp4" type="video/mp4" />
  </video>
我的回答你可能看不懂,如果你不明白,点击 这里

于 2020-09-19T13:57:07.480 回答
4

HTML5 和 VLC 网络插件对我来说是不行的,但我能够使用以下设置完成这项工作:

DivX 网络播放器(仅限NPAPI 浏览器)

AC3 音频解码器

这是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 更广泛的视频和音频选项,到目前为止,我对它印象深刻。

于 2014-01-18T04:04:29.633 回答
4
<video controls width=800 autoplay>
    <source src="file path here">
</video>

这将仅使用 Google Chrome 浏览器显示视频 (.mkv)。

于 2018-02-07T01:32:07.863 回答