html 如何在浏览器中播放MKV视频?

wmomyfyw  于 2023-03-11  发布在  其他
关注(0)|答案(6)|浏览(817)

我试图用MPEG4视频编解码器和AC 3音频编解码器制作一个MKV视频,可以使用Mozilla或Chrome在线播放。我尝试了多种方法,包括原生HTML5,它可以播放视频,但没有音频,从我所读到的AC 3是一个专有编解码器,所以它不包括在支持的编解码器中。

<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页面here要求添加以下内容:

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

但是代码库似乎已经不存在了,在上面的代码中添加classid对文件的播放没有任何影响。这两种方法都会导致VLC播放器框被创建,但不会播放任何内容,开发者控制台也不会显示任何错误。
所以我的问题是,有没有人知道一个变通方案,让AC 3音频播放在本机HTML5播放器或什么是正确的语法为VLC网络插件?或者有没有人有一个不同的播放器完全他们会推荐?任何和所有的帮助感谢!

5t7ly7z5

5t7ly7z51#

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

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

但至于会不会玩,这取决于浏览器,这种方法已知可以与Chrome一起使用。

gk7wooem

gk7wooem2#

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

iovurdzv3#

使用MKV视频扩展。您应该使用video,而不是source
例如:

<!-- 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>

您可能无法理解我的答案,因此如果您不理解,请单击this

zpf6vheq

zpf6vheq4#

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

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

vxf3dgd4

vxf3dgd45#

HTML5和VLC网络插件是一个没有去我,但我能够得到这个工作使用以下设置:
DivX Web Player(NPAPI浏览器only
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更广泛的视频和音频选项,到目前为止,我对它印象深刻。

at0kjp5o

at0kjp5o6#

https://github.com/ilian/mkv-web上有一个JavaScript项目
现代Web浏览器仅支持基于Matroska的WebM容器格式,但仅限于免版税编解码器。即使MKV文件包含由浏览器能够解码的编解码器编码的媒体,大多数浏览器也无法播放此类容器中的媒体。此项目将基础媒体流复制到大多数浏览器支持的容器中(例如MP4,webm),而无需第三方扩展或程序。这是通过将带有ffmpeg的媒体片段重新复用编译为webassembly来实现的(感谢FFMPEG.WASM项目)使用网络工作者。重新混合的块从WebWorker发送到主线程,并使用Media Source Extensions附加到HTML5视频元素。

相关问题