似乎这两种协议都做同样的事情,但是一个比另一个有优势吗?
4 回答
你应该问问自己什么对你很重要(编码、加密方法、标准化等)
Jason Schneid 写了一个很好的比较: http: //www.internetvideoarchive.com/IVA/news/2012/09/13/progressive-download-vs.-adaptive-bitrate-how-to-choose-the-format-right-为你
这是Aquary的快速比较。内联回复太长了...
Web 标准: 在两种自适应流媒体协议中,MPEG-DASH 最有可能成为统一标准。
支持: HLS 较老且 Apple 大力支持它,因此具有更多事实上的支持,尤其是在较旧的浏览器/操作系统/设备中。您可以使用 jwplayer 在 Windows 机器上支持 HLS。
性能: 不确定,但 mpeg-dash 播放器 bitdash 的制造商声称:“流媒体性能比 Microsoft Smooth Streaming 高 53%,比 Apple HLS 高 101%”。
结论:现在是 HLS,明天是 MPEG-DASH(如果你可以管理的话,现在就可以了)。以下文章很好地评估了当今流技术的分裂状态:http: //blogs.imediaconnection.com/blog/2012/04/27/mpeg-dash-its-time-for-apple-to-put-关闭或关闭/
MPEG-DASH 是由 ISO/IEC MPEG 批准的独立于供应商的国际标准。以前的自适应流媒体技术(例如 Apple HLS)已由供应商发布,但对公司独立的流媒体服务器和播放客户端的支持有限。由于不希望出现这种依赖于供应商的情况,因此标准化机构开始了协调过程,从而获得了 MPEG-DASH 的批准。
近年来,MPEG-DASH 已被集成到新的标准化工作中,例如 HTML5 媒体源扩展 (MSE),通过 HTML5 视频和音频标签实现 DASH 播放(与 Apple HLS 不同,Apple HLS 依赖于外部平台上的 FLASH Apple 生态系统),以及 HTML5 加密媒体扩展 (EME),可在 Web 浏览器中启用受 DRM 保护的播放。此外,使用 MPEG-DASH 的 DRM 保护通过 MPEG-CENC(通用加密)在不同系统之间进行协调,并且通过 HbbTV 1.5 和 2.0 中的集成实现了不同 SmartTV 平台上的 MPEG-DASH 播放。
虽然 MPEG-DASH 是编解码器并且与容器无关,但 Apple HLS 例如绑定到 MP2TS 容器。还有很多不同之处。
从应用程序设计人员的角度来看,尝试为 youtube 或 netflix 等视频流媒体服务选择一种技术时,我会说它们都有自己的后备方案,您应该全部使用它们。
今天的每一个常规视频流服务都会有两个问题:客户端支持(你应该想要一切,从智能手机到电视、游戏机、苹果电视和谷歌 chromecast)和服务器基础设施。
HLS 原生支持 Apple 的一切,运行非常流畅,并通过使用许多开源 js 视频播放器提供了出色的个性化。Android 有问题,但即使在 2.3 设备上,我也让 flash player 在混合应用程序上运行 HLS。性能很烂。但是您可以使用 ffmpeg 即时转码!直播也是可能的,而且非常简单。
MPEG-DASH 在较新的设备上得到了很好的支持,5 年内这个话题可能会结束。使用 ngnix 和 rtmp 扩展,你可以在半小时内构建一个视频流服务器。
我首先选择 HLS 是因为它很简单。现在,我正在同时为不同的客户端创建所有 HLS、WebM(低定义)和 MPEG-DASH,以允许它们都本地运行。
这样我就可以依赖只构建混合应用程序并在每个客户端上使用我所有的 AngularJS 代码。否则,较小的项目采用视频流服务是不切实际的。然后你就有了像 Wowza 这样的服务。