什么是自适应码率流媒体?
ABR 首先会为同一视频生成多个不同版本,即 renditions(码率版本)。每个版本通常对应不同的码率和分辨率组合。
例如:
- 1080p,5 Mbps
- 720p,3 Mbps
- 480p,1.5 Mbps
- 360p,800 Kbps
这些不同版本共同构成一个码率阶梯(bitrate ladder)。
在播放过程中,播放器会在这些画质档位之间切换。如果可用带宽下降,播放器可以请求码率更低的版本,以降低再次缓冲的风险。如果网络状况改善,则可以重新切换到画质更高的版本。
具体如何设计码率阶梯,应根据内容类型、编解码器、受众、设备和网络状况来决定,而不应采用一套固定的通用参数。
自适应码率流媒体如何工作?
典型的 ABR 工作流程如下:
源视频 → 转码 → 多个码率版本 → 分片与封装 → 清单文件 → CDN → 视频播放器
1. 创建多个码率版本
首先,对源视频进行编码或转码,生成多个具有不同码率、分辨率或其他编码设置的版本。
通过视频转码,可以从同一个源视频生成这些不同的输出版本。例如,流媒体平台可以准备 1080p、720p、480p 和 360p 等多个版本。
2. 构建码率阶梯
这些版本共同组成播放器可选择的码率阶梯。
合理的码率阶梯应为播放器提供有意义的画质选择,同时避免生成不必要的版本。如果相邻档位之间差距过大,切换时可能出现明显的画质变化;如果设置过多相近的版本,则会增加处理和存储需求,却未必能够改善播放体验。
3. 对视频进行分片和封装
每个码率版本都会被切分成较短的媒体分片。不同版本中相对应的分片应保持对齐,以便播放器能够在不同画质档位之间顺畅切换。
随后,内容会按照 HLS 或 MPEG-DASH 等自适应流媒体技术进行封装。
4. 创建清单文件
播放器需要知道当前有哪些码率版本和媒体分片可供选择。
在 HLS 中,这些信息通过 .m3u8 播放列表提供。MPEG-DASH 则使用 .mpd 格式的媒体呈现描述(Media Presentation Description)。
5. 由播放器动态适配
播放器会持续监测播放状况,并从合适的码率版本中选择相应的媒体分片。
不同的 ABR 算法对各种因素的权重有所不同,例如预估吞吐量、缓冲区状态、近期下载速度、设备性能以及播放稳定性等。关键在于,播放器的选择可以在整个播放过程中持续动态调整。
什么是码率阶梯?
码率阶梯是 ABR 播放器可以选择的一组画质档位。
较高的档位通常能够提供更好的视觉质量,但需要更高的带宽。较低的档位需要的带宽较少,因此在网络连接状况恶化时,可以为播放器提供更稳妥的选择。
因此,设计码率阶梯时,需要在画质、带宽消耗、存储空间、编码成本、设备要求和播放可靠性之间取得平衡。
内容类型同样十分重要。在相同分辨率下,与画面变化较少的人物访谈视频相比,快速运动的体育赛事通常需要更高的码率才能维持相近的画质。视频编解码器的选择也会影响每个码率版本的压缩效率。
自适应码率流媒体中的 HLS 与 MPEG-DASH 对比
HLS,即 HTTP Live Streaming 和 MPEG-DASH 是两种常见的自适应流媒体技术。
| 特性 | HLS | MPEG-DASH |
|---|---|---|
| 清单文件 | .m3u8 |
.mpd |
| 自适应码率 | 支持 | 支持 |
| 直播 | 支持 | 支持 |
| VoD | 支持 | 支持 |
| 来源 | Apple | MPEG 标准 |
两者都会将媒体内容切分成多个分片,并允许播放器从不同画质版本中进行选择。
具体选择哪一种技术,需要综合考虑设备兼容性、播放器技术、编解码器、DRM、延迟要求以及整体流媒体架构。
在兼容的工作流程中,CMAF 还可以让 HLS 和 DASH 共用相同的分片式 MP4 媒体片段,从而减少内容重复。
自适应码率流媒体与渐进式下载对比
使用渐进式下载时,只要单个媒体文件已经下载了足够的数据,就可以开始播放,无需等待整个文件全部下载完成。
ABR 采用不同的方式。它会提供多个经过分片处理的码率版本,并允许播放器在播放过程中动态切换画质。
因此,对于使用不同设备、处于不同网络环境中的广大用户而言,ABR 通常更加合适。
自适应码率流媒体的优势
-
减少再次缓冲。 当网络吞吐量下降时,播放器可以请求对网络要求更低的码率版本,而不是继续下载当前网络连接难以持续承载的视频流。
-
提供更好的视频画质。 网络连接较快的用户可以获得画质更高的版本,而网络受限的用户仍可通过较低码率继续观看。
-
提升起播稳定性。 播放器可以在开始播放时采用较为保守的码率,并在评估网络连接质量后逐步切换到更高的档位。
-
提高带宽利用效率。 用户并非始终需要最高码率的视频版本,尤其是在较小的屏幕或带宽受限的网络环境下。
ABR 可以减少缓冲,但无法彻底消除缓冲。CDN 性能、最后一公里网络、播放器行为、编码方式以及设备性能限制等因素,都可能影响实际播放体验。
ABR 面临哪些挑战?
ABR 会增加流媒体工作流程的复杂度。
多个码率版本意味着需要额外的转码和存储资源。设计不合理的码率阶梯可能造成带宽浪费,或导致不同画质档位之间差距过大。媒体分片和关键帧是否对齐,会影响画质切换能否顺畅进行,而过于激进的播放器自适应策略则可能导致画质频繁变化,影响观看体验。
直播还会带来另一个限制因素,即延迟。编码、分片、封装、传输以及播放器缓冲等各个环节都必须足够快速,才能让播放画面尽可能接近直播现场的实时进度。
直播与 VoD 中的自适应码率流媒体
ABR 既适用于直播,也适用于视频点播(VoD),但两者的工作流程有所不同。
对于 VoD,完整的源视频可以提前获取。因此,可以在用户请求播放之前完成各个码率版本的转码、封装和优化。
而对于直播视频,这些步骤需要在直播进行过程中持续实时执行。因此,处理速度和延迟的重要性更高。
专业的直播 CDN工作流程需要实时兼顾画质、可扩展性、可靠性和延迟。
CDN 在 ABR 中发挥什么作用?
ABR 决定播放器请求哪一个码率版本,而 CDN 则有助于决定相应的清单文件和视频分片能够以多高的效率传输给用户。
通过在更靠近用户的位置缓存和提供内容,CDN 可以缩短传输路径、降低源站负载,并帮助流媒体平台应对地域分布广泛的用户群体以及突发流量。
这两者之间的配合非常重要,因为即使码率阶梯设计得再合理,也无法弥补媒体分片长期传输缓慢所造成的影响。
CDNetworks 如何支持自适应码率流媒体
CDNetworks 同时支持直播和视频点播场景下的自适应码率流媒体。
对于直播视频,我们的 Media Acceleration Live Broadcast 将实时转码与 CDNetworks 全球分布式 CDN 相结合。直播流可以被转码为不同的码率,以适配不同设备和观看环境。同时,通过支持 HLS 和 DASH 等协议,可在广泛的播放环境中实现自适应流媒体传输。
对于 VoD,CDNtworks Media Acceleration VoD 可以与 Media Processing 结合使用,为 HLS 和 MPEG-DASH ABR 工作流程生成多种视频码率、音频码率和分辨率。我们的媒体处理能力还包括转码和封装,可帮助企业在通过 CDN 分发内容之前提前准备多个码率版本。
无论是直播还是点播内容,CDNetworks 都将媒体处理与全球内容分发能力相结合,帮助流媒体服务根据不断变化的网络状况动态调整视频画质,并在不同设备和地区提供可靠的播放体验。
自适应码率流媒体常见问题
自适应码率流媒体可以减少缓冲吗?
可以。当可用网络吞吐量下降时,播放器可以切换到码率更低的版本,从而减少再次缓冲。不过,如果出现严重的网络拥塞或其他传输问题,播放仍有可能中断。
HLS 支持自适应码率流媒体吗?
支持。HLS 播放列表可以描述多个不同的变体流,使兼容的播放器能够在播放过程中根据实际情况切换不同的画质档位。
MPEG-DASH 支持自适应码率流媒体吗?
支持。DASH 使用 MPD 清单文件描述可用的视频表示版本和媒体分片,使播放器能够选择合适的画质档位。
ABR 是否同时用于直播和 VoD?
是的。VoD 内容可以在播放之前提前完成处理,而直播 ABR 则需要在直播过程中持续进行媒体处理和分片生成。
码率和带宽有什么区别?
码率描述媒体流在单位时间内需要传输多少数据。带宽描述网络可用于传输数据的容量。ABR 的工作原理,就是让播放器请求的视频流码率尽可能与不断变化的可用网络容量相匹配。
