FreeSWITCH在视频会议中的实践经验

本文分享了vivo在视频会议中使用FreeSWITCH的实践经验,包括FreeSWITCH架构、会议模块的功能,以及vivo自研的视频会议架构。文章详细介绍了媒体端口复用方案和MCU&SFU终端并存方案,同时探讨了应用层动态码率管理和网络拥塞控制的技术,旨在实现低延时、高清、流畅的视频会议体验。
摘要由CSDN通过智能技术生成

a16b9ae6459f5e38e6adcd3f059bc433.gif 点击上方“LiveVideoStack”关注我们

d786e553399938143db8da81169e0fef.png▲扫描图中二维码或点击阅读原文
了解音视频技术大会更多信息

  //  

编者按:视频会议已成为日常办公不可或缺的一部分,为远程交流的人们提供了许多便利。本次RTSCon 2022会议,由RTS社区和LiveVideoStack音视频技术社区联合出品,很荣幸地邀请到了来自vivo的架构师李莹莹老师,为我们介绍了FreeSWITCH架构、vivo自研的视频会议架构、以及在实践过程中应用到的一些方案等。

文/李莹莹

整理/LiveVideoStack

大家好,我是来自vivo AI研究院的李莹莹,本次我的分享主题是FreeSWITCH在视频会议中的实践。首先介绍下FreeSWITCH。

01 FreeSWITCH简介

e84d936a15551bf01ab8233d84a9782a.jpeg

FreeSWITCH是一个软件的电信交换平台。感兴趣的同学们可以看一下杜金房老师写的这本《FreeSWITCH 权威指南》。经过两年多的实践,我们认为FreeSWITCH的是一个功能全面、性能高效、容易扩展、文档完整的项目,很适合年轻的团队来入门。

1.1 FreeSWITCH框架

c68b7ec32f27e614e9584e3f11207474.jpeg

FreeSWITCH的框架很像是一个披萨,它有一个核心层,还有多个外围模块。核心层里面定义了一些关键数据结构、状态机和框架流程,同时它还提供了一个公共应用程序接口,供外围接口去调用。它是一个抽象并稳定的框架。它的外围接口是根据核心框架里面定义的抽象接口来实现具体的业务逻辑,就像一个钩子一样嵌入到整个框架中。上图列出了几个主要的模块(接口),例如终点模块,一般终端都会接入这个模块。我们主要会用到应用程序里面的会议模块。除此之外像应用程序、编解码器、事件套接字等有很多可实现的接口。

1.2 FreeSWITCH会议模块

ff7e1c7769b84fe776b187998f879e28.jpeg

下面介绍一下FreeSWITCH会议模块。我们整个的会议系统基本上是围绕FreeSWITCH的会议模块来做的。上图所示的是FreeSWITCH会议模块实现的一些融屏方案。比如它可以支持3x3的视频会议布局,还有突出显示演讲者的布局视图等等。上图右侧列举了一些会议中的常用操作,如创建会议、查询会议、邀请入会、提出会议、成员禁言、成员禁听,以及安全相关的会议密码、会议锁定和会议录音等这些都是FreeSWITCH所支持的,可以满足视频会议中的基本操作,所以我们也称它是一个完备的MCU视频会议解决方案。

02 vivo自研视频会议架构

54cf0b81b9505bbd6ad5f2fee5d01a42.jpeg

我们vivo自研的视频会议架构主要是围绕FreeSWITCH和它的视频会议模块来建设的。在终端层我们基于WebRTC开发了一套跨平台的SDK,支持Windows、Android、iOS等平台。在云端对外接口方面,我们提供了三类协议的端口,包括http、SIP和媒体等协议接口。http接口主要处理的是与业务逻辑相关的工作,如用户的账号管理、会议创建、会议预定、会议要求、日程安排等功能,它对应到我们自研的会议管理服务。SIP接口主要是在加入会议时,实现会议远端的位置信息以及媒体信息的交换。媒体接口包括传输的RTP、RTCP、Stun等媒体相关协议,实现会话中音视频数据在会话两端的实时传输。

FreeSWITCH是一个有状态服务,为了实现FreeSWITCH的集群化部署,我们自研了一套方案,在FreeSWITCH前面架设了自研的SIP代理服务和媒体代理服务,这两个服务都是无状态的,主要是做会话路由和媒体路由。经过这样的处理,我们实现了低延时、高清、流畅、易扩展、高并发、稳定的一套会议系统。

03 媒体端口复用方案

3.1 方案1:公网信令端口和媒体端口分片

2fbca82d7dd1c223a3c12a95baead5b5.jpeg

接下来介绍下一些我们的优化方案,首先是媒体端口复用方案。什么是媒体端口复用?就是这里云端对外只提供一个媒体传输的端口,所有终端

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值