技术编程,网易|网易云信流媒体服务端架构设计与实现
实时音视频通话作为高效便捷的沟通手段在许多场景下得到应用 。随着5G商用元年的真正到来 , 实时音视频通话将会得到更加蓬勃的发展 。本次LiveVideoStackCon 2020线上峰会我们邀请到了网易云信资深音视频服务端开发工程师鲁林俊 , 他将结合网易云信流媒体服务搭建的实战经验 , 进行一些深入的分享 。
文 / 鲁林俊
整理 / LiveVideoStack
大家好 , 我叫鲁林俊 , 很高兴参加LiveVideoStackCon 2020线上峰会 , 本次我分享的主题是网易云信流媒体服务端架构设计与实现 。
文章图片
文章图片
本次内容主要分为三个部分:一是实时音视频为基础的流媒体服务端设计;二是录制服务方案设计;三是视频会议传输质量控制 。
实时音视频为基础的流媒体服务端设计
1.1 分发架构
在设计以实时音视频为基础的流媒体服务器之前需要解决的一个问题是:转发方案的选取 。讨论比较多的方案有三种:
文章图片
文章图片
一是Mesh方案 , 即通话各端两两进行媒体通道的建立 , 并交换数据 , 实现媒体通话 。从服务器角度看 , 这种方案比较简单 , 服务器只要实现一些信令和打洞相关的能力等就可以实现通话 , 但这种方案的缺陷是通话能否成功建立依赖于打洞的成功率 。
文章图片
文章图片
二是SFU弹性转发方案 , 下行转发的单位是每个用户的单个流 。
文章图片
文章图片
三是MCU方案 , 媒体服务器会进行媒体处理 , 将混合好的音频和视频进行重新编码并转发给下行用户 。
文章图片
文章图片
网易云信搭建音视频服务器时选取的是一个混合转发方案 , 它是基于SFU为主的媒体转发方案 , 辅助MCU进行特定场景转发 。特定场景比如用户为观众端 , 可以以一条MCU的流转播给观众端 。
这种方案的优势在于:一是基于SFU的设计 , 服务器逻辑轻、性能好 。二是SFU弹性转发设计 , 可以配合发布订阅的逻辑 , 做到可选的下行转发 。三是可以配合MCU , 做到下行宽带的节省以及跨通话系统间的互通简化 。
1.2 传输通道和协议
文章图片
文章图片
协议通道的设计中有两个协议通道:非可靠的UDP通道和可靠的KCP通道 。
文章图片
文章图片
非可靠的UDP通道主要用于传输媒体 , 可靠的KCP通道主要用于登入、登出、网络状态同步、传输控制等 。
1.3 小程序网关和WebRTC网关
文章图片
文章图片
除此之外 , 传输层是基于我们自己的私有协议 。
推荐阅读
- 技术编程|后台权限管理设计思路:三种模型分析
- 技术编程|如何利用数据库进行世界史研究
- 青年|西安邮电大学与安康汉滨区深度合作,研发适合毛绒玩具全产业链实用技术
- 无人科技,电池技术|盘点几种常见的无人机电池
- 行业互联网|让青少年爱上科学 核桃编程AI人机双师模式受关注
- 技术编程|无服务器调研,部署REST API是最普遍用例
- 京东,折叠屏手机|围绕柔性屏的技术、特性、应用、产业化进行了非常专业的解读
- 云计算|腾讯云小微首次技术开放日,揭秘AI语音背后的奥秘
- iQOO手机|“快稳双全”!120W超快闪充技术炫技,十五分钟充满电量
- 驱动中国|国内首次应用!支付宝开放宠物鼻纹识别技术:猫狗都能买保险