基于RTSP+RTP协议的智能家居视频监控系统的设计与实现

2016-10-21 17:00张楠德
科技创新与应用 2016年7期
关键词:流媒体视频监控

张楠德

摘 要:文章介绍了智能家居视频监控中使用的RTSP和RTP协议的原理和应用。首先对智能家居视频监控系统进行了总体的概述,分析RTSP和RTP的协议格式和流媒体技术特点,最后重点分析了视频监控的系统模型,并且介绍了视频流的获取流程。

关键词:RTSP;视频监控;流媒体

引言

随着智能家居的普及,人们对家中安全越来越重視,利用视频监控手段来观察家中情况成为人们关心家庭安全的常用方式。近年来,互联网技术的蓬勃发展和网络带宽的有效提升,使得流媒体实时传输技术成为研究智能家居视频监控的热点。当前互联网环境中提供的是尽力而为(Best-effort)的传输服务,带宽、延时等是随时间而变化,这容易产生丢包、时延、抖动等问题,导致媒体播放不清晰,影响用户体验。因此,需要设计一个良好的传输系统并研究其关键技术来解决这些潜在的问题。文章结合项目实际需要,设计并实现了一种基于RTSP 和RTP等高效实时传输策略的智能家居视频监控流媒体传输系统。

1 智能家居视频监控系统整体概述

智能家居系统整体框架如图1所示,智能家居系统由外部Internet网络、家庭内部网络、智能家居网关、家居设备传感器、客户端组成。智能家居网关作为整个智能家居系统的中心枢纽,维系着外部Internet网络和家庭内部网络之间的关系,充当通信桥梁的作用,为数据的跨异构网络传输提供网络平台。网关的工作原理如下:网关连接远程服务器,监听远程服务器发送过来的控制和查询命令,解析命令并将命令按照指定的格式发送给智能家居内部网络的前端设备节点,实现对各设备的控制;同时作为智能家居内部网络的信息汇聚节点,它接收来自各前端设备节点的数据信息,并对数据进行处理后发送到远程服务器,从而完成智能家居系统网络数据的异构网传输[2]。

视频模块作为物联网网关的一个子模块,管理网络摄像机在数据库的后台存放和获取视频流并转发给手机客户端。视频模块接收到手机客户端获取视频流的请求,视频模块分析请求的合理性,并根据请求信息获取对应网络摄像机的视频流,并将视频流转发给手机客户端,客户端再将视频流解码播放。

2 RTSP与RTP规范

2.1 RTSP 协议

RTSP协议(Real Time Streaming Protocol,实时流传输协议)是一种流媒体控制协议,它使用TCP或UDP完成数据传输,可以用来控制视频或音频的多媒体串流协议,允许多个串流同时控制。RTSP在媒体服务中充当“网络远程控制”角色,它为媒体传输提供远程控制功能,如播放、暂停、快进、快退等功能。由于RTSP协议信息控制传输协议,它并不传输流媒体数据,因此RTSP需要与RTP/RTCP协议配合使用。RTSP是双向协议,在客户端和服务器都可以发出请求,故消息包括请求(Request)和响应(Response)两种。

2.1.1 请求报文

图2为RTSP请求报文的语法结构,RTSP通过请求报文向服务器发出请求,在请求报文中,开始行是请求行,包括方法、URL、版本和CRLF。其中,请求报文的方法一般包括 OPTIONS、DESCRIBE、SETUP、PLAY、TEARDOWN、PAUSE、等。URL是接收方的地址,例如“rtsp://192.168.1.90:554/h264/ch1/main/av_stream”,版本一般为“RTSP/1.0”;CRLF用于每个消息行的后面,表示回车换行,最后一个消息行后需要跟两个CRLF。消息体是可选的,有的Request消息并不带消息体。

2.1.2 响应报文

图3是RTSP 响应报文的语法结构,响应报文为服务器对客服端的请求做出回应的报文,在响应报文中,开始行为状态行。版本为“RTSP/1.0”;状态码表示请求消息的执行结果,通常用一个数值表示,值为200时表示成功;短语内容为与状态码相对应的文本解释,成功时短语内容为“OK”。

2.2 RTP 协议

RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议,主要用于在互联网上传递音频和视频数据,它为多媒体提供具有实时特征的端对端传送服务,保证时间信息和流同步。每一个 RTP 数据包都由两个固定部分组成,分别是包头(Header)和载荷(Payload)。其中包头前12个字节的含义是固定的,载荷可以是视频或音频帧数据。RTP 分组包头结构如图4所示。

3 基于RPSP+RTP协议的智能家居视频监控系统模型

3.1 视频监控系统模型

基于RTSP+RTP协议的智能家居系统视频监控系统模型如图5所示,它由网络摄像机,智能家居网关,手机客户端三部分组成。当用户打开视频监控界面时,手机客户端向智能家居网关发送获取视频流请求,网关收到请求后根据请求消息的id号查找后台数据库对应的网络摄像机,根据用户的用户名、密码、RTSP端口号和http端口号等信息封装成RTSP消息,通过socket端口向网络摄像机发送获取视频流请求。智能家居网关收到视频流数据后再把数据转发给客户客户端,客户端对收到的视频流数据进行解码和播放。

3.2 后台数据库管理模块

智能家居网关后台建立一个数据库用于储存用户的网络摄像机信息,包括网络摄像机在局域网的ip地址、流媒体服务端口、http端口、访问流媒体的用户名和密码、用户自定义的网络摄像机别名,每个摄像机的信息都对应一个id号。客户端通过使用http协议与智能家居网关web服务器通讯,调用cgi对网络摄像机在数据库中的添加、删除、修改、查看操作。当用户添加网络摄像机信息时,调用添加网络摄像机cgi向智能家居网关发生添加请求,网关对客户端发送的参数进行合法性检查,如果参数正确则把网络摄像机参数添加到网络摄像机配置数据库中,并返回添加网络摄像机成功的结果给客户端,如果失败则返回失败的原因给客户端。当客户向网关发起预览视频请求时,网关根据请求信息的id号来查找数据库中对应的摄像头信息,再利用RTSP协议与网络摄像头的媒体服务器建立通信获取数据。

3.3 获取视频流流程

智能家居网关向在线网络摄像机获取视频流数据过程如图6所示[3],Client、RTSP Server、subsession、Source、RTSP Sink为视频流数据传输的介质平台,首先网关向RTSP Server发送OPTIONS指令来获知服务器提供的可用方法(可用方法有OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE等),获取方法后,网关向RTSP Server发送DESCRIBE指令来获取媒体SDP信息。接着网关发送SETUP指令向服务器申请建立会话,RTSP服务器收到SETUP请求后调用CreatNew()函数创建新的子会话,subsession再调用CreatNew()函数来创建新的数据源Source和RTSPSink,此时,获取视频流数据的会话已建立好,等待网关发送获取播放数据请求。当网关发送播放请求PLAY时,RTSP服务器调用startPlaying()函数申请获取数据,当Source获取到数据时把数据发送给RTSP Sink,RTSP Sink想要获取下一帧数据时则需通过调用getNextFrme()函数向Soruce发送请求,Source收到请求后把下一帧数据发送给RTSP Sink并通过afterGetFrame()函数回调帧,最后RTSP Sink把视频数据发送到RTP端口打包,视频流数据被封装好后发送给网关。在获取数据帧过程中buildAndSendPkg()、getNextFrame()、afterGettingFrame()三个函数循环调用使数据流动,形成流畅的视频流。当网关停止获取数据时,向RTSP服务器发送TEARDOWN命令请求,RTSP会中止会话,停止数据的获取。

4 结束语

文章分析了智能家居的整体框架和视频监控系统模型,以RTSP和RTP协议为基础重点分析了视频流的获取过程,最终实现一个基于RTSP+RTP协议的智能家居视频监控系统。该系统能较好地解决流媒体传输的一些关键问题,如提高实时视频流的平滑性、去除抖动、音视频同步以及确保通信的服务质量等,从而使系统有着很好的健壮性和可扩展性,可广泛应用于多种网络视音频传输场合。

参考文献

[1] Joint Video Team(JVT).ISO/IEC 14496-10 and ITU-T Rec. H.264 Advanced Video Coding[Z].2003.

[2]邵春晖.基于Linux的智能家居网关研究与实现[D].长安大学,2013.

[3]刘畅棂.基于Live555的网络视频监控系统设计与实现[D].重庆邮电大学,2012.

[4]李东风.嵌入式高清视频前端及其远程控制的设计与实现[D].南京:南京邮电大学,2011,4.

[5]劉国卿.基于RTCP的实时流式传输拥塞控制算法研究[D].四川大学,2006.

[6]季宇.基于流媒体技术的移动视频监控服务系统[D].天津:天津大学,2011.

[7]王彦丽,陈明,陈华,等.基于 RTP/RTCP 的数字视频监控系统的设计与实现[J].计算机工程与科学,2009,31(3):58-60.

猜你喜欢
流媒体视频监控
流媒体传输加密技术研究
基于视频图像采集移动目标检测系统的设计
数字化监控系统的企业应用
基于嵌入式Linux的视频监控系统的设计与实现
基于HTML5的视频监控微课设计浅析
智能视频检索技术在校园安防建设中的发展应用
基于JSP的流媒体播放的设计与实现
网络远程教学系统的设计
基于云服务的P2P流媒体技术在远程教学视频传输中的应用
基于RTMFP协议的视频监控系统设计与实现