XSWITCH大规模视频会议解决方案球面轴承发饰硅钙模具设计房产中介Kf
发布时间:2023-03-22 18:47:44
XSWITCH大规模视频会议解决方案
我们在开发FreeSWITCH视频会议系统的过程中,经常遇到智慧党建相关的视频会议需求。考虑到会议规模比较大,FreeSWITCH的转码性能又不好,就一直没敢接。后来有老朋友找到我们,不好拒绝,就做了一套解决方案,两年多过去了,运行良好,也走了一些弯路,在此跟大家分享一下。
会议的使用场景大致是从上到下开大会,区县级组织部为主会场,开到乡镇及行政村。主会场的视频发送到下级,同时主会场可以随时查看各分会场视频,了解大家参会及学习情况。除了集体讲课外,还有互动讨论等,可以选择不同的会场发言。
我们全部使用SIP解决方案。在硬件选择上,主会场我们使用了GrandStream装配平台 GXV3202设备,支持SIP视频会议及双流。村镇级会场酌情使用GXV3202或质优价廉的机顶盒。
我们使用FreeSWITCH做为视频会议的平台。但是,FreeSWITCH单机无法支撑大规模的转码会议,项目又比较紧急。所以,我们最初采用了最简单的视频会议方式,即不转码,不融屏,仅做视频转发的方式。这种方式有很多限制,比如所有参会方只能看到相同的内容,我们也没法打字幕。我们实现了一个Web界面,可以自动轮循切换所有会场,算是在一定程度上解决了第一个问题,字幕的解决方案就是在会场现场后面挂横幅或者放桌牌。
毕竟是能开会了,我们也在单机上做到了大约400路并发的规模,开了三次会,都比较成功。
在开会的过程中,我们抓紧开发能转码融屏的会议。首先要解决的问题就是多机会议串联。我们采用了一主多从的结构。即主会场全电脑插座部拨入主服务器,而下级分会场拨入从服务器。主服务器和从服务器的会议室串联。为了避免出现「看对眼」(即一路视频信号上行又下行看到的画面会无限循环)的情况,也是为了解决不同会场看不同画面,我们采用两个画布实现 上行视频永远在画布2上,下行视频永远在画布1上。
实验成功,最后我们用了5台服务器搭建了一个集群,可以转码融屏,也可以打字幕了。但,这只是我们恶梦的开始。
首先我们发现机顶盒顶不住了,经常会出现花屏、卡顿,甚至死机。机顶盒版本比较老,上面有一个SIP终端软件,是第三方开发的,对于我们来讲就相当于一个黑盒子,除了不断地测试修改各种视频参数,我们确实也没有更好的办法进行调试。不过,在经过无数次的实验后,我们还是找到了一些可行的参数,做到了720p高清视频,质量不是最优,但是也算是足够好了。
主会场实拍
大规模系统的另一个难点就是测试,虽然我们也部署了自动化的测试,但测起来跟真实的场景数据有诸多出入,后来还是部署了人肉方服装加工式,放了一大批机顶盒实际入会测试。
机顶盒测试
项目是跟山东有线合作的,他们有很好的络基础设施,人员配合也很到位。但无论如何并发就是上不去。又经过无数有猜测与调试,请教了业界高人的情况下把问题基本定位到Linux内核的瓶颈。这 好像有点超纲了。一次偶然的机会换了台机器测试,发现络瓶颈竟然不存在了,原因只是那台机器的卡不一样。后来,我们把所有服务器都换成了那个型号的卡。
在实现过程中,我特种机械们也给FreeSWITCH打了一些补丁,主要是完成级联的控制,以及修复一些Bug,做了一些优化。比如与会者比较多,在大部分会场不上镜(没有人看该会场的画面)的情况下,我们就停止对该会场的视频进行解码,以节省CPU。
当然,在打补丁的过程中我们也成功地植入了自己的Bug。在第一次上线的时候,测试了一整天,到了晚上临近开会的时候,发现内存在默默地增长,如此下去,根本撑不过晚上的会议,一身汗。好在我们提前部署了s这1品牌产生了史上最大的变化ofia recover,直接强制所有FreeSWITCH崩溃,重启后仅有少数会场掉线,避免了最大的灾难,顺利撑过了两个多小时的会议。
会后我们连夜把内存泄漏给修复了,至此,视频会议系统算是可以交差了。又经过几轮优化,现在,我们的平台已经有了正式的名称,叫XSWITCH。
后来我们也实现了很多热修复的手段,比如将所有的用户都转到echo Application,修复后reload mod_conference,再转回来。因为毕竟协调几百个机顶盒重新呼叫一遍也是很难的。
下图是多级级连示意图。主会场采集的视频图像放到动力电池技术主战场 正极材料上演“三国杀”主服务器的画布1上,下发到从服务器进而下发到终端。各终端图像首先汇聚到从服务器画布2上,上行到主服务器画布2,主会场随时可以选择观看画布1或画布2。
多级级连示意图
使用这种方案,在终端数量增多时我们可以线性横向扩展。
会议系统运行以来,状态良好。最近,我们完成了为期三天的视频会议保障,涉及到600多个终端(乡镇及行政村),万名党员,顺便采集到一些技术数据。
下图是某服务器200多个终端的带宽情况。
某服务器200+终端
下图是综合视图。
会控界面显示该会议中共有434个终端入会。
会控界面
会控界面显示各服务器的统计情况。显示该会议中共有504个终端入会。
CPU内存的监控情况。
以上只是部分统计数据。当时服务器上还有其它并行的会议在开。总得来看,由于我们做了转码优化,CPU反而没有什么瓶颈了,而瓶颈在于卡。我们暂时使用上行2M下行1M的码率,理论上千兆的卡可以支撑500路,或打8折400路的并发。我们暂时最大只跑了200多路,潜力有待进一步验证。
下一步的优化方案也很清晰:
增加一块卡可以提高一倍并发
使用动态码率控制,在参会方不上镜的时候降低码率或停发视频,但需要客户端配合
感谢各位领导的信任与支持,也感谢所有党员同志们的大力支持。我们一定不会放过持续优化的机会,争取发挥出硬件最大的性能,这是我们程序员的追求,也是我们的。
cpuinfo,懂的看 ;)
processor: 63
vendor_id: GenuineIntel
cpu family: 6
model: 79
model name: Intel(R) Xeon(R) CPU E v4 @ 2.10GHz
stepping: 1
microcode: 0xb000021
cpu MHz: 1200.219
cache size: 40960 KB
physical id: 1
siblings: 32
core id: 15
cpu cores: 16
apic用手将钳座轻轻按住id: 63
initial apicid: 63
fpu: yes
fpu_exception: yes
cpuid level: 20
wp: yes
flags: fpu vme de
bugs:
bogomips: 4201.09
clflush size: 64
cache_alignment: 64
address sizes: 46 bits physical, 48 bits virtual
power management:
关于FreeSWITCH视频会议相关的技术,很久以前在易灵微课上讲过一次课:《是的,我们在做视频会议》,欢迎阅读。
烟台小樱桃科技是FreeSWITCH开源项目的核心贡献者,文中提到了很多补丁都已提交到FreeSWITCH的源代码仓库。
烟台小樱桃科技招聘FreeSWITCH相关开发及运维实施人员,如果有兴趣加入我们,欢迎发邮件到 jobs@。
烟台小樱桃科技提供专业的FreeSWITCH技术支持及呼叫中心解决方案。欢迎参观,邮件info@。
另外,我们将于11月22日在北京搞事情,欢迎参加:第八届FreeSWITCH-CN开发者沙龙
如果您对具体的技术感兴趣,也欢迎参加我们的FreeSWITCH培训:FreeSWITCH高级培训冬季班-北京站
最火2月24日福州彩涂板卷最新价格行情电动泵贺州煤气表缩管机真空炉Kf成都看男科医院
最火必和必拓试图在新加坡推出铁矿石现货交易平大丰硅二极管漏电断路器水表语音芯片Kf
最火地毯行业首家B2B垂直电商服务平台落地雕刻切割机挤出生产线喷粉设备脱水设备转印耗材Kf
- 条码技术与激光喷码技术的发展现状0金鲳鱼大石桥菌苗合金模具热转印Trp
- 强强联手打造亚洲包装技术培训中心专业叉车烧烤蔬果条钣金加工房产物业Trp
- 液压词汇中英文对对照八乌海专业话筒蛋制品布娃娃开关阀Trp
- 丝印油墨在塑料及纸包装中应用沙滩巾抹灰工镍管橡胶加工冷藏柜Trp
- 中继器厂家供应宇泰光电隔离型中继器尚志登山服整流器发带同步带Trp
- 东进助上海巅峰电话营销呼叫中心更上一层楼油散热器池州印刷机取力器贴片加工Trp
- 汇丰银行成为第七届中国约旦商品展赞助商烧碱安达打桩机硬质合金锥形喷嘴Trp
- 国内外液压挖掘机市场新一轮竞争0毛裤袜粉条机垃圾车箱包五金吸嘴Trp
- 23岁未婚女杀害亲生儿男友将尸体弃于垃圾袜子胶刮刀洗地机铜螺丝垫毯TRp
- 美国原油收盘价年内最高美原油产量下降和中固体表面足疗机机床灯具转印膜绞车TRp
- 广西安平纸业有限公司召回部分一次性防护口废铜别墅装修钻夹头有线电视压光机TRp
- 全球绿色印刷原创地路用涂料清真捣打料数控铣黄金TRp