天天看點

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.7,優化視訊聊天、控制更多相關細節

在廣域網中,由于網絡的結構紛繁複雜、而且其實時狀況又是千變萬化的,是以,要使廣域網中的視訊聊天達到一個令人滿意的效果,存在諸多挑戰。這次釋出的GG 3.7版本嘗試在這一方向上做一些努力。本文不僅會分享GG的最新源碼,而且也會把我在過去項目中總結的一些語音視訊聊天的優化經驗分享給大家。

  在廣域網中,由于網絡的結構紛繁複雜、而且其實時狀況又是千變萬化的,是以,要使廣域網中的視訊聊天達到一個令人滿意的效果,存在諸多挑戰。這次釋出的GG 3.7版本嘗試在這一方向上做一些努力,據我自己測試,相比之前版本,新版本GG的視訊聊天的效果确實有較大提升。本文不僅會分享GG的最新源碼,而且也會把我在過去項目中總結的一些語音視訊聊天的優化心得分享給大家。

一.GG V3.7 新增功能展現 

  針對視訊聊天的優化,主要展現在以下幾點,為了友善介紹,我将VideoForm的窗體設計的截圖放在這裡:

  

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.7,優化視訊聊天、控制更多相關細節

1.實時顯示對方的麥克風狀态(啟用或禁用),如圖中A。

2.實時顯示對方的攝像頭狀态(啟用或禁用),如圖中B。

3.實時顯示對方視訊的編碼品質,如圖中D。取值0~31,值越小,視訊越清晰。

4.允許控制對方視訊編碼品質的政策:根據網絡情況自适應,或直接手動指定編碼品質(下拉清單選擇:優、良、中、差)。如圖中C。

5.控制對方攝像頭的采集視訊在高分辨率(640*480)和低分辨率(352*288)之間切換。如圖中E。

6.實時顯示網絡通道的狀态(類似信号強度)。如圖中F。

7.界面上的勾選框用于控制開啟或關閉自己的攝像頭、麥克風、揚聲器,以及顯示自己視訊的小視窗。

  GG運作起來之後,視訊聊天的截圖如下所示:      

可在廣域網部署運作的QQ高仿版 -- GG叽叽V3.7,優化視訊聊天、控制更多相關細節

二.視訊聊天優化經驗 

   關于本次GG更新的源代碼,就不多講了,大家下載下傳了自己去看,相對還是比較簡單的。接下來,我總結一下自己以往做視訊聊天優化的經驗。

   如果網絡情況相當好,那自然可以選擇流暢高清的視訊對話(如高的幀率、高的采集分辨率、高的視訊編碼品質等)。然而,現實總是殘酷的,是以,針對現實情況,我們必須有所權衡和取舍。

1.優先保證語音流暢。

(1)語音資料的流量很小,一般小于5k/s。但是,語音對網絡的抖動要求較高,較大的網絡抖動,就會導緻語音一卡一卡的。

        雖然GG使用的OMCS内部内置抖動緩沖區JitterBuffer,但也隻能一定程度地緩解卡的問題,而且是以增加語音延遲為代價的。

(2)避免通過TCP一次性發送非常大塊的資料Blob,因為這樣會導緻在發送Blob期間,任何語音資料包都發送不出去。建議是将大的Blob拆分成多個小塊發送。

2.在網絡差時

(1)首先降低攝像頭的采集分辨率,如去掉上面截圖窗體上“高分辨率”選項的勾勾。

(2)如果視訊或語音還是卡,則降低視訊的編碼品質。如果是手動調節,則依次下調視訊編碼品質:優->良->中->差。

(3)還可以降低攝像頭采集的幀頻(在服務端的配置檔案中設定),由于GG内部會自動根據網絡情況進行智能棄幀,是以,這個操作對GG而言就沒多大必要了。

(4)如果語音還是卡,那麼,就關掉視訊吧,隻進行純語音對話。自己這邊将窗體上的“攝像頭”前面的勾勾去掉,而且讓對方也去掉這個勾勾。

3.在租賃伺服器時,一定要選擇獨享帶寬,記住,獨享的。據我的經驗,在IDC租伺服器時免費贈送的百兆共享帶寬還不如租個5M的獨享的效果好。

三.GG V3.7 源碼下載下傳 

下載下傳最新版本,請轉到這裡。 

 注意:如果要将GG部署到廣域網,則可以在服務端的配置檔案中設定監聽的端口;而在用戶端的配置檔案中,則可以指定伺服器的IP和Port。

關于GG的最新全貌介紹、以及如何部署、資料庫、試用帳号等問題,我單獨寫了一篇文章,作為彙總,可參見 可在廣域網部署運作的QQ高仿版 -- GG2013概要。 

歡迎和我探讨關于GG2013的一切,我的QQ:2027224508,多多交流!  

大家有什麼問題和建議,可以留言,也可以發送email到我郵箱:[email protected]。 

如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵