版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学多媒体通信技术实验报告学号: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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶出口日本对策研究报告
- 茶叶仓库搬迁方案
- 茶厂标签设计方案
- 肠道清洁排毒课程设计
- 白银轻钢结构房施工方案
- 四年级数学(四则混合运算)计算题专项练习与答案汇编
- 一年级数学计算题专项练习汇编
- 潮州防滑彩色路面施工方案
- 潮州冷库布袋风管施工方案
- 仲恺农业工程学院《食品安全》2022-2023学年第一学期期末试卷
- 工程造价咨询服务收费标准--鲁价费发〔2007〕205号
- 工作面安装瓦斯监控安全技术措施
- 单门门禁一体机操作流程
- 施工现场安全知识答题试卷-附答案版4页
- 学校总务处行事历
- 五星级酒店开业筹备计划表
- 通信工程勘察设计费取费标准[整理版]
- 超声波探伤报告
- 墩身外观质量缺陷与防治
- XXX养生馆顾客和诊断管理表(doc3)
- 银行支行电子银行业务发展经验交流材料
评论
0/150
提交评论