跨平臺音視訊方案
下面介紹這個跨平臺的即時通訊解決方案,基於先進的H.264視訊編碼標準、AAC音訊編碼標準與P2P技術,整合了佰銳科技在音視訊編碼、多媒體通訊領域領先的開發技術和豐富的產品經驗而設計的高質量、寬適應性、分散式、模組化的網路音視訊互動平臺,是我進入公司完成的第一個專案。
方案:開發語言、開發時間、伺服器端、音訊、視訊的採集、編碼、傳輸、解碼的封裝效果
視訊採集和編碼能否分開使用、採集到的視訊不編碼,能否得到資料、客戶端用vc或vb封裝activex,伺服器端用java、伺服器端SDK能相容java、伺服器部署、如何快速開發。
解決方案:AnyChat Platform Core SDK用 C++語言開發的,提供了VC++、Delphi、VB.Net、C#的開發例程
原始碼, 伺服器端我們也提供了SDK介面的,參考SDK包裡面doc\server\目錄下的《AnyChat Server SDK 開發指南》傳附件)。包含客戶端、伺服器端的SDK、開發文件、Demo程式原始碼等。
投入的開發人員數量與業務需求是密切相關的,如果用佰銳的SDK包,只是想開發到一定demo程式的程度,則只需要一名VC++開發人員就足夠了,2年相關開發經驗,預計7-15。天左右可以完成。
SDK封裝了底層的音訊、視訊的採集、編碼、傳輸、解碼、顯示等,使用者只需要關注應用層業務的實現就行了,開發人員不需要懂音訊、視訊相關的開發。而且文字訊息、檔案傳輸等功能,我們的SDK裡面也實現了。
音訊、視訊的採集、編碼、傳輸、解碼、顯示全部封裝在一起提供了不同的API介面,如上層只希望開啟視訊,不想開啟音訊,則不呼叫音訊相關的API介面就行了。SDK可以實現1對1、1對多,或是多對多的語音、視訊、文字的互動。視訊採集和編碼可以分開使用,語音、視訊資料,上層應用都可以獲取到,由回撥函式來通知上層應用的。視訊採集後,通過回撥來反饋給上層的應用,那上層的應用就可以把視訊顯示在任何位置了。使用者使用SDK來開發,前臺的介面是由您那邊自己來定義。
伺服器為使用者開放了一些介面,使用者可以寫一個DLL來實現這些介面,這樣伺服器就可以呼叫使用者的DLL了。伺服器開放了一個介面:onuser_login(username,password,xx)
使用者就需要寫一個DLL,來實現這個onuser_login的介面,當有客戶登入時,使用者的伺服器就呼叫DLL的onuser_login方法,至於如何來驗證客戶,使用者可以在dll中連線資料庫,也可以在dll中使用soap呼叫訪問webservice,……,只要將驗證的結果返回伺服器就OK了。
伺服器部署非常簡單,執行一個批處理,將伺服器程式安裝為“Service”就行了。
使用者評估:
1、熟悉AnyChat的API呼叫、技術體系;
2、軟體介面部分,主要是客戶端SDK部分的開發;
3、業務邏輯部分,主要是伺服器SDK部分的開發;
技術評估標準:
系統承載能力測試 |
測試方法 |
客戶端綜合測試 |
測試方法 |
A.單伺服器最大連線數測試 B.單伺服器最大併發連結數測試 |
1.啟動伺服器程式。 2使用Anychat SDK,初始化SDK,連結伺服器。 3.重複2的過程。 4.新的連結無法連結到伺服器時停止測試。 5.測試對此,去平均值。 |
不同型別攝像頭 相容性測試 |
1.啟動伺服器程式。 2.使用Anychat SDK,初始化SDK,進入房間,開啟視訊.。 3換其它型別的攝像頭進行測試。 |
單伺服器 最大房間數測試 |
1.在資料庫配置房間資料,啟動伺服器程式。 2. 使用Anychat SDK,初始化SDK,連結伺服器,進入房間。 3.修改房間編號,重複2的過程。 4.知道能進入所有的房間,或是有房間無法進入時停止測試。 |
||
單伺服器 語音負載測試 |
1.啟動伺服器程式。 2.連結伺服器,每兩個使用者進入同一個房間開啟雙向語音。 3. 重複2的過程。多個使用者併發測試 4.直到語音質量明顯下降時停止測試 5.測試多次,取平均值。 |
不同型別音效卡 相容性測試 |
1.啟動伺服器程式。 2.使用Anychat SDK,初始化SDK,進入房間,開啟語音。 3.換其他型別的音效卡進行測試 |
單伺服器 文字負載測試 |
1.啟動伺服器程式。 2.連線伺服器,每兩個使用者進入同個房間,每秒傳送100位元組文字資料。 3. 重複2的過程。多個使用者併發測試 4.直到文字訊息失敗或是使用者連結被伺服器斷開時停止測試。 5. 測試多次,取平均值。 |
||
單伺服器視訊負載測試 |
1.啟動伺服器程式。 2.連結伺服器,每兩個使用者進入同一個房間,開啟雙向視訊。 3. 重複2的過程。多個使用者併發測試 4.直到視訊質量明顯下降或有使用者連結被伺服器斷開時停止測試。 5.測試多次,取平均值。 |
不同型別作業系統 相容性測試 |
1.啟動伺服器程式。 2.使用Anychat SDK,初始化SDK,進入房間。 3.判斷系統的語音、視訊、文字功能是否正常。 4.換其他型別的作業系統進行測試。 |
單伺服器 綜合負載測試 |
1.啟動伺服器程式。 2.連結伺服器,每兩個使用者進入同一個房間,開啟視訊、語音、文字。 3. 重複2的過程。多個使用者併發測試 4.直到視訊質量明顯下降或有使用者連結被伺服器斷開時停止測試。 5.測試多次,取平均值。 |
測試結果記錄
1.單伺服器最大連線數測試 |
結果:A.單臺伺服器至少支援5000連線 B.伺服器CPU佔用率小於5% |
2.單伺服器最大併發連線數測試 |
結果:A.單臺伺服器至少支援100併發連數 B.伺服器CPU佔用率小於5% |
3.單伺服器最大房間數測試 |
結果: A.單臺伺服器至少支援10000個房間 B.伺服器CPU佔用率小於5% |
4. 單伺服器語音負載測試 |
結果:A. 單臺伺服器至少支援2500對用同時進行語音B. 伺服器CPU佔用率小於25% |
5.單伺服器文字負載測試 |
結果:A.單臺伺服器至少支援2500對使用者同時進行視訊B.伺服器CPU佔用率小於50% |
6. 單伺服器文字負載測試 |
結果:A.單臺伺服器至少支援2500對使用者同時進行文字B.伺服器CPU佔用率小於8% |
7.單伺服器綜合負載測試 |
結果:A單臺伺服器至少支援2500對使用者同時進行綜合負載測試B.滿負荷執行時伺服器CPU佔用率小於70% |
8. 不同型別攝像頭相容性測試 |
結果:A.支援所有USB 攝像頭 B.支援所有USB電視採集卡 C.支援所有PCI視訊採集卡 |
9.不同型別音效卡相容性試 |
結果:支援所有音效卡,並能自動選擇Mic為輸入音訊源 |
10.不同型別作業系統相容性測試 |
結果:A.Windows2000、WindowsXP、Windows2003作業系統B.支援Windows Vista、Windows 2008作業系統(註冊元件時需要管理員許可權,否則UAC會阻止元件註冊) |
至此,從對音視訊一無所知到完成了一套解決方案的研究,耗時兩個月。