通过 HTTP (MPEG-DASH) 进行流式传输有啥意义?
Posted
技术标签:
【中文标题】通过 HTTP (MPEG-DASH) 进行流式传输有啥意义?【英文标题】:What's the point of streaming over HTTP (MPEG-DASH)?通过 HTTP (MPEG-DASH) 进行流式传输有什么意义? 【发布时间】:2015-09-03 16:48:30 【问题描述】:我正在阅读有关基于 HTTP 的流技术,例如 MPEG-DASH,但并没有真正明白这一点。据我了解,此类协议将媒体文件中的二进制数据分成块,将每个块包装在某种元数据中,然后将它们填充到 HTTP 消息中并发送给客户端。
但是在 HTTP 之上实现它而不是仅仅实现/创建一个单独的应用层协议有什么意义呢?这不是增加了更多的开销并且不必要地使编码/解码过程复杂化了吗?
【问题讨论】:
【参考方案1】:通过 HTTP 传输内容并不是为了提高效率,因为它显然效率低下。 HTTP 本身(至少在 HTTP 2.0 之前)效率极低。
使用 HTTP 的主要原因是简单、interoperability 和可重用性。它易于理解和实现,它已经存在于服务器和客户端中;此外,它在网络中广为人知,因此可以轻松通过防火墙。
【讨论】:
但是浏览器仍然需要添加对标准的支持,例如 MPEG-DASH 确实能够解析元数据并播放媒体流。为什么他们更容易实现 MPEG-DASH 而不是全部实现另一个协议? - 不是差不多吗? DASH 是一个被广泛采用的 ISO 标准。大多数行业大公司和决策者(微软、谷歌等)都参与了 DASH 行业论坛,因此他们尽可能地推动它向前发展。例如。 Youtube 现在使用 DASH 和 html5 作为默认播放方式——这对一个行业来说是一个巨大的标志。 @Adam 是的,浏览器和服务器都需要添加支持,但是在现有基础架构上添加对两者的支持比从头开始编写新协议更容易。因此,如果标准易于实施,不同的浏览器和服务器开发人员就更容易参与其中。 @Adam 另外,由于所有网络设备都熟悉 HTTP,并且该协议通常可以轻松通过防火墙,因此在网络方面也更容易。 @Malt 它还可以通过 CDN 进行缓存/发送以上是关于通过 HTTP (MPEG-DASH) 进行流式传输有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章