楊銘輝
(廣東省國(guó)防工業(yè)職工大學(xué),廣東 廣州 510420)
基于PC的視頻通訊系統(tǒng)開(kāi)發(fā)
——流媒體傳輸控制子系統(tǒng)
楊銘輝
(廣東省國(guó)防工業(yè)職工大學(xué),廣東 廣州 510420)
視頻通訊作為信息時(shí)代一種嶄新的多媒體通訊方式,以其經(jīng)濟(jì)、快捷、不受地域限制等特性,日益受到人們的歡迎。視頻通訊系統(tǒng)是計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、多媒體及網(wǎng)絡(luò)技術(shù)的不斷發(fā)展的產(chǎn)物,流媒體技術(shù)是新興的一種網(wǎng)絡(luò)技術(shù),是在因特網(wǎng)中采用媒體數(shù)據(jù)流式傳輸?shù)募夹g(shù),通常采用RTP、RTCP、RTSP協(xié)議作為傳輸和控制協(xié)議,支持實(shí)時(shí)廣播和點(diǎn)播。
視頻通訊系統(tǒng);流媒體;流式傳輸
自1844年電報(bào)正式用于公眾通訊開(kāi)始,至今已有167年的歷史。在這 167年當(dāng)中,人類的通訊方式大大的發(fā)生了改變。從電話、移動(dòng)通信到網(wǎng)絡(luò)的使用,在通訊領(lǐng)域,人類越來(lái)越體驗(yàn)著更加便捷、生動(dòng)的溝通方式,人類結(jié)束了由牛車(chē)、馬車(chē)送信的歷史,完成了異地間的話音通訊。從通訊發(fā)展的趨勢(shì)來(lái)看,單一的語(yǔ)音已不能滿足人們對(duì)通迅的要求,將語(yǔ)音、數(shù)據(jù)、圖像綜合起來(lái)將成為未來(lái)人們通信的主要方式。計(jì)算機(jī)多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展使得視頻通訊系統(tǒng)的廣泛應(yīng)用成為可能。利用視頻通訊系統(tǒng),可以使遠(yuǎn)在千里之外的人們?cè)谝黄鹫匍_(kāi)各種會(huì)議,或與相隔很遠(yuǎn)的親朋好友互相視頻聊天。視頻通訊系統(tǒng)除提供通常的語(yǔ)音電話功能外,還能夠?qū)崟r(shí)接收遠(yuǎn)程傳送的圖像及其它數(shù)據(jù)資料。可以說(shuō),視頻通訊系統(tǒng)有著非常廣泛的應(yīng)用前景。
視頻通訊系統(tǒng)以其需求的廣泛性滿足了各類群體的需要。第一類是企業(yè)和機(jī)關(guān)。對(duì)于企業(yè)和機(jī)關(guān)來(lái)說(shuō),視頻通訊系統(tǒng)更多地被用來(lái)傳遞商務(wù)信息、政務(wù)信息,處理工作事務(wù)。第二類是個(gè)人,這是一群時(shí)尚群體和需要親情溝通的人群,視頻通訊系統(tǒng)對(duì)于他們來(lái)說(shuō)不僅是一種體驗(yàn),也是一種溝通的需要。對(duì)市場(chǎng)而言,在這兩類人群中,前者具有更多的商業(yè)價(jià)值,而后者卻代表了視頻通訊產(chǎn)品的方向和潛力。
從1990年視頻通訊技術(shù)起步至今的10多年中,視頻通訊主要應(yīng)用于多點(diǎn)會(huì)議電視、遠(yuǎn)程醫(yī)療、遠(yuǎn)程監(jiān)控等領(lǐng)域。由于建設(shè)成本高、網(wǎng)絡(luò)要求嚴(yán)、組網(wǎng)能力弱、操作難度大、設(shè)備兼容性差等因素,傳統(tǒng)的視頻通訊系統(tǒng)始終無(wú)法廣泛地被市場(chǎng)所接受,是名符其實(shí)的“貴族”通訊手段。 隨著視頻通訊系統(tǒng)的普及,在IP技術(shù)以及IP網(wǎng)絡(luò)的帶動(dòng)下,已經(jīng)表現(xiàn)出系統(tǒng)組網(wǎng)靈活、管理集中高效、網(wǎng)絡(luò)建設(shè)成熟、終端成本低廉、業(yè)務(wù)種類多樣等運(yùn)營(yíng)特性,政府部門(mén)、公安、稅務(wù)、氣象、水利等領(lǐng)域的應(yīng)用更為廣泛,視頻通訊已經(jīng)脫下了貴族化的外衣。目前個(gè)人視頻應(yīng)用發(fā)展迅猛,通訊的視頻化正在形成,視頻這一貴族化的產(chǎn)品應(yīng)用終于進(jìn)入尋常百姓家,穿上了老百姓的家常衣服,而這一切無(wú)疑得益于互聯(lián)網(wǎng)的迅猛發(fā)展。寬帶網(wǎng)絡(luò)的迅速普及和服務(wù)的不斷提高、完善,一方面為視頻技術(shù)突破提供了一個(gè)良好的應(yīng)用環(huán)境,另一方面也刺激了用戶對(duì)視頻的個(gè)性化需求,基于IP的視頻系統(tǒng)以前所未有的速度占據(jù)了主流市場(chǎng),而且伴隨著國(guó)際互聯(lián)網(wǎng)的成熟,開(kāi)始了它的“平民化”道路?,F(xiàn)在,支持IP的視頻終端越來(lái)越便宜,越來(lái)越多的網(wǎng)民使用攝像頭,網(wǎng)上已經(jīng)有越來(lái)越多的視頻聊天俱樂(lè)部。有數(shù)據(jù)顯示,目前國(guó)內(nèi)40%的QQ用戶通過(guò)網(wǎng)吧溝通,由視頻應(yīng)用所拉動(dòng)的新一輪寬帶網(wǎng)絡(luò)的增長(zhǎng),將促進(jìn)整個(gè)寬帶產(chǎn)業(yè)鏈的良性循環(huán)。視頻通信行業(yè)的收入在科技領(lǐng)域中增長(zhǎng)最為迅速,這種爆炸式的增長(zhǎng)反映了在技術(shù)品質(zhì)上的不斷飛躍,其中包括便捷、實(shí)時(shí)的通信、CD品質(zhì)的音效以及多媒體功能。此外,IP網(wǎng)絡(luò)、基于IP的語(yǔ)音以及基于IP的視頻將極大降低視頻通信的成本??梢哉f(shuō),一個(gè)新的“視頻時(shí)代”已經(jīng)到來(lái)。
首先對(duì)基于PC的視頻通訊系統(tǒng)進(jìn)行分析,目的是設(shè)計(jì)一個(gè)應(yīng)用程序,來(lái)實(shí)現(xiàn)即時(shí)的文字通訊、音/視頻通訊和數(shù)據(jù)傳輸?shù)裙δ?;并且為了安全需求,要?duì)用戶登陸和權(quán)限進(jìn)行設(shè)置,在這里用到了數(shù)據(jù)庫(kù)訪問(wèn)功能。
先設(shè)計(jì)的是用戶登陸部分。這部分工程以ACCESS創(chuàng)建的User.mdb為數(shù)據(jù)源,數(shù)據(jù)源里要包括用戶名和密碼,權(quán)限管理部分,然后在新建的工程里通過(guò) ADO連接到數(shù)據(jù)源。不同的用戶可以擁有不同的權(quán)限使用和管理,可以根據(jù)用戶名來(lái)設(shè)計(jì)此類權(quán)限。登陸后為主程序部分,在主程序里要實(shí)現(xiàn)即時(shí)文字通訊、音/視頻通訊和數(shù)據(jù)傳輸?shù)裙δ?,所設(shè)計(jì)的主程序界面上共五個(gè)按鈕,分別為“視頻音頻調(diào)節(jié)”、“視頻音頻請(qǐng)求”、“文字聊天”、“文件傳輸”、“幫助”以及“退出”。
1.用戶登錄
主要由用戶交互接口、權(quán)限生成模塊、加密解密模塊和數(shù)據(jù)訪問(wèn)模塊4部分組成。這4部分的關(guān)系如圖1所示。
圖1 登錄模塊的結(jié)構(gòu)
當(dāng)用戶開(kāi)始登錄系統(tǒng)時(shí),系統(tǒng)首先顯示用戶登錄界面(用戶交互接口)等待用戶的信息輸入。用戶輸入用戶名和密碼并確認(rèn)后,用戶交互接口從數(shù)據(jù)訪問(wèn)模塊中讀取原始的用戶信息(用戶名、密碼等),并通過(guò)調(diào)用加密解密模塊進(jìn)行加密解密處理后對(duì)密碼進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果用權(quán)限生成模塊生成權(quán)限控制模塊。
2.視頻通訊
“視頻音頻調(diào)節(jié)”和“視頻音頻請(qǐng)求”用來(lái)實(shí)現(xiàn)音/視頻通訊功能,這一部分采用微軟實(shí)時(shí)通信(RTC)API創(chuàng)建接口來(lái)實(shí)現(xiàn)。實(shí)時(shí)通信API為任何基于Microsoft Windows XP的應(yīng)用程序提供了基于個(gè)人計(jì)算機(jī)的通信性能——即時(shí)消息、音視頻通訊,在處理實(shí)時(shí)通信事件和處理實(shí)時(shí)流會(huì)話事件中實(shí)現(xiàn)。用戶先進(jìn)行音、視頻調(diào)節(jié)后,通過(guò)單擊“視頻音頻請(qǐng)求”按鈕來(lái)輸入IP來(lái)請(qǐng)求對(duì)方的應(yīng)答。
3.文字通訊
這一部分也采用微軟實(shí)時(shí)通信(RTC)API創(chuàng)建接口來(lái)實(shí)現(xiàn),屬于處理實(shí)時(shí)流會(huì)話事件。
4.數(shù)據(jù)通訊
“文件傳輸”是用來(lái)實(shí)現(xiàn)兩用戶間進(jìn)行數(shù)據(jù)傳輸?shù)墓δ?。由于這部分采用基于TCP/IP的Winsock編程。單擊此按鈕后會(huì)出現(xiàn)文件傳輸界面,兩用戶間一個(gè)作為服務(wù)器端,另一個(gè)作為用戶端進(jìn)行連接后就可以實(shí)現(xiàn)文件的傳輸功能。端口號(hào)可以在1024以上自由設(shè)定。
5.幫助
對(duì)軟件的使用介紹以便用戶能夠快速掌握軟件的使用方法。
6.退出
圖2 基于PC的視頻通訊系統(tǒng)的框圖
流媒體是指在 Internet中使用流式傳輸技術(shù)的連續(xù)時(shí)基媒體,如音頻、視頻或多媒體文件。這個(gè)詞英文是“StreamingMedia”,中文翻譯為“流媒體”。流媒體把連續(xù)的影像和聲音信息經(jīng)過(guò)特殊的壓縮方式分成一個(gè)個(gè)壓縮包,由視/音頻服務(wù)器向用戶計(jì)算機(jī)連續(xù)、實(shí)時(shí)地傳送。讓用戶一邊下載一邊觀看、收聽(tīng),而不需要等整個(gè)壓縮文件下載到自己的機(jī)器后才可以觀看。該技術(shù)先在用戶端的電腦上創(chuàng)造一個(gè)緩沖區(qū),于播放前預(yù)先下載文件的一小段數(shù)據(jù)作為緩沖,播放程序取用這一小段緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行播放。在播放的同時(shí),多媒體文件的剩余部分在后臺(tái)繼續(xù)下載填充到緩沖區(qū)。這樣,當(dāng)網(wǎng)絡(luò)實(shí)際連線速度小于播放所耗用數(shù)據(jù)的速度時(shí),可以避免播放的中斷,也使得播放品質(zhì)得以維持。所以流媒體最顯著的特征是“邊下載、邊播放”。與傳統(tǒng)多媒體相比,流媒體具有以下優(yōu)點(diǎn):
1.啟動(dòng)延遲大幅度地縮短
用戶不用等待所有內(nèi)容下載到硬盤(pán)上才開(kāi)始瀏覽。一般來(lái)說(shuō),一個(gè) 45分鐘的影片片斷在 1 分鐘以內(nèi)就能夠顯示在客戶端上,而且在播放過(guò)程中一般不會(huì)出現(xiàn)斷續(xù)的情況。另外,全屏播放對(duì)播放速度幾乎無(wú)影響,但快進(jìn)、快倒時(shí)需要時(shí)間等待。
2.對(duì)系統(tǒng)緩存容量的需求大大降低
由于 Internet 是以包傳輸為基礎(chǔ)進(jìn)行斷續(xù)的異步傳輸,數(shù)據(jù)被分解成許多包進(jìn)行傳輸,動(dòng)態(tài)變化的網(wǎng)絡(luò)使各個(gè)包可能選擇不同的路由,故到達(dá)用戶計(jì)算機(jī)的時(shí)間延遲也就不同。所以,在客戶端需要緩存系統(tǒng)來(lái)彌補(bǔ)延遲和抖動(dòng)的影響以及保證數(shù)據(jù)包傳輸順序的正確,使媒體數(shù)據(jù)能連續(xù)輸出,不會(huì)因網(wǎng)絡(luò)暫時(shí)擁堵而使播放出現(xiàn)停頓。雖然流式傳輸仍需要緩存,但由于不需要把多媒體文件所有的動(dòng)畫(huà)、視/音頻內(nèi)容都下載到緩存中,因此,對(duì)緩存的要求大大降低了。
3.流式傳輸?shù)膶?shí)現(xiàn)有特定的實(shí)時(shí)傳輸協(xié)議
采用 RTSP 等實(shí)時(shí)傳輸協(xié)議,更加適合動(dòng)畫(huà)、視/音頻在網(wǎng)上的流式實(shí)時(shí)傳輸。流媒體的應(yīng)用領(lǐng)域十分廣泛。
簡(jiǎn)單地說(shuō),就是通過(guò)采用高效的壓縮算法,在降低文件大小的同時(shí)伴隨質(zhì)量的損失,讓原有的龐大的多媒體數(shù)據(jù)適合流式傳輸。然后通過(guò)架設(shè)流媒體服務(wù)器,修改 MIME 標(biāo)識(shí),利用各種實(shí)時(shí)協(xié)議傳輸流數(shù)據(jù)。流媒體實(shí)現(xiàn)原理圖如圖 3所示。
圖3 流媒體實(shí)現(xiàn)原理
為實(shí)時(shí)視頻通訊的界面,以下為界面中相應(yīng)的控制:
ID 號(hào) 控件 標(biāo)題 作用IDC_SILENCEL Button 靜音 揚(yáng)聲器靜音功能IDC_SILENCEM Button 靜音 麥克風(fēng)靜音功能IDC_DISCONECTION Button 斷開(kāi) 中斷當(dāng)前的視頻 通訊窗口IDC_ADJUSTL slider 調(diào)節(jié)揚(yáng)聲器大小IDC_ADJUSTM slider 調(diào)節(jié)麥克風(fēng)大小
1.視頻通訊中實(shí)時(shí)流媒體事件的處理
在建立視頻通訊后,實(shí)時(shí)流傳輸之前需要先處理流媒體事件來(lái)取得流媒體的類型,然后取得事件類型和原因,再把消息發(fā)送到會(huì)話窗口。此工程中可以使用 get_MediaType()方法接收用于音頻、視頻、T120和實(shí)時(shí)轉(zhuǎn)送協(xié)議(RTP)事件的消息,如:
2.視頻通訊中的實(shí)時(shí)流強(qiáng)度控制
在視頻通訊流媒體傳輸過(guò)程中強(qiáng)度事件是當(dāng)揚(yáng)聲器或者麥克風(fēng)設(shè)備的強(qiáng)度等級(jí)改變的時(shí)候發(fā)生的事件。應(yīng)用程序可以使用get_Direction()函數(shù)獲得改變的音頻設(shè)備。當(dāng)所用的設(shè)備被確定之后,應(yīng)用程序可以取得當(dāng)前的設(shè)備屬性和處理改變。在視頻進(jìn)行的時(shí)候可以通過(guò)控件來(lái)改變音量的大小。程序控制如下:
3.視頻通訊中實(shí)時(shí)流客戶事件
流媒體傳輸中的客戶事件類型可能包括關(guān)閉連接或者閑置狀態(tài)事件等。下面的程序代碼則說(shuō)明了客戶事件是如何被處理的:
下表為文字聊天中的各功能的詳細(xì)控件說(shuō)明:
ID 號(hào) 控件 標(biāo)題 作用IDC_RECORD Button 聊天記錄 顯示聊天內(nèi)容記錄IDC_CLEAR Button 清空 清空聊天內(nèi)容IDC_SEND Button 發(fā)送 將聊天信息發(fā)送出去IDC_END Button 結(jié)束 關(guān)閉當(dāng)前文字聊天窗口IDC_WINDOW Edit Box 顯示當(dāng)前聊天內(nèi)容
1.文字聊天中的實(shí)時(shí)流媒體傳輸
在兩個(gè)用戶間建立了文字聊天之后,也就是建立了實(shí)時(shí)流媒體傳輸。如果要處理各種可能的流媒體事件過(guò)程為首先取得流媒體類型,然后取得事件類型和原因,然后把消息發(fā)送到會(huì)話窗口。在此工程中可以使用get_MediaType()方法來(lái)接收用于音/視頻、T120和實(shí)時(shí)轉(zhuǎn)送協(xié)議(RTP)事件的消息,類似如下:
2.文字聊天中的實(shí)時(shí)流狀態(tài)控制
在文字聊天中流傳輸會(huì)話狀態(tài)的改變遵循和其他實(shí)時(shí)通信事件一樣的過(guò)程。會(huì)話狀態(tài)改變可向客戶端通知一條即時(shí)消息。如下面程序所示:}
3.文字聊天中流媒體傳輸客戶事件
在流媒體傳輸中的來(lái)自于客戶端的客戶事件類型可能包括類似關(guān)閉連接或者閑置狀態(tài)等事件。下面的程序代碼則說(shuō)明了客戶事件是如何被處理的:
本文介紹了基于PC的視頻通訊系統(tǒng)的分析設(shè)計(jì),在對(duì)相關(guān)資料進(jìn)行收集調(diào)研后,對(duì)系統(tǒng)的組成原理和相關(guān)功能進(jìn)行了分析。并利用VC++設(shè)計(jì)了主程序及相關(guān)的各子系統(tǒng),包括音/視頻通訊子系統(tǒng)、文件傳輸子系統(tǒng)等。還對(duì)網(wǎng)絡(luò)中的流媒體技術(shù)進(jìn)行詳細(xì)的研究分析,對(duì)流媒體技術(shù)、流媒體傳輸協(xié)議、流媒體中應(yīng)用的編解碼進(jìn)行了介紹。所設(shè)計(jì)的基于PC的視頻通訊系統(tǒng)具有操作簡(jiǎn)單易懂、界面簡(jiǎn)潔等優(yōu)點(diǎn)。一臺(tái)基本配置的個(gè)人PC即可利用本系統(tǒng)實(shí)現(xiàn)網(wǎng)上多人間的視頻通訊等系列功能。寬帶網(wǎng)絡(luò)的飛速發(fā)展為視頻技術(shù)發(fā)展提供了一個(gè)良好的環(huán)境,同時(shí)網(wǎng)絡(luò)用戶對(duì)視頻的需求性不斷增強(qiáng),越來(lái)越多的視頻通訊技術(shù)不斷成熟發(fā)展并為人們服務(wù),可以預(yù)見(jiàn)視頻通訊有著廣泛的發(fā)展?jié)摿Α?/p>
[1] 蒲在毅,鐘樂(lè)海.流媒體傳輸控制的性能評(píng)價(jià)及其優(yōu)化[J].長(zhǎng)春師范學(xué)院學(xué)報(bào),2006(25).
[2] 范俊輝,田斌,陳強(qiáng).流媒體實(shí)時(shí)傳輸技術(shù)的研究[J].電子科技,2005(195).
TN919.8
A
1008-1151(2011)03-0016-03
2010-12-26
楊銘輝(1979-),男,廣東茂名人,廣東省國(guó)防工業(yè)職工大學(xué)助教,助理工程師。