




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
武漢理工大學多媒體通信技術實驗報告學號:0121109310216班級:電信1102班姓名:戴曉云指導老師:王緒國實驗目的(1)了解多媒體通信原理(2)了解視頻音頻通信TCP/IP與UDP通信協議(3)掌握網絡通信平臺開發2.實驗內容 在以上硬軟件環境下,利用合適的開發工具,設計一套可視對講軟件,實現局域網內兩臺計算機之間的可視對講功能,要求音視頻信號連續性、實時性較好,滿足正常交流需要。3.軟件設計框圖4.實驗步驟4.1建立視頻聊天軟件服務器(1)新建一個工程,命名為Project1.dpr,并把VFW.PAS加到USE中(2)在Form1上放置一個Tpanel控件,該控件用于顯示視頻。之后再放置兩個Tbutton控件,一個caption為"開始",另一個Name為"停止",放置一個UDP組件,這里用indy的IdUDPClient用來傳輸視頻,如圖示:(3)定義全局變量CapWnd:THandle;//定義捕捉窗句柄CapParms:TcaptureParms;//用于設置設備屬性的結構變量BMPINFO:TBitmapInfo;//BMP圖像信息(4)編碼事件代碼開始按鈕代碼:CapWnd:=capCreateCaptureWindow('我的窗口',WS_VISIBLEorWS_CHILD,//窗口樣式0,//X坐標0,//Y坐標panel1.Width,//窗口寬panel1.Height,//窗口高panel1.handle,//窗口句柄0);//通常為0ifCapWnd=0thenexit;//定義幀捕捉回調函數CapSetCallbackOnFrame(CapWnd,FrameCallBack);CapParms.dwRequestMicroSecPerFrame:=1;CapParms.fLimitEnabled:=FALSE;CapParms.fCaptureAudio:=FALSE;CapParms.fMCIControl:=FALSE;CapParms.fYield:=TRUE;CapParms.vKeyAbort:=VK_ESCAPE;CapParms.fAbortLeftMouse:=False;CapParms.fAbortRightMouse:=FALSE;//讓設置生效CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));CapPreviewRate(capWnd,33);//設置預覽視頻的頻率CapCaptureSequenceNoFile(capWnd);//如果要捕捉視頻流,則要使用函數來指定不生成文件,不然會自動生成AVI文件CapDriverConnect(CapWnd,0);//連接攝像頭設備,第二個參數是個序號,當系統中裝有多個顯示驅動程序時,其值分別依次為0到總個數如果有多個攝像頭,那么就是0->1->2capGetVideoFormat(capWnd,@BMPINFO,sizeof(TBitmapInfo));//取得視頻圖像數據頭CapPreviewScale(capWnd,TRUE);//是否縮放CapOverlay(capWnd,true);//指定是否使用疊加模式,true為使用,否則為falseCapPreview(capWnd,true);回調函數代碼:varhd:Thandle;jpg:TJpegImage;memStream:TMemoryStream;Bitmap:TBitmap;begin//將數據顯在Image,Bitmap:=TBitmap.Create;Bitmap.Width:=BMPINFO.bmiHeader.biWidth;//NewsizeofBitmapBitmap.Height:=BMPINFO.bmiHeader.biHeight;hd:=DrawDibOpen;DrawDibDraw(hd,Bitmap.canvas.handle,0,0,_BMPINFO.BmiHeader.biwidth,BMPINFO.bmiheader.biheight,_@BMPINFO.bmiHeader,lpVHdr^.lpData,0,0,BMPINFO.bmiHeader.biWidth,_BMPINFO.bmiHeader.biheight,0);DrawDibClose(hd);//發送數據memStream:=TMemoryStream.Create;jpg:=TJpegImage.Create;jpg.Assign(Bitmap);jpg.CompressionQuality:=10;//jpg壓縮質量jpg.JPEGNeeded;jpg.Compress;jpg.SaveToStream(memStream);jpg.Free;//因為UDP數據包有大小限制,這里如果超出部分,就沒有傳輸,完全可以發幾次發出去Form1.IdUDPClient1.BroadcastEnabled:=true;//用廣播功能ifmemStream.Size>Form1.IdUDPClient1.BufferSizethen//向192.168.0.X網段廣播,端口9001Form1.IdUDPClient1.SendBuffer('55',9001,memStream.Memory^,Form1.IdUDPClient1.BufferSize)elseForm1.IdUDPClient1.SendBuffer('55',9001,memStream.Memory^,memStream.Size);memStream.Free;Bitmap.Free;End;停止代碼:capCaptureAbort(CapWnd);//停止捕捉capDriverDisconnect(CapWnd);//將捕捉窗同驅動器斷開
4.2建立視頻聊天軟件客戶端3.2.1新建一個工程,命名為Project2.dpr3.2.2在程序窗口Form2上放置一個image控件,該控件用于接收的圖像內容,再放置一個Tbutton控件,caption為"接收",,放置一個UDPServer組件,這里用indy的IdUDPServer用來接收網絡視頻,如圖示:接收按鈕代碼:IdUDPServer1.DefaultPort:=9001;//接收端口IdUDPServer1.Active:=true;//啟用IdUDPServer1的UDPRead事件代碼:varjpg:TJpegImage;begintryjpg:=TJpegImage.Create;jpg.LoadFromStream(Adata);Image1.Picture.Bitmap.Assign(jpg);jpg.Free;exceptend;end;視頻的傳輸是壓縮成JPG進行傳輸的,服務器端和接收端都用到了jpeg單元,所以use中都要加入jpeg。完整的視頻聊天軟件客戶端代碼:unitUnit2;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,IdBaseComponent,IdComponent,IdUDPBase,IdUDPServer,ExtCtrls,jpeg,IdSocketHandle;typeTForm1=class(TForm)Image1:TImage;IdUDPServer1:TIdUDPServer;Button1:TButton;procedureButton1Click(Sender:TObject);procedureIdUDPServer1UDPRead(Sender:TObject;AData:TStream;ABinding:TIdSocketHandle);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.dfm}procedureTForm1.Button1Click(Sender:TObject);beginIdUDPServer1.DefaultPort:=9001;//接收端口IdUDPServer1.Active:=true;//啟用end;procedureTForm1.IdUDPServer1UDPRead(Sender:TObject;AData:TStream;ABinding:TIdSocketHandle);varjpg:TJpegImage;begintryjpg:=TJpegImage.Create;jpg.LoadFromStream(Adata);Image1.Picture.Bitmap.Assign(jpg);jpg.Free;exceptend;end;end.在機上運行視頻聊天軟件服務器程序,點開始就開始進行視頻的傳輸了,在網絡上(網段為192.168.0.X,根據你的網絡設置IP地址,我這用的局域網測試)的任何一臺機上運行視頻聊天軟件客戶端點接收都能接收到視頻了。如果要接收的視頻內容清晰點,可以設置jpg.Compressi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車電控噴油系統
- 七年級下冊地理知識點總結模版
- 高校后勤人員個人年終總結模版
- 《嬰幼兒睡眠習慣培養》課件
- 《項目管理實務與應用》課件
- 三病篩查培訓
- 《油田開發基礎知識》課件
- 新質生產力需依賴傳統生產力嗎
- (總結范稿)之2025年大學區教師交流年度思想工作總結模版
- 種植面膜的臨床護理
- 2025年國家電力安全知識競賽題庫及答案(共50題)
- ZHXXX數據治理咨詢項目投標文件
- 市政道路工程施工方案方案
- 花鍵計算公式DIN5480
- 2024年第三季度意識形態分析研判報告5篇
- DB11T 1320-2023 危險場所電氣防爆安全檢測技術規范
- 2024年時事政治考點大全(173條)
- 施工場地治安保衛管理計劃
- 6《夜間飛行的秘密》(課件)統編版語文四年級上冊
- 2024年秋季新人教版八年級上冊物理全冊教案(2024年新教材)
- 高支模專項施工方案(專家論證后)
評論
0/150
提交評論