對一個實時的網絡語音視頻系統而言,網絡的品質對該系統的用戶的體驗具備決定性的做用,因此,在正式部署系統以前,進行較全面的網絡測試和網絡調優工做是很是必要的。這將是一個複雜的系統工程,若是有專業的團隊來作這件事情是最好的。然而,通常的公司都是由開發人員或實施人員來作這些事情。好比須要進行以下分析:目標用戶主要分佈在哪些城市?在哪一個地方或哪些地方(分佈式方案)部署服務器對總體目標用戶而言綜合效果最爲理想?如何部署?帶寬須要多大?是否須要支持雙線或多線(電信、聯通、移動、鐵通等)?等等。windows
本文不打算全面系統地介紹這些內容,而是隻把其中最重要的部分拿出來,沒有專業網絡調優團隊的中小公司能夠按照下面給出的信息,進行一些必要的測試和分析。在作完這些後,對網絡的基本狀況就大體心中有數了。服務器
在語音視頻聊天系統或視頻會議系統中,語音、視頻、電子白板、遠程桌面等功能對網絡帶寬的要求分別如何了?網絡
咱們先假設一種常見的場景:假設N個在線用戶同時進行1對1的多媒體溝通(即分爲N/2組),在不考慮P2P通道的狀況下,帶寬的大體佔用以下表所示(以OMCS語音視頻框架爲例,與QQ流量要求接近):框架
對於視頻和遠程桌面而言 --分佈式
幀 頻: 8~10 fps 。測試
普通質量:對應EncodeQuality取值爲 8 左右。spa
高 質 量:對應EncodeQuality取值爲 3 左右。3d
說明:code
1.流量對稱視頻
對服務器而言,上行、下行的流量是對稱的;對客戶端而言,進、出的流量幾乎也是對稱的。上表中列出的只是單向的流量。
2.正比推算
以視頻爲例,若是視頻的尺寸不是320x240,那麼能夠按比例推算帶寬的佔用。假設視頻大小爲640x480,那麼,帶寬的佔用將增長4倍((640x480)/(320x240))。
3.考慮P2P
若是啓用了P2P通道,那麼,服務端帶寬佔用會減少,但客戶端帶寬佔用保持不變。假設P2P的成功率爲70%,則服務端的帶寬佔用將減小至原來的30%。
4.視頻會議
上面的數據是基於1對1的多媒體溝通,若是是相似視頻會議的場景,則溝通就是多對多的,這時,帶寬的佔用就會增長,服務器的上下行的流量也再也不對稱。
好比,有M個用戶在一個視頻會議室聊天,每一個用戶的視頻都要廣播給其它的(M-1)個用戶,並且,每一個用戶都要接收其它(M-1)個用戶的視頻數據,因此帶寬的佔用就會增長不少。
語音視頻數據都是實時採集、實時播放的數據,除了對服務器帶寬的速度有要求外,更要求服務器帶寬通訊質量的穩定性,即網絡延時小、網絡抖動小。很容易理解,若是網絡抖動較大,聽到的聲音就是斷斷續續的(OMCS內置了抖動緩衝區JitterBuffer,但也只能在必定程度內減輕這個問題)。
因此,服務器的帶寬要求必須是獨享帶寬,共享帶寬沒法知足實時語音視頻的要求。對實時語音視頻而言,100M的共享帶寬,還不如5M的獨享。這也就是爲何一般租服務器時,IDC會免費送你100M的共享帶寬,而租5M的獨享帶寬,卻一年要花幾千塊錢。
另外,要注意:
(1)IDC服務器帶寬的單位是bits/s,而咱們一般說的網速的單位是bytes/s。它們之間是8倍的關係 -- 好比,服務器的帶寬是1M的,說明下載的速度最多能夠達到120kB/s左右。
(2)IDC服務器帶寬指上行和下行的總和。好比,服務器的帶寬是1M,說明在同一時刻,下載的速度和上傳的速度加起來不會超過120kB/s。
解:假設攝像頭視頻尺寸爲640*480,音、視頻爲普通質量,P2P成功率爲75%。
則 640*480尺寸的視頻一路帶寬佔用是:20*((640x480)/(320x240))= 80KB/s
一路音頻由表中數據得知爲5KB/s
故總共須要 100*(80+5)*8/1000*25% =17Mbit/s 服務器帶寬。
解:假設老師桌面分辨率爲1024*768,音頻爲高質量
則一路音、視頻所佔帶寬爲100 + 8 = 108KB/s
故總共須要 100*108*8/1000 = 86.4Mbit/s服務器帶寬
解:假設攝像頭視頻尺寸爲320*240,視頻質量爲高質量。
則每一個人上行1路下行9路,10我的則上行10路下行90路。下行合起來是100路,即10*10路。
則總共須要 100*35*8/1000 = 28Mbit/s服務器帶寬
1.客戶端網絡抖動
在服務器的帶寬質量獲得保證後,參與語音視頻會話的各個客戶端,若是但願都能達到比較流暢的體驗,則須要達到如下亮點:
(1)客戶端到服務器的ping延時低於100ms。
(2)ping的最大抖動範圍不超過20ms。
其中,網絡抖動對流暢性的影響更大。在測試時,建議將到服務器的ping打開,如此能夠觀察ping對語音視頻流暢性的影響。
注:ping命令加上 -t 就能夠接二連三地 ping。如 ping 192.168.0.123 -t
2.觀察網絡流量
測試時,推薦在各個客戶端機器上安裝 NetLimiter 網絡監控軟件,能夠實時查看客戶端和服務器之間的上下行流量、以及客戶端與客戶端之間的P2P通道上的網絡流量。
經過將網絡流量監控與ping結合起來,就能很容易地測試網絡的實時狀態。
3.測試客戶端與服務器之間的網絡速度
經過windows自帶的遠程桌面的拷貝文件功能,結合上面的NetLimiter監控,咱們能夠很容易地測試出客戶端電腦與服務器之間的網絡速度。
(1)在客戶端電腦上,使用windows自帶的遠程桌面功能(如win7下,開始菜單->全部程序->附件->遠程桌面鏈接),鏈接到目標服務器上。
(2)上行拷貝:從當前電腦拷貝一個50M以上的文件到服務器上。
(3)下行拷貝:從服務器上拷貝一個50M以上的文件到當前電腦。
(4)在拷貝正在進行過程當中,打開NetLimiter的界面,持續觀察客戶端與服務器之間傳遞的網絡速度。
(5)測試時,建議持續觀察5分鐘以上,觀察時請特別注意:(1)上下行速度分別是多少?(2)速度是否穩定?
(6)若是是相似視頻會議這樣的系統,假設需求通常是4我的在同一個會議室,那麼,可選擇4個表明性(所在的地理區域具備表明性)的用戶,而後在這4我的的電腦上同時進行這一測試,分別記錄這4個測試結果。
(7)進行此測試時,能夠同時觀察到服務器的持續的ping值。
而後逐一分析每個結果看其是否能知足OMCS的帶寬要求。
NetLimiter 截圖以下所示: