亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁(yè) > 資訊 > 國(guó)內(nèi) >
 首頁(yè) > 資訊 > 國(guó)內(nèi) >

XSWITCH大規(guī)模視頻會(huì)議解決方案

2019-11-05 14:43:50   作者:   來源:   評(píng)論:0  點(diǎn)擊:


  我們?cè)陂_發(fā)FreeSWITCH視頻會(huì)議系統(tǒng)的過程中,經(jīng)常遇到智慧黨建相關(guān)的視頻會(huì)議需求。考慮到會(huì)議規(guī)模比較大,F(xiàn)reeSWITCH的轉(zhuǎn)碼性能又不好,就一直沒敢接。后來有老朋友找到我們,不好拒絕,就做了一套解決方案,兩年多過去了,運(yùn)行良好,也走了一些彎路,在此跟大家分享一下。
  會(huì)議的使用場(chǎng)景大致是從上到下開大會(huì),區(qū)縣級(jí)組織部為主會(huì)場(chǎng),開到鄉(xiāng)鎮(zhèn)及行政村。主會(huì)場(chǎng)的視頻發(fā)送到下級(jí),同時(shí)主會(huì)場(chǎng)可以隨時(shí)查看各分會(huì)場(chǎng)視頻,了解大家參會(huì)及學(xué)習(xí)情況。除了集體講課外,還有互動(dòng)討論等,可以選擇不同的會(huì)場(chǎng)發(fā)言。
  我們?nèi)渴褂肧IP解決方案。在硬件選擇上,主會(huì)場(chǎng)我們使用了GrandStream GXV3202設(shè)備,支持SIP視頻會(huì)議及雙流。村鎮(zhèn)級(jí)會(huì)場(chǎng)酌情使用GXV3202或質(zhì)優(yōu)價(jià)廉的機(jī)頂盒。
  我們使用FreeSWITCH做為視頻會(huì)議的平臺(tái)。但是,F(xiàn)reeSWITCH單機(jī)無法支撐大規(guī)模的轉(zhuǎn)碼會(huì)議,項(xiàng)目又比較緊急。所以,我們最初采用了最簡(jiǎn)單的視頻會(huì)議方式,即不轉(zhuǎn)碼,不融屏,僅做視頻轉(zhuǎn)發(fā)的方式。這種方式有很多限制,比如所有參會(huì)方只能看到相同的內(nèi)容,我們也沒法打字幕。我們實(shí)現(xiàn)了一個(gè)Web界面,可以自動(dòng)輪循切換所有會(huì)場(chǎng),算是在一定程度上解決了第一個(gè)問題,字幕的解決方案就是在會(huì)場(chǎng)現(xiàn)場(chǎng)后面掛橫幅或者放桌牌。
  畢竟是能開會(huì)了,我們也在單機(jī)上做到了大約400路并發(fā)的規(guī)模,開了三次會(huì),都比較成功。
  在開會(huì)的過程中,我們抓緊開發(fā)能轉(zhuǎn)碼融屏的會(huì)議。首先要解決的問題就是多機(jī)會(huì)議串聯(lián)。我們采用了一主多從的結(jié)構(gòu)。即主會(huì)場(chǎng)全部撥入主服務(wù)器,而下級(jí)分會(huì)場(chǎng)撥入從服務(wù)器。主服務(wù)器和從服務(wù)器的會(huì)議室串聯(lián)。為了避免出現(xiàn)「看對(duì)眼」(即一路視頻信號(hào)上行又下行看到的畫面會(huì)無限循環(huán))的情況,也是為了解決不同會(huì)場(chǎng)看不同畫面,我們采用兩個(gè)畫布實(shí)現(xiàn)——上行視頻永遠(yuǎn)在畫布2上,下行視頻永遠(yuǎn)在畫布1上。
  實(shí)驗(yàn)成功,最后我們用了5臺(tái)服務(wù)器搭建了一個(gè)集群,可以轉(zhuǎn)碼融屏,也可以打字幕了。但,這只是我們惡夢(mèng)的開始。
  首先我們發(fā)現(xiàn)機(jī)頂盒頂不住了,經(jīng)常會(huì)出現(xiàn)花屏、卡頓,甚至死機(jī)。機(jī)頂盒版本比較老,上面有一個(gè)SIP終端軟件,是第三方開發(fā)的,對(duì)于我們來講就相當(dāng)于一個(gè)黑盒子,除了不斷地測(cè)試修改各種視頻參數(shù),我們確實(shí)也沒有更好的辦法進(jìn)行調(diào)試。不過,在經(jīng)過無數(shù)次的實(shí)驗(yàn)后,我們還是找到了一些可行的參數(shù),做到了720p高清視頻,質(zhì)量不是最優(yōu),但是也算是足夠好了。
  主會(huì)場(chǎng)實(shí)拍

多畫面
  大規(guī)模系統(tǒng)的另一個(gè)難點(diǎn)就是測(cè)試,雖然我們也部署了自動(dòng)化的測(cè)試,但測(cè)起來跟真實(shí)的場(chǎng)景數(shù)據(jù)有諸多出入,后來還是部署了人肉方式,放了一大批機(jī)頂盒實(shí)際入會(huì)測(cè)試。
  機(jī)頂盒測(cè)試
  項(xiàng)目是跟山東有線合作的,他們有很好的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,人員配合也很到位。但無論如何并發(fā)就是上不去。又經(jīng)過無數(shù)有猜測(cè)與調(diào)試,請(qǐng)教了業(yè)界高人的情況下把問題基本定位到Linux內(nèi)核的瓶頸。這……好像有點(diǎn)超綱了。一次偶然的機(jī)會(huì)換了臺(tái)機(jī)器測(cè)試,發(fā)現(xiàn)網(wǎng)絡(luò)瓶頸竟然不存在了,原因只是那臺(tái)機(jī)器的網(wǎng)卡不一樣。后來,我們把所有服務(wù)器都換成了那個(gè)型號(hào)的網(wǎng)卡。
  在實(shí)現(xiàn)過程中,我們也給FreeSWITCH打了一些補(bǔ)丁,主要是完成級(jí)聯(lián)的控制,以及修復(fù)一些Bug,做了一些優(yōu)化。比如與會(huì)者比較多,在大部分會(huì)場(chǎng)不上鏡(沒有人看該會(huì)場(chǎng)的畫面)的情況下,我們就停止對(duì)該會(huì)場(chǎng)的視頻進(jìn)行解碼,以節(jié)省CPU。
  當(dāng)然,在打補(bǔ)丁的過程中我們也成功地植入了自己的Bug。在第一次上線的時(shí)候,測(cè)試了一整天,到了晚上臨近開會(huì)的時(shí)候,發(fā)現(xiàn)內(nèi)存在默默地增長(zhǎng),如此下去,根本撐不過晚上的會(huì)議,一身汗。好在我們提前部署了sofia recover,直接強(qiáng)制所有FreeSWITCH崩潰,重啟后僅有少數(shù)會(huì)場(chǎng)掉線,避免了最大的災(zāi)難,順利撐過了兩個(gè)多小時(shí)的會(huì)議。
  會(huì)后我們連夜把內(nèi)存泄漏給修復(fù)了,至此,視頻會(huì)議系統(tǒng)算是可以交差了。又經(jīng)過幾輪優(yōu)化,現(xiàn)在,我們的平臺(tái)已經(jīng)有了正式的名稱,叫XSWITCH。
  后來我們也實(shí)現(xiàn)了很多熱修復(fù)的手段,比如將所有在線的用戶都轉(zhuǎn)到echo Application,修復(fù)后reload mod_conference,再轉(zhuǎn)回來。因?yàn)楫吘箙f(xié)調(diào)幾百個(gè)機(jī)頂盒重新呼叫一遍也是很難的。
  下圖是多級(jí)級(jí)連示意圖。主會(huì)場(chǎng)采集的視頻圖像放到主服務(wù)器的畫布1上,下發(fā)到從服務(wù)器進(jìn)而下發(fā)到終端。各終端圖像首先匯聚到從服務(wù)器畫布2上,上行到主服務(wù)器畫布2,主會(huì)場(chǎng)隨時(shí)可以選擇觀看畫布1或畫布2。
  多級(jí)級(jí)連示意圖
  使用這種方案,在終端數(shù)量增多時(shí)我們可以線性橫向擴(kuò)展。
  會(huì)議系統(tǒng)運(yùn)行以來,狀態(tài)良好。最近,我們完成了為期三天的視頻會(huì)議保障,涉及到600多個(gè)終端(鄉(xiāng)鎮(zhèn)及行政村),萬名黨員,順便采集到一些技術(shù)數(shù)據(jù)。
  下圖是某服務(wù)器200多個(gè)終端的帶寬情況。
  某服務(wù)器200+終端
  下圖是綜合視圖。
  會(huì)控界面顯示該會(huì)議中共有434個(gè)終端入會(huì)。
  會(huì)控界面
  會(huì)控界面顯示各服務(wù)器的統(tǒng)計(jì)情況。顯示該會(huì)議中共有504個(gè)終端入會(huì)。
  CPU內(nèi)存的監(jiān)控情況。
  以上只是部分統(tǒng)計(jì)數(shù)據(jù)。當(dāng)時(shí)服務(wù)器上還有其它并行的會(huì)議在開?偟脕砜,由于我們做了轉(zhuǎn)碼優(yōu)化,CPU反而沒有什么瓶頸了,而瓶頸在于網(wǎng)卡。我們暫時(shí)使用上行2M下行1M的碼率,理論上千兆的網(wǎng)卡可以支撐500路,或打8折400路的并發(fā)。我們暫時(shí)最大只跑了200多路,潛力有待進(jìn)一步驗(yàn)證。
  下一步的優(yōu)化方案也很清晰:
  增加一塊網(wǎng)卡可以提高一倍并發(fā)
  使用動(dòng)態(tài)碼率控制,在參會(huì)方不上鏡的時(shí)候降低碼率或停發(fā)視頻,但需要客戶端配合
  感謝各位領(lǐng)導(dǎo)的信任與支持,也感謝所有黨員同志們的大力支持。我們一定不會(huì)放過持續(xù)優(yōu)化的機(jī)會(huì),爭(zhēng)取發(fā)揮出硬件最大的性能,這是我們程序員的追求,也是我們的責(zé)任。
  cpuinfo,懂的看 ;)
  processor: 63
  vendor_id: GenuineIntel
  cpu family: 6
  model: 79
  model name: Intel(R) Xeon(R) CPU E5-2683 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
  apicid: 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:
  關(guān)于FreeSWITCH視頻會(huì)議相關(guān)的技術(shù),很久以前在易靈微課上講過一次課:《是的,我們?cè)谧鲆曨l會(huì)議》,歡迎閱讀。
  煙臺(tái)小櫻桃科技是FreeSWITCH開源項(xiàng)目的核心貢獻(xiàn)者,文中提到了很多補(bǔ)丁都已提交到FreeSWITCH的源代碼倉(cāng)庫(kù)。
  煙臺(tái)小櫻桃科技招聘FreeSWITCH相關(guān)開發(fā)及運(yùn)維實(shí)施人員,如果有興趣加入我們,歡迎發(fā)郵件到 jobs@x-y-t.cn。
  煙臺(tái)小櫻桃科技提供專業(yè)的FreeSWITCH技術(shù)支持及呼叫中心解決方案。歡迎參觀,郵件info@x-y-t.cn。
  另外,我們將于11月22日在北京搞事情,歡迎參加:第八屆FreeSWITCH-CN開發(fā)者沙龍
  如果您對(duì)具體的技術(shù)感興趣,也歡迎參加我們的FreeSWITCH培訓(xùn):FreeSWITCH高級(jí)培訓(xùn)冬季班-北京站
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題

CTI論壇會(huì)員企業(yè)

刚察县| 尚义县| 禄丰县| 阿合奇县| 常宁市| 长治县| 合作市| 丹凤县| 两当县| 海原县| 崇州市| 丹巴县| 璧山县| 仁寿县| 五华县| 汉源县| 义马市| 营山县| 包头市| 微博| 桐城市| 平原县| 叶城县| 土默特右旗| 兴宁市| 沿河| 曲松县| 麻栗坡县| 闽清县| 泰来县| 恩平市| 大名县| 杭锦旗| 余庆县| 襄城县| 阿图什市| 聊城市| 五家渠市| 招远市| 梅河口市| 新乐市|