999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于P2P結(jié)構(gòu)的即時通信系統(tǒng)的設(shè)計與實現(xiàn)

2013-08-10 10:21:34張玨
電子設(shè)計工程 2013年6期
關(guān)鍵詞:交流文本設(shè)備

張玨

(榆林學(xué)院 信息學(xué)院,陜西 榆林 719200)

隨著網(wǎng)絡(luò)帶寬的不斷增長,人們的通訊已經(jīng)開始從以文本為主導(dǎo)輔助以少量的音頻和視頻信息的模式逐漸轉(zhuǎn)向以給人們更為豐富信息的音頻為主導(dǎo)并輔助以少量的文本和視頻信息的模式。在一些特定的場合單純的視頻通訊的需求亦隨著網(wǎng)絡(luò)帶寬的增長逐漸浮出水面。MSN和QQ無法滿足以上需求,市場上少量相關(guān)產(chǎn)品亦無法滿足網(wǎng)絡(luò)帶寬增長所引發(fā)的層出不窮的需求。即時通信支撐系統(tǒng)是在以上需求驅(qū)動之下構(gòu)思的一個包裝了多種基本應(yīng)用的網(wǎng)絡(luò)應(yīng)用軟件支撐平臺,其中包括視頻采集、視頻壓縮、視頻傳輸、音頻采集、音頻壓縮、音頻傳輸、文本傳輸?shù)取_@些基本應(yīng)用具有簡單的上層接口,使得基于此系統(tǒng)的網(wǎng)絡(luò)應(yīng)用軟件開發(fā)人員只需了解它們的借口而不必理解其內(nèi)部邏輯即可開發(fā)出各種功能強大的網(wǎng)絡(luò)應(yīng)用軟件,可以極大的加速網(wǎng)絡(luò)應(yīng)用軟件的開發(fā)速度。

1 總體設(shè)計

即時通信系統(tǒng)主要實現(xiàn)以下功能:

1)在局域網(wǎng)中兩臺或者兩臺以上的主機可以輸入對方的IP地址請求連接。

2)系統(tǒng)啟動視頻,音頻或文本傳輸設(shè)備。

3)遠端可以隨時終止或者開啟本地視頻,音頻等其它設(shè)備。

文本交流功能:文本交流是實現(xiàn)多種媒體交互的基本功能部分。本系統(tǒng)實現(xiàn)了局域網(wǎng)P2P文本聊天功能,主要包括:在信息欄輸入交談的內(nèi)容,按發(fā)送鍵發(fā)送、同時能在聊天記錄上接收到對方的聊天內(nèi)容。

語音交流功能:語音交流是多媒體會議最重要的部分,往往是最直接和最多表達信息量的一種方式。當用戶雙方接受請求,建立連接后,就可進入語音交流。通過菜單欄上的“音頻”菜單可以控制音量,屏蔽發(fā)送方或接收方中任意一方的消息。

視頻交流功能:視頻交流能使多媒體交互更具人性化,通過圖像的顯示,使人們之間的交流更加親切直觀。當下載本軟件連接成功后,就可以看到對方的視頻圖像。通過菜單欄上的“顯示控制”菜單可以屏蔽發(fā)送方或接收方中任意一方的視頻窗口。

圖1 音頻流程Fig.1 Audio process diagram

圖2 視頻流程Fig.2 Video process diagram

2 系統(tǒng)需求分析

啟動服務(wù)器,和連接用戶用例,活動圖如圖3所示。

啟動服務(wù)器,用戶點擊“文件”下拉菜單中“連接”選項,如果硬件條件不具備,系統(tǒng)拒絕,那么重新啟動系統(tǒng),修正硬件,如果硬件滿足運行條件,系統(tǒng)接受請求,出現(xiàn)IP地址對話框,用戶在其中輸入正確IP地址,對方“拒絕”,重新選擇連接對象,重新輸入IP地址,對方“接受”,那么雙方鏈接成功,雙方進入交流主界面,其他功能正常啟動。

3 系統(tǒng)的設(shè)計與實現(xiàn)

主要論述了即時通信系統(tǒng)錄放音功能的設(shè)計與實現(xiàn)、采集功能的設(shè)計實現(xiàn),以及發(fā)送接收系統(tǒng)的設(shè)計與實現(xiàn)。本系統(tǒng)是基于局域網(wǎng)的P2P網(wǎng)絡(luò)結(jié)構(gòu)的即時通信系統(tǒng),所以涉及到的通信雙方,不管是請求方或是被請求方,都是對等的,權(quán)限都是相同的,所有系統(tǒng)的使用者,都是普通用戶。所以系統(tǒng)只有兩個角色,即兩個類,一個普通用戶類,一個系統(tǒng)類。

圖3 系統(tǒng)活動圖Fig.3 System active diagram

一個類是系統(tǒng)資源,用戶類主要屬性:角色碼、用戶名、所在的IP地址。用戶操作主要有:連接服務(wù)器、視頻交流、文本交流、音頻交流。另一個類是系統(tǒng)資源類,為系統(tǒng)提供功能,主要有3個子類:音頻、視頻、文本類。音頻類主要操作為音量控制、發(fā)送、接收、播放、錄音。視頻類的主要操作有、本地視頻窗口、遠程視頻窗口。文本類,主要操作是文本交流。

3.1 語音采集與回放系統(tǒng)設(shè)計

音頻采集:打開錄音設(shè)備,采集發(fā)言者語音信息,是windows通過高級音頻函數(shù)、媒體控制接口MCI設(shè)備驅(qū)動程序,低級音頻函數(shù)MIDI Mapper、低級音頻設(shè)備驅(qū)動,以及DirectSound提供了音頻服務(wù),可以從聲卡獲取音頻流。在本系統(tǒng)中,采用低層音頻服務(wù)來實現(xiàn)。

低層音頻服務(wù)主要包括查詢音頻設(shè)備、打開/關(guān)閉音頻設(shè)備驅(qū)動程序、音頻格式的設(shè)置、分配/準備音頻緩沖區(qū)以及管理音頻緩沖區(qū)等。

錄制波形音頻的流程圖如下:

1)調(diào)用函數(shù)UINT WaveInGetNumDevs:查詢系統(tǒng)是否具備錄制音頻的設(shè)備,函數(shù)的返回值為可進行音頻錄制的設(shè)備數(shù)量。

圖4 系統(tǒng)類圖Fig.4 System class diagram

由于多媒體計算機之間的音頻設(shè)備的性能差別很大,應(yīng)用程序根據(jù)不同系統(tǒng)的音頻硬件采用不同的方法。

2)調(diào)用函數(shù)WaveInGetDevCaps():檢查音頻輸入設(shè)備的性能,以確定設(shè)備錄制所支持的標準音頻的格式。

如果需要錄制的是非標準格式,則需要通過調(diào)用waveInOpen函數(shù),并設(shè)置打開設(shè)備的標志為WAVE_FORMAT_QUERY,查詢設(shè)備是否支持非標準波形格式。非標準波形格式WAVEFORMATEX說明。

3)waveInOpen函數(shù):打開波形輸入設(shè)備。設(shè)備打開成功后,phwi將指向音頻輸入設(shè)備句柄HWAVRIN,該句柄是后續(xù)對設(shè)備進行操作的對象。

4)waveInPrepareHeader:打開音頻輸入設(shè)備,獲取句柄后,調(diào)用函數(shù)生成WAVE音頻信息頭結(jié)構(gòu)。

5)waveInAddBuffer函數(shù):將波形輸入設(shè)備獲得數(shù)據(jù)寫入WAVEHDR。

6)waveStart函數(shù):開始錄音。

7)錄制完成后調(diào)用waceInUnPrepareHeader:清除波形音頻數(shù)據(jù)結(jié)構(gòu)WAVEHDR,釋放分配的資源。

8)waveInClose:關(guān)閉波形音頻輸入設(shè)備。

需要注意的是,如果終止錄制,丟棄音頻數(shù)據(jù)塊,不能用waveInStart重新錄制。要重新錄制,必須重新準備數(shù)據(jù)塊,調(diào)用waveInReset來實現(xiàn),再用waveInStart重新錄制。

3.2 語音壓縮和解壓縮的系統(tǒng)設(shè)計

本系統(tǒng)是在局域網(wǎng)的中進行傳輸,而且由時間等各方面的限制沒有實現(xiàn)語音壓縮,只是直接將采集到的語音放到緩沖區(qū)里,然后發(fā)送,最后接收方接收,但是因為沒有對語音數(shù)據(jù)進行壓縮和解壓縮,數(shù)據(jù)質(zhì)量良好。

3.3 語音發(fā)送和接收的系統(tǒng)設(shè)計

系統(tǒng)利用socket中的sendto語句發(fā)送數(shù)據(jù)給接收發(fā),接受方利用socket中的receive語句接收數(shù)據(jù),發(fā)送時是發(fā)送緩沖區(qū)中的數(shù)據(jù),所以接收時需要創(chuàng)建接收緩沖區(qū)隊列,進行接收,然后在打開放音設(shè)備,使聲音傳到人的耳朵,由于UDP協(xié)議是無連接的,每個分組都攜帶完整的目的地址,各分組在系統(tǒng)中獨立發(fā)送。它不能保證分組的先后順序,不進行分組出錯的恢復(fù)和重傳,因此不能保證傳輸?shù)目煽啃裕牵峁└咚俾实臄?shù)據(jù)報服務(wù)。由于語音聊天注重數(shù)據(jù)的實時性,所以采用UDP協(xié)議,可靠性由網(wǎng)絡(luò)特征來保證。實際的設(shè)計中,socket接口可以通過一個socket連接指定協(xié)議的類型,聲音數(shù)據(jù)的全雙工通訊由聲音數(shù)據(jù)的發(fā)送和接收模塊實現(xiàn)。系統(tǒng)是端對端的語音聊天功能,兩個短點之間是對等關(guān)系,對于任何一端來說,既是有客戶機的功能,同時也具備服務(wù)器的特性。語音聊天進行的是全雙工的數(shù)據(jù)通訊,對于實際通話的主叫端和客戶端都要發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。從建立socket到數(shù)據(jù)的發(fā)送直至數(shù)據(jù)的接收主要有以下幾個步驟:

1)建立發(fā)送數(shù)據(jù)的soul和用于接收數(shù)據(jù)的ssine。

2)在開始時主叫端和被叫端都通過調(diào)用BIND()函數(shù)讓soul和ssin和本地地址(包括主機地址和協(xié)議端口)聯(lián)系起來,對協(xié)議端口進行偵聽,以便接收對它服務(wù)請求產(chǎn)生的數(shù)據(jù)報應(yīng)答。

3)為了讓系統(tǒng)記住發(fā)送的目的地址(即被叫端地址),在開始時,主叫端先調(diào)用CON-NECT()函數(shù)向被叫端發(fā)出請求,然后進入發(fā)送和接收聲音數(shù)據(jù)的消息循環(huán)。

4)被叫端通過RECVFROMO函數(shù)向主叫端發(fā)出連接請求,并進入發(fā)送和接收聲音數(shù)據(jù)的消息循環(huán)。

5)在兩端建立了通訊鏈路后,就可以進行數(shù)據(jù)的雙向多次傳輸。聲音數(shù)據(jù)的發(fā)送主要有一個監(jiān)聽線程和sout完成,一旦監(jiān)測到有聲音信號的出現(xiàn),就調(diào)用數(shù)據(jù)壓縮模塊對要發(fā)送的聲音數(shù)據(jù)進行壓縮處理,然后調(diào)用SEND()函數(shù)把數(shù)據(jù)發(fā)送到另一端。數(shù)據(jù)的接收方同樣由一個監(jiān)聽線程和ssin完成,一旦監(jiān)測到有聲音數(shù)據(jù)到達,就調(diào)用RECVO函數(shù)進行接收,并把接收到的數(shù)據(jù)放入排斥區(qū),交與聲音播放模塊處理。這樣完成了一次數(shù)據(jù)的傳輸和接收。

6)不斷重復(fù)5)的過程,直至通話結(jié)束。

主要是循環(huán)地操作nReceive和nSend指針。首先發(fā)送(接收)聲音塊的長度,然后發(fā)送(接收)聲音內(nèi)容。注意:拿CSocket::Send(buffer,count)為例,其返回值(發(fā)送出去的字結(jié)數(shù))只是1到count之間的某值,所以要添加檢測機制,否則將出現(xiàn)錯誤,這也是socket編程必須注意的。文中是用一個循環(huán),直到發(fā)送出去的字節(jié)總數(shù)等于“塊”的長度才發(fā)送第二個數(shù)據(jù)塊的信息。

3.4 視頻捕獲的系統(tǒng)設(shè)計

視頻模塊作為視頻會議系統(tǒng)的一個可選的組件,強化多用戶之間的協(xié)同工作。用戶可以根據(jù)協(xié)同的需要,設(shè)備狀況或網(wǎng)絡(luò)通信的現(xiàn)狀,選擇是否進行視頻交互或調(diào)整視頻交互的質(zhì)量。

在本系統(tǒng)中,視頻模塊主要以一定幀率捕獲視頻數(shù)據(jù),并壓縮發(fā)送視頻數(shù)據(jù)給其他用戶,同時接收其他客戶的視頻信號,解壓縮回放視頻信號。本地視頻直接顯示并進行監(jiān)控。它主要以下部分組成:

1)視頻捕獲:生成視頻捕獲窗口,捕獲視頻負責(zé)。

2)視頻發(fā)送緩沖區(qū)管理:捕獲視頻幀加入視頻發(fā)送緩沖池。

3)視頻壓縮:對視頻幀壓縮,以獲得低通信量。

4)發(fā)送視頻數(shù)據(jù):從視頻發(fā)送緩沖池取出視頻幀在網(wǎng)絡(luò)信道上傳播。

5)接收視頻數(shù)據(jù):從網(wǎng)絡(luò)信道接收壓縮的視頻幀。

6)視頻接收緩沖區(qū)管理:接收的視頻幀加入視頻接收緩沖池。

7)視頻解壓縮:從視頻幀接收緩沖池中取出視頻幀解壓縮。

8)視頻回放:將視頻幀在本地回放。

由于實時傳輸?shù)男枰K需要在時間上并行工作,因此軟件的視頻部分由多個線程組成。線程間用事件對象進行同步,而共享數(shù)據(jù)區(qū)用臨界區(qū)對象和信號量對象進行同步。

視頻數(shù)據(jù)的實時采集主要是通過調(diào)用AVICap32.dll(avicap32.dll是Windows API應(yīng)用程序接口相關(guān)模塊,用于對攝像頭和其它視頻硬件進行AVI電影和視頻的截取)創(chuàng)建AVICap窗口類,由AVICap窗口類中的消息、宏函數(shù)、結(jié)構(gòu)以及回調(diào)函數(shù)來完成。AVICap在捕獲視頻方面具有明顯的優(yōu)勢,它能直接訪問視頻緩沖區(qū),不需要生成中間文件,實時性很高,它也可將數(shù)字視頻保存到事先建好的文件中。實際應(yīng)用表明,通過這種方法,提高了視頻采集的效果和程序運行的效率,同時也減少了對硬件的依賴性,提高了程序的兼容性和移植性。

VFW的視頻采集功能主要包括捕獲視頻流至AVI文件(capCaptureSequence)、捕獲視頻流至緩存(capCaptureSequence Nofile)、捕獲視頻流至 AVI文件(capCaptureSingleFrame)、本地預(yù)覽(capPreview/capOverlay)和捕獲單幀預(yù)覽(capGrabFrame/capGrabFrameNoStop)等。VFW還提供了回調(diào)函數(shù),允許應(yīng)用程序精確控制視頻流的捕獲、檢測錯誤、監(jiān)控狀態(tài)變化 ,以及在捕獲兩幀數(shù)據(jù)的空隙和每捕獲新幀時對實時數(shù)據(jù)進行處理。

4 實驗應(yīng)用

對于本系統(tǒng),通過BoundsChecke軟件測試,可證明程序代碼在運行是無異常,可正常執(zhí)行。在進行測試時,首先運行在開始實施測試之前設(shè)計好測試用例,可以避免盲目測試并提高測試效率。

經(jīng)過多次測試表明,該即時通信系統(tǒng)的各個功能都基本達到了實用的要求。“文件”下拉菜單下的“退出”選項可以隨時退出系統(tǒng),“連接”選項,可以隨時選擇連接對象,客戶端能夠及時發(fā)送服務(wù)請求或視頻、音頻與文件請求,以及接收各種請求結(jié)果。在各種負荷下能正常工作,客戶端可以及時響應(yīng)和處理客戶端的各種請求,沒有出現(xiàn)異常情況,具備一定的健壯性。局域網(wǎng)測試為用戶觀看到的視頻監(jiān)控畫面。通過系統(tǒng)測試,客戶端收到的視頻圖像播放幀率在24~25幀之間波動,比服務(wù)器端滯后大約1~1.5 s,傳輸圖像較清晰,沒有出現(xiàn)馬賽克情況。音頻通信效果清楚,沒有出現(xiàn)斷音或爆音的情況,延時大約120~150 ms,能夠保證實時音頻通信。

圖5 系統(tǒng)測試圖Fig.5 System test diagram

5 結(jié) 論

該測試系統(tǒng)已用于測試用例進行測試,實際應(yīng)用表明該測試系統(tǒng)具有測試準確、穩(wěn)定可靠、人機界面友好等特點,達到了設(shè)計要求。

[1]楊云.P2P音視頻通訊系統(tǒng)的研究與實現(xiàn)[D].北京:中國地址大學(xué),2006.

[2]伍文華.基于H.263的視頻編解碼器的研究與實現(xiàn)[D].武漢:華中科技大學(xué),2007.

[3]侯俊杰.深入淺出MFC[M].2版.武漢:華中科技大學(xué)出版社,2001.

[4]王豐錦,邵新宇.基于SOCKET和多線程的應(yīng)用程序間通訊技術(shù)的研究[J].計算機應(yīng)用,2000(6):65-67.WANG Feng-jing,SHAO Xin-yu.SOCKET and multithreaded applicationscommunication technology-based research[J].Computer Application,2000(6):65-67.

[5]譚枝梅.基于TCP/IP網(wǎng)絡(luò)的嵌入式平臺上的視頻會議系統(tǒng)[D].西安:西北工業(yè)大學(xué),2007.

[6]趙純.數(shù)字視頻采集壓縮系統(tǒng)實現(xiàn)[D].沈陽:東北大學(xué),2008.

[7]榮治國,陳松喬.實時音頻采集、播放技術(shù)的研究[J].計算機應(yīng)用研究報,2003(1):134-135.RONG Zhi-guo,CHEN Song-qiao.Real-time audio capture[J].Applications Reported,2003(1):134-135.

猜你喜歡
交流文本設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
如此交流,太暖!
科教新報(2022年12期)2022-05-23 06:34:16
加強交流溝通 相互學(xué)習(xí)借鑒
周櫻 兩岸交流需要更多“對畫”
海峽姐妹(2020年8期)2020-08-25 09:30:18
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設(shè)備運行維護探討
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 在线免费看黄的网站| 国产男人天堂| 亚洲国产在一区二区三区| 97久久超碰极品视觉盛宴| 亚洲人成网18禁| 亚洲午夜片| 欧洲欧美人成免费全部视频| 午夜视频免费试看| 日韩精品免费在线视频| 久热中文字幕在线| 欧美区一区| 亚洲精品无码久久毛片波多野吉| 国内精品久久人妻无码大片高| 国产va在线观看| 日本道综合一本久久久88| 亚欧乱色视频网站大全| 免费国产黄线在线观看| 日韩国产一区二区三区无码| 美女潮喷出白浆在线观看视频| 欧美日韩中文字幕二区三区| 日韩无码真实干出血视频| 国产精品专区第一页在线观看| 天天色天天操综合网| 青青草原国产一区二区| 欧美中文字幕第一页线路一| 国产永久免费视频m3u8| 丰满人妻被猛烈进入无码| 国产99视频在线| 欧美一级视频免费| 三级视频中文字幕| 麻豆a级片| 亚洲综合一区国产精品| 手机精品福利在线观看| 啦啦啦网站在线观看a毛片| 亚洲高清在线播放| 99国产在线视频| 成人午夜天| 国产91在线|中文| 欧美午夜久久| 国产精品9| 国产精品乱偷免费视频| 亚洲欧美日韩另类| 国产小视频a在线观看| 老熟妇喷水一区二区三区| 国产微拍精品| 亚洲国产精品日韩av专区| 亚洲国产成人精品无码区性色| 亚洲性色永久网址| 中文字幕天无码久久精品视频免费 | 国产精品自在在线午夜| 26uuu国产精品视频| 亚洲精品爱草草视频在线| 久久香蕉国产线看精品| 久久一本精品久久久ー99| 99伊人精品| 免费毛片全部不收费的| 日韩av高清无码一区二区三区| 中文字幕 欧美日韩| 亚洲日韩精品无码专区| 中文字幕在线看视频一区二区三区| 伊人中文网| 国产黄色爱视频| 亚洲国产成人麻豆精品| 国外欧美一区另类中文字幕| 91小视频在线观看免费版高清| 麻豆a级片| 久久婷婷国产综合尤物精品| 高清久久精品亚洲日韩Av| 亚洲精品福利视频| 女人18毛片一级毛片在线 | 国产欧美在线视频免费| 亚洲人成影院午夜网站| 欧美在线天堂| 福利视频99| 亚洲成aⅴ人片在线影院八| 18禁不卡免费网站| 国产成年无码AⅤ片在线| 亚洲高清无在码在线无弹窗| 日本免费a视频| 国产精品久久久久久久久| 亚洲一级毛片| 亚洲天堂久久新|