HTML5的视频标签能否播放.mpd格式的清单文件?

14

我有一个Movie_Manifest.mpd文件,由5个.webm视频流(包括不同的尺寸和比特率)和1个音频文件组成。我的问题是:它能通过“简单”的HTML5视频标签播放吗?

我已经尝试过这个方法,但它没有成功:

<video controls>
  <source src = "Movie_Manifest.mpd"/>
</video>

它能工作,但选择了最低质量的视频流,输出延迟很大。我希望它具有自适应比特流。你可能会想,“你认为你的带宽只是这么慢吗?”是的,我的带宽很慢,但不是那么慢。而且,当我单独运行那个低质量的webm文件时,它运行得很平滑。

因此,重申一下:

1)我可以使用“简单”的HTML5视频标签进行自适应比特流吗?

或者

2)我必须使用开源媒体播放器(视频标签将通过JavaScript访问该媒体播放器)?

谢谢,祝您流媒体愉快。


HTML5用于dash / .mpd https://github.com/Dash-Industry-Forum/dash.js 演示在这里:http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html - Gino
1个回答

13

HTML5视频标签能播放.mpd清单文件吗?

不行,浏览器必须直接支持DASH,但目前没有浏览器支持。

我可以使用“简单”的HTML5视频标签进行自适应比特流吗?

不行,浏览器本身不支持用于自适应比特率的协议。虽然有一些HLS支持,但并不普遍。

我必须使用开源媒体播放器(视频标签通过javascript访问)吗?

无论播放器代码是否开源都不重要。

基本上,您需要播放DASH或其他基于HTTP分段的媒体协议,就需要一些利用Media Source Extensions的JavaScript代码。https://www.w3.org/TR/media-source/

Media Source Extensions(MSE)是一个相对较新的标准,您可以编写JavaScript代码将媒体块传递给浏览器。您不需要在脚本中解码此媒体,只需传递即可。这允许在JavaScript上使用任何您已经可以使用的自定义分发协议(HTTP(S),WebSocket和WebRTC数据通道)。

要在浏览器中播放DASH,通常的方法是使用DASH.js。https://github.com/Dash-Industry-Forum/dash.js/wiki 它是DASH的参考播放器,经过了极其充分的测试。
如果您想要的话,可以开发自己的播放器。与MSE进行接口并不太困难。如果您有某些特殊原因想要使用自己的分发方法,这是可行的。

JavaScript是开源的:“基本上,你需要的就是一些JavaScript”。 - DylanYoung
@DylanYoung 不要将软件的许可证与您解码它的能力混淆。 - Brad
开源不是一种许可证。开源意味着源代码是可用的。你可能在想自由软件或者版权保护软件。开放的意思就像它听起来的那样:开放,可用。自由意味着“你可以随心所欲地使用它”,就像自由一样。 - DylanYoung
@DylanYoung 当然,显而易见,但如果你读了问题,你就能理解提问者的意思。 - Brad
是的,OP 的意思是所有的 JavaScript 都是开源的,因为 JavaScript 是源代码。这是一个非常重要的区别。所有软件都应该是开源的(这是安全性、可靠性和审计性的问题);而 Copyleft 则是一种道德选择。 - DylanYoung
如果您的意思是他们可以使用闭源插件来播放视频,那当然是正确的,但这是一个很差的建议。 - DylanYoung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接