手机端的音视频监控系统开发

网络信息化的趋势,随着流媒体技术、无线网络技术以及视频压缩技术的不断进步,视频监控技术得到了广泛的应用,同时,监控的规模和范围也在不断的扩大。人们对于安全保障的要求不断的提高,从而使得过去以图文为主的内容服务应经不能够满足用户的需求,取而代之的则是音视频多媒体服务。使用移动终端技术的视频监控系统,不仅具有体积小型化、安装傻瓜化以及配置灵活化的优势,最重要的是还降低了成本。由于网络功能和视频压缩都被集中的保存在小体积的设备中,因此,通过网络远程监控视频设备就可以获得监控视频。目前,网络视频监控不仅面向企业级客户,逐渐的,也通过视频监控为大众提供服务。如旅游景点人流、景点查看、交通导航等。基于开放平台的移动视频监控已经成为监控研究领域的热点

  视频监控系统需要的传输数据分为两类:控制信息和视频数据。尽管两类数据进行传输的时候都是基于IP协议进行的,但是,他们分别采取了应用层协议和传输层协议,这是由于两者的特性要求和实现软件的规模不同引起的[3]:第一,采用TCP传输层协议进行信息控制。之所以采用TCP/IP的传输模式进行信息控制,这是由于控制信息虽然不要求较高的实时性,但是对于传输的可靠性要求却十分高。因此,采用了有严格握手过程和重传机制的TCP传输层协议。第二,传输视频数据时,采用RTP应用层协议和UDP传输层协议。由于网络视频的时效性要求远远高于可靠性,因此,本文采用了RTP应用层的传输协议支持实时传输服务。在传输层,虽然UDP尽量采用交付方式进行出数据传输,但是却没有拥塞控制,从而对于大数据量的实时视频数据比较适合此方式,因此,本论文采用UDP协议作为传输层协议。接收到上层应用程序的多媒体信息码流后,经过RTP装配成数据包发送给下层,然后在通过UDP/IP协议封装后形成RTP流。传输控制子系统是基于RTP协议构建的,通过传输层通信使用的UDPSocket完成。

  在PC机上完成了对视频监控系统应用程序的开发,主要采用图片接收方式来实现移动平台的智能视频监控系统。

服务器端的功能主要是初始化摄像头和网络端口号以及主机地址,开启视频监控服务,实时捕捉监控现场图像然后等待客户端的连接请求[4]。与远程请求的手机客户端成功建立连接后,便开始向客户端发送视频图像信息。服务器端的设计流程图如图2所示。负责现场监控的Pc服务器端,需要对监控设备进行初始化控制,采用Visual Studio编程环境下的c++/MFC语言来实现。在进行网络通信传输时,系统是基于RTP协议构建的,通过传输层通信使用的UDPSocket来实现服务器端和客户端之间的通信,以实现图像稳定传输。Socket通信的部分通过MFC语言中的CSocket类来实现,而摄像头图像采集和控制则利用相应服务厂商提供的SDK进行实现。视频的捕获中,设计了CCaptureVideo类,并将其实现,通过对打开视频响应函数中该类的调用来实现对视频的捕捉。在处理捕获的视频图像时,将捕获的视频图像转换成连续的JPEG格式的图像存储在数据缓冲区中,该线程不停地接受客户端的连接请求,将图像发送给客户端。

  该视频监控系统的客户端主要通过TCP/IP协议和服务器端进行实施通信的,同时利用Socket实现整个过程。作为通信链句柄的Socket网络通信套接字用于描述端口和IP地址。通过Socket编程,应用程序会向网络发出请求或应答网络请求。Socket作为通信的基石,支持TCP/IP协议的网络通信的基本操作单元。本程序中使用的Socket传输模式,是面向连接的Socket操作使用TCP协议。Socket在该模式下,必须在客户端和服务端建立Socket连接,一旦建立好连接,便可以在一个流接口进行打开、读、写以及关闭等操作,而另一端则以相同的顺序接受所有的信息。相比无连接而言,虽然面向连接的操作效率较低,但数据却具有更高的安全性。基于Android视频服务器系统终端,必须通过采用Socket网络通信技术接受来自监控前端的视频数据。Socket通信使得监控前端和终端,通过网络连接实现数据的交互。Socket连接初始化后才能进行Socket通信,其实现过程与面向连接的Socket通信相同。创建Socket服务线程,当产生监听后,服务主进程负责不断循环的监听接收到的请求,同时建立新的客户连接Socket,创建针对此Socket的通信进程。在视频监控系统中创建Socket的过程,首先用ServerSocket
serverSocket=null在服务器端创建一个Socket,然后用serverSocket=newServerSocket(8888)监听端口8888。如果在该端口接收到客户端Socket的请求,则用Socket client=serverSocket.accept()来创建一个Socket对象。建立连接后,调用InputStreamReader来接收服务器端发送的视频数据,然后通过BufferedReader将此数据读取出来。服务器从前端采集系统接收的数据通过BufferedWriter写入,并通过OutputStreamWriter发送给网络客户端。通信完毕之后,通过os.close()、is.close()和socket.close()来关闭输出输入流并关闭Socket端口,服务器停止Socket通信。网络客户端终端作为接收数据的客户端,首先用Socket
socket=null在终端创建一个Socket,然后设置Socket通信的服务器的IP地址和通信端口socket=new Socket("192.168.1.101",8888),成功与服务器建立连接后,用InputStreamReader创建输入流,之后通过BufferedReader读取出来,进行解析并显示在用户端界面上,数据接收完毕后,通过BufferedWriter写入接收完毕信息并通过OutputStreamWriter发送至服务器,通信完毕后,通过os.close()、is.close()、socket.close()关闭输入输出流,并关闭Socket端口,至此整个Socket通信完成。

  由于服务器发送的是解码后的图片数据,因而客户端接收到的数据流可以组成一幅图片[5-6]。通过Android提供的BitmapFactory.decodeByteAllrayO函数,可以从接收到的数据流中得到Bitmap格式的对象。后文的处理皆针对此Bitmap对象进行。

  为了实现监控画面的显示,需继承View类,重写了onDraw()方法。其中,在onDraw()方法中所实现的内容,将在客户端界面上显示出来。定义一个Bitmap对象,此对象将在画布中绘制出来。当负责接收图片的线程接收到新的图片数据时,将数据传给该对象,并在线程中调用postlnvalidate0方法,重绘画面。为了系统实现更好的显示效果,本设计采用了双缓存机制。显示的画面存储在原先对象中,而接收的画面存储在变量另一对象中。如果网络状况不好,并不能及时接收到新的数据,使得另一对象为空,则原先的变量不更新,还将显示之前的画面,这样处理将在一定程度上提高用户体验,减少网络状况不好情况下的突发性黑屏。

  根据Android的GUI系统,能够实现远程视频实时监视的用户界面,并提供播放器和用户之间的交互接口。Java和C语言框架共同组成了GUI系统,此系统对下层通过调用显示输入、输出设备的驱动,将Android的软件系统和底层的硬件联系起来;此系统对于上层提供了Java层次的绘图接口,Android的Java框架层调用这些接口来构建各种UI元素。此外,Java也可以调用绘图接口。

时间: 2024-10-27 19:45:53

手机端的音视频监控系统开发的相关文章

基于Android平台的移动视频监控系统开发

网络信息化的趋势,跟着流媒体技术.无线网络技术以及视频压缩技术的不断进步,视频监控技术得到了广泛的运用,一起,监控的规划和规划也在不断的扩展.大家关于安全保证的需求不断的提高,然后使得过去以图文为主的内容服务应经不能够满意用户的需要,取而代之的则是音视频多媒体服务.运用移动终端技术的视频监控体系,不只具有体积小型化.装置傻瓜化以及装备灵活化的优势,最重要的是还降低了成本.因为网络功用和视频压缩都被会集的保存在小体积的设备中,因此,经过网络长途监控视频设备就能够取得监控视频.当前,网络视频监控不只

网络视频监控系统开发系列---YUV格式详解

转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章. 对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有一个比较经典的解释,中文的大多是翻译这篇文章的.文章来源:http://msdn.microsoft.com/en-us/library/aa904813(VS.80).aspx 这里转载有人已经翻译过的, http://hondrif82q.spaces.live.com/blog/cns!776E82726DE60562!177.entr

VSAM:视频监控系统 A System for Video Surveillance and Monitoring

VSAM(VideoSurveillance and Monitoring)视频监控系统 Robotics Institute CMU 1:引言 2:试验床介绍 3:基本的视频分析算法:运动目标检测,跟踪,分类,简单行为识别 4:地理空间模型,感知网络标定,三维地理位置估计,目标图形显示 5:多摄像机协作 6:成果展示及未来的研究计划 1 引言 VSAM可自动解析场景中的人和车,检测目标并按语义分类,如人.人群.车,以及在此基础上的行为分析,如走动.奔跑.利用VSAM,单个人即可监控复杂区域,跟

项目三. 基于图像压缩的视频监控系统

项目三. 基于图像压缩的视频监控系统 Sprint0-产品设计与规划 基于图像压缩的视频监控系统 1. 产品功能演示 在linux系统上运行程序,弹出登录界面,输入地址.端口信息,弹出视频监控界面,实时传出视频信息. 2. 功能模块分析 采集端: 图像采集子系统 图像编码子系统 传输子系统 主程序 监控端: 传输子系统 图像编码子系统 传输子系统 主程序 Sprint1-基于Epoll架构的采集端程序框架设计 第1课-Epoll机制精通 大纲: v  为什么用Epoll? 阻塞型IO与多路复用

(转)基于单片机的网络视频监控系统的设计

本文提出了一种网络化视频监控系统,将单片机控制技术.USB数据采集技术与基于TCP/IP协议栈的计算机网络结构有机结合起来,使人们能够通过监控现场的摄像机和麦克风等视频音频捕捉设备. 将监控现场的信号通过局域网传输,并送到监视器上以获得实时图像和声音,从而实现远程遥视现场. 随着嵌入式系统的飞速发展,在许多领域,以微控制器为中心的应用系统正逐步取代以计算机为中心的应用.因此,对于网络应用系统的研究,越来越多的研究人员将研究重点转移到嵌入式系统上来.基于此背景,本文提出了一种网络化视频监控系统方案

H264音视频直播系统 服务器端+客户端源码 可用于视频聊天、视频会议

H264音视频直播系统  服务器端+客户端源码 可用于视频聊天.视频会议 RTP协议实现音视频网络实时直播,采用H.264和AAC编码,码率极低,同时有较高的视频清晰度和音频音质,可用于视频聊天.视频会议.摄像头监控等多种应用场景. 发布端,选择视频和音频设备,指定服务器发布直播源 接收端,接收发布者的音视频并播放.占用带宽很低,如图所示.采用动态码率,平时在4~5KB/s左右,动作幅度较大时在8KB/s. C++代码,VS2010工程,包含全部代码,不用其它依赖项,可直接编译 接口调用简单

0. 视频监控系统架构设计

0.视频监控系统架构设计 0.1.功能指标 (1)搭建共享文件夹 (2)实现Ubuntu的NAT上网和桥接上网 (3)搭建局域网 (4)搭建nfs服务器.tftp服务器 (5)将uboot.kernel.rootfs镜像文件下载到开发板中 (6)移植MPP,ORTP库和WiFi库 (7)编写应用程序实现RTP/RTCP传输视频流,实现有线传输和无线传输 0.2.架构搭建 该系统中主控 CPU 采用HI3518EV200作为核心,通过在HI3518E芯片上运行linux,构建嵌入式平台, 接收来自

Qt编写安防视频监控系统18-云台控制

一.前言 云台控制是视频监控系统中必备的一个功能,对球机进行上下左右的移动,还有焦距的控制,其实核心就是控制XYZ三个坐标轴,为了开发这个模块,特意研究了各种云台控制的方法和开源库比如soap,有些厂家使用自家SDK控制云台,但是大部分都会选择onvif来控制,毕竟是国际标准的通用的,只要符合这个标准的都可以使用,onvif协议的解析通常用的开源库是soap,涵盖的内容比较全,包括获取各种设备信息和回控等,缺点就是比较臃肿,使用非常不容易,函数名实在是有点不顺手,很多新手都绕在其中不知所措最后放

用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中

我最近在用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中,第一次写项目,写过这类项目的多多提意见,哪方面的意见都行,有代码或者demo的求赏给我,谢谢