format - HLS(Http Live Streaming)与 MPEG DASH

标签 format streaming http-live-streaming mpeg-dash

我正在尝试找出 HLS 和 DASH 这两种广泛使用的流媒体格式之间的区别。

通过研究,我查看了演示自适应流功能比较的图像。

我不确定是否支持 HTML5。
MPEG-DASH 是唯一支持 HTML5 的流媒体格式吗
或者下图是一种旧功能比较?

Image for adaptive streaming feature comparison

最佳答案

最重要的区别可能是 MPEG-DASH 是一个独立于供应商的国际标准,由 ISO/IEC MPEG 批准。以前的自适应流媒体技术(例如 Apple HLS)已由供应商发布,对独立于公司的流媒体服务器和播放客户端的支持有限。

MPEG-DASH 允许使用 HTML5 native 播放,因为主要使用 fMP4 容器,但最近 Apple 在 WWDC16 上也增加了对 fMP4 的支持。然而,HLS 主要用于 MPEG2-TS 并受其支持,而 MPEG2-TS 无法使用 HTML5 进行原生播放。有一些解决方案可以将 JavaScript 中的 MPEG2-TS 片段转换为 fMP4,因此可以进行本地播放。这些玩家包括hls.js ,它是开源的。

如果您想使用 DRM,DASH 具有更多优势,因为 MPEG-CENC 与该标准完美集成。其他内容包括通过 SegmentTemplate 的更紧凑的 list (在 HLS 中,每个段都需要描述一个 URL),它允许指定段 URL 生成机制。 DASH list 的较小尺寸会影响启动延迟。 DASH 指定的其他内容是如何使用 BaseURL 进行故障转移,允许您在多个不同的位置托管您的内容等等。

不过,HLS的应用也比较广泛,没有那么复杂,也比较容易实现。因此,如果您不需要 DRM、非常高的分辨率和比特率(在 JavaScript 中传输时可能会对性能产生影响)或其他一些特定的 DASH 功能,使用 HLS 可能更好。

对于 DASH 和 HLS,有多种服务(例如 zencoder )可以生成内容以及开源解决方案,例如 ffmpeg。

关于format - HLS(Http Live Streaming)与 MPEG DASH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543683/

相关文章:

c++ - std::string 流以二进制格式解析数字

mysql格式化mysql结果满足json handsontable

html - 在Chrome和Firefox中播放实时流音频时出现问题

java - 从 Android 设备到亚马逊网络服务器 S3 的 HTTP 直播

java - 如何在 JScrollPane 中格式化此输出?

Java 字符串格式数组

java - 如何实现JMF

java - 无法渲染 red5 录制的媒体流

ios - AVPlayer 在加密的 HLS 素材上崩溃

http - HLS 和 MPEG-DASH 是否存在于 HTTP 消息正文中?