流媒体平台需要扩展以容纳数百万在不同设备和网络条件下同时观看的观众,这使得高效的自适应码率(ABR)流媒体技术至关重要。在这篇博文中,我们将探讨从客户端 ABR 过渡到服务端 ABR 的技术细节,重点关注实现细节和性能优化。
如您所在的企业也在考虑采购云服务或进行云迁移,
点击链接了解Akamai Linode解决方案,现在申请试用可得高达500美元专属额度
自适应码率流媒体基础
自适应码率流媒体究竟是如何工作的?让我们一步步来看。首先,视频内容需要经过准备,即将其编码为多种码率(例如 500kbps、1Mbps、2Mbps 等),并存储这些不同的版本。

一个清单文件,例如 HLS 使用的 M3U8 或 DASH 使用的 MPD,包含了关于可用不同码率流的信息。

当用户开始播放时,客户端设备下载清单文件以查看可用的码率选项。客户端选择一个初始码率,通常从较低码率开始以实现快速启动。

在视频播放过程中,客户端设备持续监控网络状况和其内部缓冲区水平。如果网络带宽受限,客户端将请求较低码率的视频块以防止重新缓冲。相反,如果带宽改善,客户端会请求较高码率的视频块以提升视频质量。这种码率切换是通过请求更新码率级别的新视频段来实现的。
传统自适应码率流媒体的挑战(客户端ABR)
传统上,ABR 流媒体一直在客户端进行管理,即播放视频的设备决定使用的最佳码率。然而,这种方法带来了一些挑战。首先,客户端设备的处理能力差异很大。一部旧手机可能无法像全新的顶级型号那样平稳地处理所有不断调整视频质量所需的计算。这就是为什么有时你在手机上观看节目时,视频质量会波动。
另一个问题是网络连接的变化有多大,即使在很短的时间内也是如此。用户的设备必须不断适应这些变化,这可能导致非常明显的质量下降或分辨率之间的频繁切换,从而造成相当不愉快的观看体验。特别是如果用户生活在网络不稳定的地区,可能会遇到很多缓冲或质量下降的情况。
还存在延迟问题------如果你的设备意识到连接变化有延迟,它可能无法足够快地调整码率,从而导致卡顿或突然的质量下降。
最后,所有这些持续的调整和潜在的效率低下可能导致使用比必要更多的数据。对于使用有限移动数据计划的用户来说,这可能是一个真正的问题。
服务端 ABR 如何解决这些挑战
为了解决这些问题,服务端 ABR 不是在客户端确定合适的码率选择,而是在服务端进行选择。
服务端自适应码率流媒体的工作方式如下。首先,客户端发送一个 HTTP GET 请求来获取清单文件。该请求包含客户端元数据(例如,设备类型、屏幕分辨率、支持的编解码器)。然后,服务器从请求头中解析客户端元数据并进行一些分析(当前 CDN 负载、与客户端的地理距离、类似客户端的历史性能等)。接着,服务器生成一个根据客户端能力和当前网络条件定制的自定义清单文件,并且只包含被认为适合该客户端的码率。服务器将根据可用带宽(通过 RTT 和吞吐量估算)、内容复杂度(信息帧大小、运动矢量)和客户端缓冲区水平(通过实时反馈报告)来选择最佳码率。接下来,服务器将以所选码率编码的视频段传递给客户端设备,客户端设备随后对其进行解码和播放。最后,服务器持续监控网络条件和观众设备能力。如果在播放期间条件发生变化(例如,发生网络拥塞),服务器可能会动态调整码率,以确保播放流畅,无缓冲或质量下降。
这种服务端方法有很多好处。服务器无需客户端设备自行决定选择正确的码率,而是能更好地全面了解网络状况、视频内容的复杂程度以及你的设备能力。有了所有这些信息,它可以更恰当地决定是调高还是调低码率。这意味着在不同质量级别之间切换更平滑,为观众带来整体上更一致、无缓冲的流媒体体验。
将码率选择过程卸载到服务器也减轻了客户端设备的处理负担。这对于资源受限的设备尤其有益,可以改善其性能和电池寿命。
服务端自适应码率流媒体的另一个好处是,服务器可以持续实时监控网络状况,比客户端算法更准确、更快速地调整码率。因此,如果检测到用户的连接即将变慢,便可在用户遇到任何问题之前主动降低码率。一旦连接速度再次提升,将立即调高质量。甚至可以分析视频内容本身在任何给定时刻的复杂程度。具有大量动作的高动态场景将使用更高的码率以获得更好的质量,而较平静的场景可以在较低的码率下流式传输,而不会看起来更差。
最后,对于流媒体提供商而言,服务端自适应码率流媒体非常具有成本效益。更高效的码率管理意味着全面的带宽成本降低。流媒体提供商可以提供高质量视频而无需承担过高的数据传输费用,同时用户可以享受他们喜欢的内容而无需担心数据超额。
简而言之------更高质量的流、更平滑的播放、更好的设备性能和成本节约,这些都是开始考虑服务端自适应码率流媒体的重要理由。
性能优化
为了最大化服务端 ABR 的优势,值得考虑实施性能优化。首先是边缘计算。通过将 ABR 逻辑部署到边缘服务器,可以显著减少数据需要传输的距离,从而最大限度地减少视频播放期间的延迟。这种与最终用户的接近不仅带来了更流畅的流媒体体验(减少缓冲和延迟时间),而且还确保了更快的码率调整。此外,减轻中央服务器的压力可以提高可扩展性和整体网络效率,使用户能够更轻松地处理更高的流量负载。
另一个重要的性能优化涉及实施有效的缓存策略。通过智能地缓存不同码率的流行视频段,可以显著减少服务器负载并提高流媒体性能。为实现此目标,可以使用概率数据结构,例如布隆过滤器,它能有效跟踪和预测不同片段的受欢迎程度。这使得系统能够更快地存储和提供频繁访问的内容,减少最终用户的延迟,并最大限度地减少从源服务器重复获取数据的需要。此外,这种方法有助于优化带宽使用,从而实现更具可扩展性和效率的流媒体架构。
基准测试和监控流媒体体验
在迁移到服务端自适应码率交付后,需要通过关键性能指标来量化改进,这些指标衡量用户体验和系统效率。有几个关键性能指标非常重要。
第一个是启动时间,衡量从用户播放请求到第一帧渲染完成的时间。较短的启动时间对于无缝体验至关重要,因为长时间的延迟会导致用户不满并增加流失率。另一个重要的 KPI 是重新缓冲比率,其计算方式是将总重新缓冲时间除以总播放时间,然后乘以 100。该比率反映了视频在播放期间用于缓冲的时间百分比,最小化它可以确保观看不中断。码率切换频率,跟踪每分钟质量切换的次数,是另一个有用的指标。过多的码率切换会破坏用户体验,因此平衡性能和稳定性至关重要。平均码率衡量会话期间传递的平均码率,提供了用户所体验的整体视频质量的洞察。较高的码率通常意味着更好的质量,但它们应与可用带宽相匹配以防止缓冲。最后,VMAF 得分是感知质量指标,可确保传递的视频质量与 ABR 算法做出的码率决策相匹配。高 VMAF 分数表明相对于码率而言视觉质量良好,确保了高质量的观看体验。
启动时间、重新缓冲比率、码率切换频率、平均码率和 VMAF 得分都是可以用来微调 ABR 算法和优化用户满意度的 KPI。
结论
服务端自适应码率流媒体解决了传统客户端 ABR 的许多局限性,提供了更高效、更一致的流媒体体验。通过集中决策过程,服务端 ABR 提高了性能,增强了质量控制,并优化了数据使用。
在这篇博文中,我们探讨了客户端 ABR 的挑战以及服务端解决方案的显著优势。如果您是流媒体公司的开发人员,并且想了解更多关于优化自适应码率流媒体解决方案的信息,您可以使用此链接申请可得高达500美元专属额度以了解更多信息。
如您所在的企业也在考虑采购云服务或进行云迁移,
点击链接了解Akamai Linode解决方案,现在申请试用可得高达500美元专属额度