共计 1747 个字符,预计需要花费 5 分钟才能阅读完成。
10 月 24 日,即构科技后盾架构负责人 & 高级技术专家祝永坚(jack),受邀加入 2020 中国零碎架构师大会,在音视频架构与算法专场进行了主题为《ZEGO 实时音视频服务架构实际》的技术分享。
以下为演讲内容的节选:
作为一家业余的音视频云服务商,即构服务了泛娱乐、在线教育、金融、产业互联网、IoT 等行业的多家头部公司,例如映客、花椒、微博、好将来等。往年上半年受疫情影响,即构所服务的多家教育、泛娱乐客户都呈现了流量暴增的景象。而即构提供的稳固后盾服务,保障了客户线上业务 0 故障经营,这离不开咱们成熟稳固、可用性高、能主动扩容的流媒体服务架构。
上面我从 ZEGO 流媒体服务简介、流媒体服务架构、调度逻辑设计和经营监控四局部进行分享:
一、ZEGO 流媒体服务介绍
以这张图为例,咱们来看 ZEGO 流媒体服务的全貌:
假如图中有三位主播 A,B,C 和观众,主播 A,B,C 要进行连麦互动,他们别离通过浏览器、原生 App 和微信 /QQ 小程序来推流。因为主播应用了不同的终端模式来进行推流,那么底层应用的音视频协定也是不同的,别离对应着 WebRTC,AVERTP(ZEGO 的公有音视频协定),RTMP。
主播之间连麦互动须要相互拉流,为了取得良好的互动成果,须要很低的端到端拉流提早(<400ms)。因而,主播们能够到即构寰球实时网络来进行拉流,反对 Web 终端,和原生 App 拉流,国内的理论环境端到端提早能够做到 150-400ms。
而观众,因为量比拟大,须要思考老本,同时他不须要互动,能够承受较高的提早。因而能够思考从即构寰球实时网络转推一路 RTMP 协定的码流到第三方 CDN,观众再从 CDN 去拉流。
当然,如果观众也要很低的提早,那么也能够从咱们的实时网络拉流。此外,一些原来应用 RTMP 的客户,还能够通过第三方利用通过 OBS 来推流,很轻易的迁徙到即构寰球实时网络,用户就能够实现在寰球区域范畴内进行低提早的音视频互动。
介绍完次要流媒体服务的全流程后,咱们来看流媒体服务蕴含的具体职责:
调度:在用户推拉流前,须要发动调度申请,取得一个资源后才可能发动理论的码流推拉。用户体验的好坏,跟调度策略有很大关系。
理论推拉流:咱们适配了 RTMP,WebRTC,AVERTP 等多种协定的推拉流规范,提供了更优的流控等算法。
转推 CDN:即构寰球实时网络和第三方的 CDN 须要进行合作来满足客户的多样化场景需要。
转码:RTMP 应用的 AAC 音频编码,WebRTC 应用的 Opus 音频编码,这两种格局互通,须要对音频进行转码。
转协定:咱们 RTMP 和 WebRTC 是以网关的模式存在的,两头的网络传输都是以咱们的 AVERTP 协定来进行。
目前咱们反对 H264,H265,VP8 3 种格局的视频编码转码;AAC, Opus,SILK 3 种格局的音频转码;RTMP、WebRTC、AVERTP3 种协定格局的转协定。
混流:当呈现多个主播连麦互动时,观众如果别离去拉主播的流,对带宽老本和用户的设施都有很高的要求。咱们会让服务器混合成一条流,观众只须要拉混合后的流即可。
流治理:推拉流鉴权,禁推治理,咱们提供了业务经营必须的多种流治理性能。
即构实时音视频服务的劣势体现在 4 个方面:
第一,多云商架构设计
咱们设计之初就确定了反对多云商的架构设计。不同云商有着不同的劣势,他的数据中心和网络资源人造的存在着差异性,a 云商在印度南部笼罩品质好,b 云商在印度北部笼罩品质好。那么咱们就都用起来,让 a 云商笼罩印度南部,b 云商笼罩印度北部,从而让整体取得更好的接入品质。
第二,高可用设计保障品质
咱们架构设计上加进了许多高可用的计划,来保障稳固的服务质量,前面会开展。
第三,弱网下抗丢包能力强
咱们自研的音视频引擎,在弱网下的体现更优异,能实现“上 / 上行 70% 丢包下,放弃 10-15 帧视频晦涩通话;上 / 上行 80% 丢包下,放弃音频晦涩通话”。
第四,低提早大规模散发
利用 ZEGO 自研引擎,咱们做了低提早大规模散发的流媒体服务架构设计,能极大的进步后盾并发能力。
(未完待续……)
鉴于分享内容较丰盛,更多 ZEGO 实时音视频服务架构实际中的“流媒体服务架构设计、调度逻辑设计以及经营监控”等内容,能够扫描下方二维码获取演讲材料包,蕴含演讲文字稿、演讲 PPT 以及即构寰球次要国家的端到端提早实测数据。