什么是 MPEG-DASH ?
MPEG-DASH 或 DASH(Dynamic Adaptive Streaming over HTTP)是一种具有自适应比特率的流视频格式。它支持通过标准 HTTP Web 服务器流式传输高质量媒体内容。与 Apple HTTP Live Streaming (HLS) 一样,MPEG-DASH 的工作原理是将内容划分为通过 HTTP 传输的一系列较小片段。
这些片段可以包含较长内容的短播放间隔,如电影、体育赛事和其他直播。内容有不同的比特率,交替的片段以不同的比特率编码,以调整快速播放间隔。
当 MPEG-DASH 客户端播放内容时,客户端会使用比特率自适应(ABR)算法下载最高比特率的片段。比特率越高,播放过程中卡顿或重新缓冲的可能性就越低。
MPEG-DASH 客户端 dash.js 提供基于缓冲(BOLA)和混合(动态)比特率适应算法。因此,MPEG-DASH 客户端可以无缝适应不断变化的网络,并以最少的中断和重新缓冲事件提供高质量的播放。
MPEG-DASH 的历史
MPEG-DASH 的发展历程始于 2010 年,当时 Netflix 和 YouTube 等平台建立了一个框架,向消费者普及视频流媒体。最初,流媒体的质量往往很低,容易出现严重卡顿、缓冲、插件缺失或不正确以及图像分辨率低等问题。
MPEG-DASH 试图建立一个新的视频流标准,确保向消费者提供高质量的视频流,而不会出现重大问题。MPEG-DASH 使用自适应比特率流实现了这一目标,将视频分解成小片段并以不同的质量级别对其进行编码。自适应比特率技术可以立即识别用户设备的带宽,并相应地调整流的质量。
2012 年,业界对 MPEG-DASH 进行了标准化,使其成为首个自适应比特率流媒体国际标准。MPEG-DASH 具有开创性意义,因为它使连接到互联网的设备能够接收高质量视频流,而不受带宽限制。这一标准化让流媒体平台对一套普遍采用的功能充满信心,其覆盖范围比专有解决方案更广。
MPEG-DASH 与编解码器无关,因此它支持以任何格式编码的内容。整个媒体行业都受益于这种提高流媒体质量的能力。MPEG-DASH 的首次现场演示是在 2012 年 8 月,当时 VRT 提供了奥运会的观看体验。
MPEG-DASH 影响深远——它改变了视频流媒体行业,并增强了直播、点播、低延迟和 5G 流媒体。Hulu、YouTube 和 Netflix 等主要平台都依赖此标准来提供高质量的流媒体体验,占当今全球互联网流量的一半以上。
MPEG 目前正在开发另一个版本,以进一步改善观看体验,满足视频流市场不断变化的需求,并确保与新兴技术的兼容性。
MPEG-DASH 的工作原理:ABR
例如,大多数观众都会遇到自适应比特率流 (ABR),他们观看的节目会在几秒钟内从模糊图像调整为清晰图像。这种动态流媒体方法允许媒体内容适应观众设备的带宽容量。它可以在低质量和高质量编码之间切换,以提供无缝视频。
Netflix、YouTube 和 Hulu 使用 MPEG-DASH 来确保一致的观看体验。ABR 通常涉及服务器或视频平台,该平台会提取给定的视频源并将其转码为多个版本。不同大小的不同版本的内容允许在各种设备上无缓冲播放并改变连接速度。
ABR 允许观看者使用高级设置播放高比特率、高帧率和高清媒体流。观看者可以在较小的屏幕或不可靠的服务下播放同一视频的低质量版本。
MPEG-DASH 将再现内容作为一系列片段(通常为几秒钟)而不是连续的流来提供。当互联网速度增加或减少时,ABR 会根据比特率和分辨率选项选择自动调整流。
采用 ABR 流式传输的 DASH 规范提供了一致的观看体验,但在下载各个片段时也存在初始延迟。解决此问题的一种方法是减小片段大小并调整延迟。
支持 MPEG-DASH 的播放器
有许多 HTML5 视频播放器可以嵌入并支持在各种浏览器上播放 MPEG-DASH。DASH-IF 推出了免费开源播放器 dash.js。此外,还有其他一些播放器,即:
- Wowza’s integrated player
- THEOPlayer
- Video.js
- Flowplayer
- Clappr
- JWplayer
- Bitmovin
- VLC Media Player
MPEG-DASH 与 HLS 的区别
HTTP Live Streaming(HLS)是一种通过互联网传输实时视频内容的流媒体协议。苹果公司最初推出 HLS 是为了提供从 iPhone 访问实时流媒体的功能。
MPEG-DASH 和 HLS 都通过 HTTP 运行,并使用传输控制协议 (TCP) 作为底层传输协议。它们的工作原理类似,都是将视频压缩成带有相关索引文件的较小片段,然后使用 ABR 流依次发送到播放设备。这两种协议都针对硬件和数据连接速度对流进行了优化,以尽量减少播放问题。
然而,MPEG-DASH 和 HLS 也存在着重要的区别,包括:
支持
- HLS是 Apple 的专有协议,尽管受到广泛支持,但它不是国际标准,但却是 Apple 唯一原生支持的格式。
- MPEG-DASH是一项国际标准,并不专属于任何特定公司。但是,iPhone 和 MacBook 等 Apple 设备不支持在 Safari 中播放 DASH 传送的视频(尽管使用其他浏览器可以轻松解决此问题)。
编码
- HLS仅支持 Apple H.264 和 H.265 编解码器。
- MPEG-DASH支持所有编码标准。
段长度
- HLS默认将内容分成 6 秒的片段,但可以调整为其他长度。
- MPEG-DASH将内容分成 2 到 10 秒的片段,理想长度通常在 2 到 4 秒之间。
受欢迎程度
- HLS 拥有更稳定的市场份额并且依然很受欢迎。
- MPEG-DASH 是一种相对较新的流媒体协议,在某些用例中尚未得到证实。但它与 HLS 一样强大。
如何选择 MPEG-DASH 和 HLS ?
1. 考虑编解码器支持的灵活性
如果您需要一种支持 Apple H.264 和 H.265 以外的各种编解码器的流媒体协议,MPEG-DASH 是更好的选择。它与编解码器无关,可以与各种编码标准配合使用,非常适合各种内容和交付需求。
2. 利用 HLS 实现以 Apple 为中心的生态系统
如果您的受众主要使用 Apple 设备,HLS 是最佳选择。它原生支持所有 Apple 平台,包括 iOS、macOS 和 tvOS,确保无需额外插件或第三方播放器即可无缝播放。
3. 考虑使用 MPEG-DASH 来符合国际标准
对于需要遵守国际标准的项目,MPEG-DASH 是更合适的选择。作为一项开放标准,它在 Apple 生态系统之外被广泛采用,并为全球流媒体服务提供了可靠的解决方案。
4. 使用 MPEG-DASH 实现低延迟流式传输
MPEG-DASH 允许您自定义片段长度,最佳范围在 2 到 4 秒之间。这可以减少延迟,使其适用于实时交互至关重要的直播场景。
5. 实施 HLS 以获得广泛的浏览器支持
HLS 在各种 Web 浏览器上都具有更广泛的支持,尤其是考虑到 Apple 的主导市场份额。这使得 HLS 成为确保不同用户环境之间兼容性的更安全选择。
6. 在目标设备上测试性能
在采用 MPEG-DASH 或 HLS 之前,请在受众使用的设备和浏览器上测试您的内容。这将帮助您识别任何兼容性问题并确保最佳用户体验。
7. 规划未来的可扩展性
MPEG-DASH 正在获得越来越多的关注,并越来越广泛地用于可扩展的视频流解决方案。如果您的项目预计会增长,请考虑使用 MPEG-DASH,因为它具有灵活性、编解码器支持和国际标准化,可确保长期可行性。
最后,所有希望有高质量实时音视频服务的场景,都可以选择ZEGO RTC服务,ZEGO RTC 可根据自己以及对端当前网络环境状态来动态调整视频推流的码率、帧率、分辨率,以及音频码率,自动适应当前网络环境及网络波动,从而保证视频能流畅发布。
原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-baike/1906/