使用Doubango+FreeSWITCH构建视频会议系统

2017-09-14  本文已影响0人  暴走大牙

时间如梭,就要到给丈母娘送月饼的时间了。
记录一下上半年主要折腾的东东,使用传统的VoIP方案提供手机实时音视频聊天通讯SDK。
服务器做混流转发,相比网状模型,减少了手机客户端带宽和性能方面的压力,服务器混完后的媒体流还可以分发到RTMP CDN,这样其它观众可以通过CDN拉流。
前后端都是用开源的项目,挺想参与到自研的视频会议系统的研发中,但是xxx,基本是我和另外一个同事在整。

服务端

OpenSIPS 1.11.x 负载均衡 + FreeSWITCH 1.6.x
阅读官方wiki和自带的sammple配置文件,官方wiki并没有及时更新,有些不清楚的通过搜索下源码基本能猜出来。
OpenSIPS dispatcher分发注册,load_balancer分发呼叫,可以参考Tutorials-LoadBalancing
一开始面对 opensips.cfg route 脚本挺懵逼的,通过调试看xlog打印日志慢慢知道了个大概,也通过dialog解决了呼叫同一个会议号码能够保证分发到同一个FS服务器节点。
除了官方wiki外,下面的资料十分好:

客户端

基于 iOS idoubs 和 Android imsdroid 基础上修改和优化。
Doubango 这个框架官方基本不维护了,Github 上面也挂了很多issue没有解决,所以慢慢填这些坑。
框架实现的很好,用ANSI C写出了面向对象套路,模块化,很值得学习。
把GPUImage拿过来,加了美颜效果,增加更多的分辨率输出,iOS OC层是用MRC的,有个引用计数crash查了n久,有些问题idoubs已经解决了并没有同步到imsdroid中等等。
卡顿花屏挺严重,修改了重传和码率自适应代码,还是会有花屏卡顿现象,待优化。

计划

上一篇 下一篇

猜你喜欢

热点阅读