freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

視頻傳輸技術及實現(xiàn)畢業(yè)論文-資料下載頁

2025-06-26 16:57本頁面
  

【正文】 //為回放設備準備內存塊mmResult = ::waveOutPrepareHeader(m_hPlay, lpHdr, sizeof(WAVEHDR))。//音頻數(shù)據(jù)的播放:mmResult = ::waveOutWrite(m_hPlay, lpHdr, sizeof(WAVEHDR))。//清除由waveOutPrepareHeader函數(shù)實現(xiàn)的準備::waveOutUnprepareHeader(m_hPlay, lpHdr, sizeof(WAVEHDR))。//關閉指定的音頻輸出設備:::waveOutClose(m_hPlay)。 語音視頻數(shù)據(jù)的編解碼為了讓語音視頻數(shù)據(jù)能夠更加流暢的在網(wǎng)絡上傳輸,以及保證兩個終端之間的順利進行語音視頻聊天,需要在發(fā)送之前進行編碼壓縮,當對方接收數(shù)據(jù)后進行解碼后播放,本程序將使用H263對視頻數(shù)據(jù)的編解碼,對音頻數(shù)據(jù)使用G729a進行編解碼。 視頻數(shù)據(jù)的編解碼實現(xiàn)在VC++實現(xiàn)H263的編解碼功能,我們需要在工程中添加兩個文件包:Encoder和Decoder,并且將Encoder/和Decoder/添加到預編譯頭文件中:include Encoder/include Decoder/我們需要一個回調函數(shù)void OwnWriteFunction(int byte),它是負責在視頻編碼時調用:一個字節(jié)一個字節(jié)的調用void OwnWriteFunction(int byte) { if(countcbuffer_size) cdata[count]=(unsigned char)byte。 count++。}初始化H263編解碼時需要完成的操作有: if(vidcapInitialize()) { thism_bmpinfo=amp。vidcapm_bmpinfo。 isVideo=TRUE。 // 初始化視頻壓縮函數(shù) // RGB向YUV轉換 InitLookupTable()。 // 初始化編碼操作 = CPARAM_QCIF。 InitH263Encoder(amp。cparams)。 // 調用回調函數(shù) WriteByteFunction = OwnWriteFunction。 } InitH263Decoder()。在對視頻數(shù)據(jù)進行編碼必須使用YUV格式,所以要將圖片格式從RGB轉到YUV格式: ConvertRGB2YUV(IMAGE_WIDTH,IMAGE_HEIGHT,data,yuv)?,F(xiàn)在就可以進行數(shù)據(jù)編碼: =CPARAM_QCIF。 = CPARAM_INTRA。 = 8。 =yuv。 // YUV格式的數(shù)據(jù)格式 CompressFrame(amp。cparams, amp。bits)。編碼后的數(shù)據(jù)放在回調函數(shù)的cdata中。解碼操作直接調用函數(shù):retvalue=DepressFrame(data,size,rgbdata,buffersize)。完成。退出編解碼器:ExitH263Encoder(amp。cparams)。ExitH263Decoder()。 音頻數(shù)據(jù)的編解碼實現(xiàn) 在VC++中實現(xiàn)G729a編解碼的功能。,并成功的編解碼,需要使用以下代碼來讓函數(shù)以C的命名規(guī)則調用:extern C void va_g729a_init_encoder()。extern C void va_g729a_encoder(short *speech, unsigned char *bitstream)。extern C void va_g729a_init_decoder()。extern C void va_g729a_decoder(unsigned char *bitstream, short *synth_short, int bfi)。對G729a編解碼器初始化: va_g729a_init_encoder()。 va_g729a_init_decoder()。//壓縮音頻幀BOOL CCodecMgr::EncodeAudioData(char *pin,int len,char* pout,int* lenr){ BOOL bRet=FALSE。 if(!pin||len!=SIZE_AUDIO_FRAME||!pout) goto RET。 va_g729a_encoder((short*)pin,(BYTE*)pout)。 va_g729a_encoder((short*)(pin+160),(BYTE*)pout+10)。 va_g729a_encoder((short*)(pin+320),(BYTE*)pout+20)。 va_g729a_encoder((short*)(pin+480),(BYTE*)pout+30)。 va_g729a_encoder((short*)(pin+640),(BYTE*)pout+40)。 va_g729a_encoder((short*)(pin+800),(BYTE*)pout+50)。 if(lenr) *lenr=SIZE_AUDIO_PACKED。 bRet=TRUE。RET: return bRet。}//解壓縮音頻幀BOOL CCodecMgr::DecodeAudioData(char *pin,int len,char* pout,int* lenr){ BOOL bRet=FALSE。 if(!pin||len!=SIZE_AUDIO_PACKED||!pout) goto RET。 //decode the audio frames va_g729a_decoder((BYTE*)pin,(short*)(pout),0)。 va_g729a_decoder((BYTE*)pin+10,(short*)(pout+160),0)。 va_g729a_decoder((BYTE*)pin+20,(short*)(pout+320),0)。 va_g729a_decoder((BYTE*)pin+30,(short*)(pout+480),0)。 va_g729a_decoder((BYTE*)pin+40,(short*)(pout+640),0)。 va_g729a_decoder((BYTE*)pin+50,(short*)(pout+800),0)。 if(lenr) *lenr=SIZE_AUDIO_FRAME。 bRet=TRUE。RET: return bRet。 }5 軟件測試運行終端如果沒攝像頭可以使用,則出現(xiàn)如下界面:如果能正常使用攝像頭,則直接進入主界面: 點擊Conference—Connect,顯示Connect界面,如上圖所示,在Remote Host編輯框中輸入對方IP地址,回車或者點擊Connect按鈕,即可成功連接到遠方。當兩個終端進行連接后就可以進行語音視頻通信了,本程序是可以在本機通過回環(huán)地址進行連接通信的。在本機連接通信成功之后,在初始默認配置下是可以看見本地以及遠方視頻,也可以聽見遠方的音頻: 經(jīng)測試,文本聊天也可以順利進行。在菜單欄共有五個選項:Conference、View、Audio、Help。如上圖所示。其中Conference中的二級選項有:Connect、Disconnect、Exit My三個,作用分別是進行請求連接,停止連接請求,以及退出軟件程序。在View選項中有二級選項:Local Video Screen 和Remote Video Screen 兩個,默認情況下是都被選中,表示本地視頻和遠方視頻都要實時顯示:當取消選中狀態(tài)時,則表示取消本地或遠方的視頻顯示,而只會停留在最后那個時候:同樣的在Audio選項中有二級選項Volume Control、Send、Receive三個,點擊Volume Control顯示錄音音量和播放音量調節(jié)界面:Send 和Receive分別表示發(fā)送和接收音頻數(shù)據(jù),默認設置是選中狀態(tài),即同意發(fā)送和接收音頻數(shù)據(jù),取消時對應有相應的響應。在Video中有二級菜單:Send 和Receive,表示發(fā)送和接收視頻數(shù)據(jù),默認情況下是選中狀態(tài),即同意發(fā)送和接收視頻數(shù)據(jù),取消選中狀態(tài)則對應有相應的響應:結 論本文的主要工作是研究和設計基于WinSocket的語音視頻傳輸系統(tǒng),提出視頻圖像壓縮和傳輸?shù)慕K端程序,工作總結如下:(1)系統(tǒng)整體模型,是采用UDP通信模式,在兩個終端上均可以負責語音視頻的采集,視頻壓縮,數(shù)據(jù)的發(fā)送功能。(2)利用VFW可以負責裝有攝像頭的終端進行視頻捕捉,視頻的播放使用DrawDib API完成,利用WaveX完成音頻的錄取和播放功能,(3)利用Winsocket技術實現(xiàn)語音視頻數(shù)據(jù)接收播放功能,完成接收語音視頻數(shù)據(jù),獨立運行在終端上,它接受語音視頻進行實時播放顯示。(4)系統(tǒng)的設計遵循了軟件開發(fā)的全過程,在系統(tǒng)的設計過程中運用VC進行面向對象的設計,對面向對象程序設計有更深的理解。由于時間和能力的有限,系統(tǒng)還不完善,在語音視頻傳輸方面,包丟失會降低接收端的播放質量,需要改進。致 謝隨著本文的完成,我的本科生學生生涯將要告一段落了。在這四年中,很多的老師、長輩、同學和朋友給了我有益的教誨和熱心的幫助。這些日常生活中的點滴積累到今天才使得我能完成本文,在此我對他們表示衷心的感謝。首先,謹向尊敬的呂建勇老師致以崇高的敬意和誠摯的謝意。本次論文寫作從開題、搜集資料、起草到最后的成文,期間呂老師在程序編寫、論文寫作等方面給了我極大的幫助、鼓勵和關懷。呂老師嚴謹求實、認真負責、以身作則和淵博的學識使我收益匪淺,本人的論文能夠順利完成無不凝聚著呂老師的心血。在此再次向呂老師對本人的論文知道表示衷心的感謝!也同樣感謝在我學習期間所有給予我支持和幫助的各位老師,他們在專業(yè)方面給了我很多指導和幫助。他們兢兢業(yè)業(yè)、認真執(zhí)著的教學態(tài)度使我獲益匪淺。沒有他們的長期的教導,完成本文無從談起。謝謝各位老師、長輩、同學、朋友的熱心幫助!參 考 文 獻[1] 趙曉群. 數(shù)字語音編碼[M]. 北京:機械工業(yè)出版社,2007.[2] 王春海. 網(wǎng)絡視頻技術及應用標準教程[M]. 北京:人民郵電出版社,2002.[3] 胡澤,趙新海. 流媒體技術與應用[M]. 北京:中國廣播電視出版社,2006.[4] 詹青龍. 網(wǎng)絡視頻技術及應用[M]. 西安:西安電子科技大學出版社,2004.[5] 白煜,辛向暉. Windows Media與Real網(wǎng)絡流媒體案例教程[M]. 北京:清 華大學出版社,2004.[6] 廖勇,周德松,麻信洛,張曉華. 流媒體技術入門與提高[M]. 北京:國防 工業(yè)出版社,2006.[7] 賈斌. 網(wǎng)絡編程技巧與實例[M]. 北京:人民郵電出版社,2001.[8] 廖慶揚. 網(wǎng)絡編程與管理[M].北京:化學工業(yè)出版社,2001.[9] 萬躍華. Visual C++.NET網(wǎng)絡編程[M]. 北京:科學出版社,2002.[10] 李凌. Winsock 2網(wǎng)絡編程實用教程[M]. 北京:清華大學出版社,2003.[11] 王世同,李強. Visual C++[M]. 北京:清華大學出版社, 1999.[12] 羅軍周,黎波濤,楊明,吳俊,黃健. TCP/IP協(xié)議及網(wǎng)絡編程技術[M]. 北 京:清華大學出版社,2004.[13] 劉宗田,袁兆山,潘秋菱. C++編程思想[M].北京:機械工業(yè)出版社,2007.[14] 吳志軍,馬蘭, C++ 視頻會議開發(fā)技術與實例[M].北京: 人民郵電出版社,2006.[15] C++ 數(shù)字圖像獲取、處理及實踐應用[M].北京:人民郵電出 版社,2002.[16] IP網(wǎng)絡會議電視語音實時性改進辦法. .[17] 胡凡良,宋玲,陳燕. 基于VC++. 計算機應用與軟件,2005.[18] 陳明,多媒體技術與應用[M]. 北京:清華大學出版社,.[19] 胡朝暉,陳奇. 基于WWW的面向對象多線程聊天服務器設計和實現(xiàn) 計算機工程,2000(12):54—55.[20] 劉云強,王匯源. Socket 和多線程在視頻傳輸?shù)膽? 山東大學學報 (工學版),2004,34(2):45—50.[21] 蔣東興. Windows Socket 網(wǎng)絡程序設計大全[M]. 北京:清華大學出版社.
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1