谁能解释一下MSE DASH和HLS之间的关系?

时间:2016-11-29 06:58:33

标签: hls twitch mpeg-dash media-source

我是媒体流媒体新手,刚开始学习自适应流媒体。 我的问题很少,请澄清 -

  1. MSE是否仅支持DASH流媒体,我的意思是如果任何使用DASH的网站和我的浏览器都支持使用DASH的MSE,它会播放。但是,如果一个网站使用HLS,那么我的浏览器不会播放视频内容,尽管它有MSE。 是因为MSE不支持HLS,或者我的浏览器MSE没有HLS的实现?

  2. 如果我检查播放视频流的网页,我检查了很多网站使用带有“src”属性的视频标签作为blob。 blob意味着它正在使用MSE。 我们可以在DASH(我在Youtube中检查过)和HLS(在dailymotion或twitch.tv中)的“src”属性中使用blob吗?

  3. 我正在阅读twitch.tv上的一些文章,twitch.tv只支持HLS与html5播放器或闪存?如果假设浏览器不通过html5播放器支持flash和HLS,那么就无法在浏览器上播放twitch.tv内容了吗?

  4. 由于

2 个答案:

答案 0 :(得分:1)

你提问时你的问题确实没有意义,所以我无法回答1,2,3。但我可以澄清你的一些困惑。 HLS和DASH是一系列技术,而不是单一竞争技术。大多数HTTPS流式传输协议由二进制视频格式和基于文本的清单格式组成。 DASH使用过于复杂的XML清单格式和分散的MP4视频格式。 HLS使用m3u8清单,带有用于视频格式的分段传输流。从IOS 10开始,HLS也支持分段MP4。 MSE可以播放支离破碎的MP4。但是浏览器不会阅读清单。因此,必须使用播放器应用程序来下载和解析清单,下载视频片段,然后将它们提供给浏览器进行播放。 Twitch将HLS与传输流一起使用,但在浏览器中运行自定义软件以将其转换为MP4片段。 (或闪存时的flv流)。当你看到带有blob的src时,这是一个普通的(不是碎片的)MP4,并且完全不同。 Safari是一个例外,它可以使用m3u8清单作为源来播放HLS。

答案 1 :(得分:0)

MediaSource Extensions(MSE)支持您在JavaScript中解组并发送到浏览器的本机编解码器的任何内容。浏览器本身不支持DASH。有些浏览器原生支持HLS,但大多数浏览器都不支持。可以在支持MSE的浏览器中使用DASH和HLS,并使用正确的JavaScript库来处理每个。

你看到的blob可能是一个普通的blob(一个不可变的二进制块),但很可能它来自MSE。

我无法谈论Twitch在内部所做的事情。