時間如梭,就要到給丈母娘送月餅的時間了再愈。
記錄一下上半年主要折騰的東東缰泡,使用傳統(tǒng)的VoIP方案提供手機實時音視頻聊天通訊SDK近迁。
服務(wù)器做混流轉(zhuǎn)發(fā),相比網(wǎng)狀模型菱农,減少了手機客戶端帶寬和性能方面的壓力缭付,服務(wù)器混完后的媒體流還可以分發(fā)到RTMP CDN,這樣其它觀眾可以通過CDN拉流循未。
前后端都是用開源的項目蛉腌,挺想?yún)⑴c到自研的視頻會議系統(tǒng)的研發(fā)中,但是xxx,基本是我和另外一個同事在整烙丛。
服務(wù)端
OpenSIPS 1.11.x 負(fù)載均衡 + FreeSWITCH 1.6.x
閱讀官方wiki和自帶的sammple配置文件舅巷,官方wiki并沒有及時更新,有些不清楚的通過搜索下源碼基本能猜出來河咽。
OpenSIPS dispatcher分發(fā)注冊钠右,load_balancer分發(fā)呼叫,可以參考Tutorials-LoadBalancing
一開始面對 opensips.cfg route 腳本挺懵逼的忘蟹,通過調(diào)試看xlog打印日志慢慢知道了個大概飒房,也通過dialog解決了呼叫同一個會議號碼能夠保證分發(fā)到同一個FS服務(wù)器節(jié)點。
除了官方wiki外媚值,下面的資料十分好:
- 杜金房老師的《FreeSWITCH權(quán)威指南》狠毯,非常受用,詳讀了2遍褥芒。FS mod_av 模塊也是杜老師貢獻的嚼松,我大概看了下,對于LibAV的使用mod_av還有可以優(yōu)化的地方锰扶。
- 余洪涌老師的《百問FreeSwitch》
- 老黑老師的《使用OpenSER構(gòu)建電話通信系統(tǒng)》
- RFC文檔 3261 2327 等都有中文翻譯版本
客戶端
基于 iOS idoubs 和 Android imsdroid 基礎(chǔ)上修改和優(yōu)化献酗。
Doubango 這個框架官方基本不維護了,Github 上面也掛了很多issue沒有解決坷牛,所以慢慢填這些坑罕偎。
框架實現(xiàn)的很好,用ANSI C寫出了面向?qū)ο筇茁肪┤颍K化颜及,很值得學(xué)習(xí)。
把GPUImage拿過來蹂楣,加了美顏效果器予,增加更多的分辨率輸出,iOS OC層是用MRC的捐迫,有個引用計數(shù)crash查了n久乾翔,有些問題idoubs已經(jīng)解決了并沒有同步到imsdroid中等等。
卡頓花屏挺嚴(yán)重施戴,修改了重傳和碼率自適應(yīng)代碼反浓,還是會有花屏卡頓現(xiàn)象,待優(yōu)化赞哗。
計劃
- 繼續(xù)優(yōu)化Doubango客戶端
- 嘗試其它開源客戶端linphone雷则,pjsip等
- 嘗試WebRTC使用sip信令跟FreeSWITCH搭配
- 嘗試WebRTC + licode
- 體驗其它公司實時通訊SDK
- 傳統(tǒng)CDN廠家已經(jīng)開始在研發(fā)WebRTC服務(wù)器