1. 程式人生 > >跨平臺音視訊方案

跨平臺音視訊方案

下面介紹這個跨平臺的即時通訊解決方案,基於先進的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會阻止元件註冊)

至此,從對音視訊一無所知到完成了一套解決方案的研究,耗時兩個月。