美文网首页
使用Doubango+FreeSWITCH构建视频会议系统

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

作者: 暴走大牙 | 来源:发表于2017-09-14 17:26 被阅读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外,下面的资料十分好:

    • 杜金房老师的《FreeSWITCH权威指南》,非常受用,详读了2遍。FS mod_av 模块也是杜老师贡献的,我大概看了下,对于LibAV的使用mod_av还有可以优化的地方。
    • 余洪涌老师的《百问FreeSwitch》
    • 老黑老师的《使用OpenSER构建电话通信系统》
    • RFC文档 3261 2327 等都有中文翻译版本

    客户端

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

    计划

    • 继续优化Doubango客户端
    • 尝试其它开源客户端linphone,pjsip等
    • 尝试WebRTC使用sip信令跟FreeSWITCH搭配
    • 尝试WebRTC + licode
    • 体验其它公司实时通讯SDK
    • 传统CDN厂家已经开始在研发WebRTC服务器

    相关文章

      网友评论

          本文标题:使用Doubango+FreeSWITCH构建视频会议系统

          本文链接:https://www.haomeiwen.com/subject/cizrsxtx.html