- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VC视频监控客户端设计与实现
基于VC++视频监控客户端设计与实现 摘 要:介绍了在Visual C++ 6.0开发环境下利用C语言编程实现视频监控客户端的制作,阐述了编程实现过程中所遇到的问题及解决方法,实现了IPC摄像机媒体流的获取及其在客户端的实时播放,并通过客户端多个窗口同时察看和录制文件。 关键词:IPC摄像机;视频监控;客户端;MFC 中图分类号:TP317.4 文献标识码:A 文章编号2013)003012404 1 总体设计 1.1 用户界面 本文本着实用性、美观两个原则在VC++环境下使用MFC设计该界面。基于MFC的客户端界面的设计思路是:①添加各个控件并命名ID及根据实际情况关联变量;②添加初始化代码和消息响应函数。该客户端界面主要采取单文档视图,菜单栏与工具条结合属性控件标签页,主要包含三大模块:实时预览、本地回放以及电子地图。除了这些基本功能之外,还具备如下一些功能:从多个摄像机同时浏览和录制实时视频;支持多种记录模式: 连续、计划、报警和动态侦测;能够处理高帧速和大量的数据;对已记录事件的多种搜索功能,通过Web浏览器、客户端软件甚至PDA客户端进行远程访问;报警管理功能(声音报警、弹出式窗口或Email) 。整体效果见图1。 1.2 定义变量和函数 定义两个主要的结构体如下: (1)记录设备相关信息的结构体: typedef struct DeviceList { char szIp\[64\];//设备相关IP int nPort;//设备连接端口号 char szType\[128\];//设备类型 char szUuid\[64\];//设备相关通用唯一识别码 }DeviceList; (2)记录摄像机相关信息的结构体: typedef struct CameraInfo { int nId;//每个摄像机对应的ID号 int nViewIndex;//每个摄像机对应的视图窗口 TCHAR tszIp\[MAX_TCHAR_LEN\];//对应IP TCHAR tszOnvifPort\[MAX_TCHAR_LEN\];//对应端口号 TCHAR tszWebPort\[MAX_TCHAR_LEN\];//对应的WEB端口 TCHAR tszCodec\[MAX_TCHAR_LEN\];//对应的解压码 TCHAR tszStatus\[MAX_TCHAR_LEN\];//对应状态用于实时播放还是录制 TCHAR tszCompany\[MAX_TCHAR_LEN\];//对应公司名称 TCHAR tszUserName\[MAX_TCHAR_LEN\];//对应用户名 TCHAR tszPassword\[MAX_TCHAR_LEN\];//对应密码 TCHAR tszUuid\[MAX_TCHAR_LEN\];//对应设备通用唯一识别码 TCHAR tszDeviceType\[MAX_TCHAR_LEN\];//对应设备类型是onvif还是rtsp TCHAR tszStreamMode\[MAX_TCHAR_LEN\];//对应码流类型 int nAlarmEnable;//是否启用报警 int nRecordEnable;是否启用录制 }CameraInfo; 2 应用程序主要函数设计 2.1 实时播放 在界面的设计上,为了突出本系统的主要功能,将播放模块作为其中一个大的模块,作为其中3个属性页之一显示在系统的主对话框。首先创建一个对话框,并命名ID为IDD-DIALOG-LIVE,依次创建一个子类CLIVEDIG,父类为属性页CResizablePage,该模块功能见图2。 该模块中实现的功能有: (1)根据已经连接的网络摄像机IP地址搜索并添加设备,接受来自服务器的视频流,通过Live窗口将其拖拽至视图窗口进行实时播放。 (2)实现多路视频同时播放,播放的各个视频处于相互独立的状态,互不影响,实时显示不同设备发送的码流。 (3)实现实时播放视频中的播放、停止、截图、手动存储录像等功能,以及画面显示大小比例调整等。 下面将介绍各功能的具体实现: (1)首先进行设备扫描,查找已连接的相关设备,将其添加至Live标签页左边所在树并显示出来。根据树状所显示的设备,将其添加至视图窗口进行实时播放,函数原型是:void CLiveDlg::AddToView(CameraInfo *pCameraInfo, CLiveViewDlg *pViewDlg),参数一为每个相关摄像机的信息,参数二为相关显示视图的信息。具体接口函数
原创力文档


文档评论(0)