随着互联网视频应用的高速发展,直播业务逐渐成为数字化社会服务的重要组成部分,如大型赛事、电商带货等越来越多的内容转向“直播+”模式,此类热点视频往往伴随着百万、千万级的实时并发。因此,高可靠既是保障用户体验最基本的要求,也是衡量业务性能最重要的标准之一。
如果您计划使用阿里云的视频直播产品进行一场在线直播,并且此次直播活动对您非常关键,想最大程度避免直播中出现任何质量问题,本文将为您介绍较为通用的提升直播可靠性的方案,从直播源、直播服务到播放器实现多层面优化,详细展开拉流直播、推流直播实现逻辑、热备模式配置流程、业务降级与主备域名切换思路等,助力个人开发者与企业打造高可靠、高稳定的视频直播场景体验,提升产品竞争力。
前提条件
开通阿里云视频直播服务,并完成相关域名的添加,相关文档请参考快速入门。
说明:
快速入门展示了通过推流到视频直播服务,如果您已经拥有直播源站,并且希望视频直播服务直接从您现有的直播源站拉流进行播放,可以跳过推流域名的添加以及推流和播流域名的绑定流程。
基本方法
一场直播通常由直播源,直播分发服务和播放器组成,提升直播的可靠性也同时需要在下面三个模块和环节分别入手。
直播源
直播源的可靠性在直播场景下尤为重要,一旦某个设备因故中断要能做到及时切换到备用服务上。通常情况下,可以通过以下两种方式在阿里云视频直播产品开展业务:
- 拉流直播,阿里云视频直播产品主动去源站拉取直播流进行分发;
- 推流直播,通过推流工具将直播流推送到阿里云直播平台进行直播流分发;
拉流直播
对于拉流直播场景的可靠性提升,建议从两方面进行准备:
▶直播源站部署多机房,至少应该多设备;
不同的机房,主要避免源站在同一机房时,由于物理机房发生意外,例如自然灾害,或者人为问题导致整个机房不可用。如果从成本或技术方案原因无法部署在不同机房的,至少也需要有备用设备,当主源站异常时能及时切换到备用源站。
▶直播源站出口具备多运营商的线路;
源站出口具备多运营商的线路,主要针对在同一物理机房或者主备设备在同一区域的情形下,规避单一运营商出口线路不稳定导致的直播中断或异常。
默认情况下,当一个拉流直播配置多个源站时就具备了基本的切换能力,当主源异常时,服务会自动切换到备源拉流。
推流直播
对于推流直播,由于内容采集具备唯一性,设备和地理位置很少区分多区域,提升可靠性建议从以下方面入手:
▶采集、处理和推流设备需要考虑备份,至少也应有两份;
备用设备主要用于防止单设备故障,导致直播流中断,对于推流设备可以考虑同时推两路到视频直播服务,也可以选择只推一路,正常情况下建议推流同时推两路上来,以便故障时能更快的切换,甚至实现无感切换。
▶推流端的网络环境存在多线路;
对于推流端的网络环境,建议准备两条线路以上,可以是不同的运营商线路,公网线路或者专线线路。当前线路故障、运营商线路异常或者CDN节点异常时,能通过切换线路来快速恢复,多线路也同样适用冷备和热备两种模式。
- 冷备模式,同一时间只推一路流到视频直播,当主设备故障时,依赖人工进行切换通过备用设备推流,通常这种情况只适用于一般场合,观众对直播流中断具备一定的接受能力。冷备模式下主备服务器可以配置同一个推流地址来推流。
- 热备模式,主备两个设备同时推流到视频直播平台,通过视频直播服务进行自动的主备切换,详细说明参考下面直播服务部分。
直播服务
阿里云视频直播服务在全球有2800+直播节点,中国内地(大陆)拥有2300+直播节点,覆盖31个省级区域;海外及港澳台拥有500+直播节点,覆盖70多个国家和地区。节点分布覆盖全球主流国家,能就近为客户提供直播推流和观看的能力。除了在资源层面的保障,结合直播源的多源热切的方式视频直播的可靠性还可以得到进一步提升。
下面重点结合推流直播场景对热备模式进行说明:
1、准备好两个推流设备,保障均可输出正常的RTMP直播流。
2、在视频直播控制台添加并对推流和播流域名进行绑定,详细步骤参考文档。
参考文档:
推流域名:push.example.com
播流域名:pull.example.com
控制台对应的推流域名信息如下,图中推流地址的 AppName 和 StreamName 均可以替换为您业务实际的名称。
播流域名信息如下,阿里云视频直播默认支持以下四种播放格式,也就是在推一路流的情况下,阿里云能够同时使用下面四种格式播放,其中延迟 artc < flv|rtmp < hls。
假设按如下信息规划推流地址和播流地址:
推流AppName:live
播流AppName:live
播流StreamName:wanhui
则主备推流地址可以是:
推流地址(主):rtmp://push.example.com/live/wanhui_m
推流地址(备):rtmp://push.example.com/live/wanhui_b
播流地址:rtmp://pull.example.com/live/wanhui
说明:
此处如果主备推流地址中的AppName一致,则流名称需要有所区别,示例中分别加了_m, _b,以区分主备流。
3、联系阿里云售后技术人员开启主备热切模式(主备合流)。
主要信息是上面的主备推流地址、播流地址,以及直播时间段。配置完成后,默认情况下,当系统检测到当前源流中断6秒后则自动切换到备源,如果您对切换时间有具体要求,同样可以提出,但不建议设置大于3秒,防止网络抖动导致频繁切换。
4、基于步骤2中规划的推流地址,分别在推流地址中配置对应的推流地址,以OBS为例。
播放器
以上两个环境,重点是对直播源头和直播分发服务的一些优化建议,但除了以上方式外,还可以进一步从播放器层面入手优化提升直播可靠性,主要有以下两种方式:
业务降级
业务降级,主要从播放协议层面入手,上面提到阿里云视频直播默认支持四种播放协议:hls,flv,rtmp以及artc。四种播放协议的延迟存在差异,artc在1s左右,flv或rtmp的延迟通常在4秒左右,hls的延迟在10秒,如果默认使用rtmp来播放,则可以考虑hls作为降级方案。
当播放器在播放rtmp的直播流遇到频繁卡顿,或者无法播放的情形时,可以切换到hls的播放地址尝试,由于hls的播放延迟相对rtmp要高,所以采用切换通常不会导致观众错过直播内容。
主备域名
或许您注意到了,在创建域名的时候,需要先选择直播中心,每个直播中心在物理设备和资源上都相互隔离,您可以根据自己播放主要面向的用户群体来选择直播中心,例如全国区域内,可以选择上海直播中心。考虑到以上所有的优化建议都是针对单个直播中心的,但是极端情况下直播中心也可能因为一些不可抗力的因素导致直播无法顺利进行下去,所以在直播可靠性要求极高的情况下,建议参考主域名再新建一套备用域名(选择其他直播中心),这样当某个直播中心业务不可用时,您可以迅速切换至备用直播中心的域名,以确保直播活动顺利进行。
整体架构可能如图所示:
图内所示双中心可以同时推流,当主域名业务播放异常时,端侧能够主动切换至备域名来播放。
更多边缘云产品资讯欢迎访问【阿里云边缘云】或扫码关注【阿里云Edge Plus】
边缘云 开启分布式云网融合新时代