流媒体技术在视频监控中的应用

时间:2022-10-01 08:41:07

流媒体技术在视频监控中的应用

摘要: 基于流媒体技术的视频监控可以利用网络来传输音视频数据,极大地促进和扩展视频监控的发展和应用范围。该流媒体系统是基于ARM9处理器内核和嵌入式Linux操作系统,介绍了系统基本组成单元及其实现的功能,对Linux的网络通信协议和使用的流媒体协议做了必要的阐述。经过试验论证,获得了良好的效果。该流媒体系统既小巧、又功能强大且易于移植。经理论和实践证明,在利用网络实现视频监控的应用中,该设计具有较高的应用价值。

关键词:

流媒体; 线程; 嵌入式Linux; 视频监控

中图分类号: TP 393 文献标识码: A

引 言

视频监控是光电行业的一个重要领域,随着通信技术和多媒体技术的发展,嵌入式视频监控摄像系统得到了广泛的应用,人们对视频监控的要求和质量也越来越高。因此视频监控摄像系统呈现出数字化、网络化两个主要特点。尤其近年来流媒体技术的发展更加促进了实时视频摄像的发展。

嵌入式技术是先进的计算机技术、超大规模集成电路、软件技术和各个行业相关应用相结合的产物。嵌入式系统是以应用为中心,软硬件可剪裁,能适应应用系统,对功能、可靠性、成本、体积、功耗等综合性要求较高的专用计算机系统。嵌入式系统是相对于通用计算机系统而提出的。嵌入式系统也是一种软硬件混合系统。嵌入式操作系统采用Linux操作系统,Linux系 统源码开放,内核功能强大,多任务,易于裁剪,通信功能完善,具有良好的开发工具和环境。基于嵌入式流媒体系统体积小、价格便宜、功耗低,尤其是实时性效果好,所以得到了广泛的应用[1-3]。

1 系统硬件结构

图1所示为流媒体服务器系统硬件设计平台,ARM选用海思公司的HI3511,HI3511是基于ARM926EJ内核的32位RISC的处理器,具有标准32位ARM指令集和16 位THUMB指令集。HI3511集成了丰富的部件,主要有外部总线接口EBI、USB2.0接口、以太网10/100 M MAC接口,用来仿真和烧写程序用的J-TAG接口、以及音视频输入输出接口等接口。其硬件结构见图1。

HI3511片内还集成了及协同视频硬件加速引擎。使得HI3511成为高性能通信媒体处理器,具有高集成、可编程、支持H.264和MJPEG-4等多协议,广泛应用于实时视频通信领域,其中H264MainProfile算法极大地提高了视频质量,并且能够提供灵活的场编码或帧编码,视频处理单元还支持双码流编码,处理器足以满足视频监控的相关要求。

流媒体技术是把连续得到媒体信息经过压缩后放到网络服务器上,这样客户就可使实现边下载边观看,而不需要将整个媒体文件全部下载完毕,所以流媒体技术非常适合现场事件,可以随机访问和快进或后退观看内容[6]。

流媒体实时传输方式分实时流式传输和顺寻流式传输两种。实时流式传输可以保证媒体信号与网络连接相匹配,使媒体信息可以被实时看到,而且实时传输允许对媒体进行更多的控制,要比HTTP服务器复杂。顺寻流式传输是顺序下载,但客户只能观看已下载的部分,顺序流式传输可以使用HTTP服务器,比实时流式传输要简单。

3 流媒体系统软件设计

因为系统的关键就是流媒体服务器,所以这里也主要介绍与服务器有关的RTSP模块、RTP模块和用户界面的线程实现,这里首先介绍一下Linux的网络通信过程[7]。

3.1 Linux的网络通信

Linux中网络通信是通过Socket套接字来实现,它是一种特殊的文件描述符,由于Linux的设备无关性,可以看做普通的文件描述符来操作,通过向描述符读写来实现网络通信。Socket使用的是C/S模式,常见的Socket有流式Socket、数据报Socket和原始Socket三种类型。套接字编程采用C/S模式,即由客户端向服务器进程发出请求,服务器进程执行被请求任务并将响应结果返回给客户端。套接字函数包括:Socket()、Bind()、Listen()、Accept()、Send()、Recv()、Close()等。基本流程见图3。

其基本过程是Socket()函数创建一个用于通信的套接字并分配一个绑定端口号,Listen()函数是套接字成为一个监听套接字,调用Accept()来启用套接字,此后程序就可以等待客户端的连接并处理其请求。客户端也建立一个Socket,返回描述符。配置端口号和IP地址,向服务器发送连接请求并接受服务器发回的确认连接信息。通信结束后,关闭双方的Socket。

3.2 流媒体协议介绍

3.2.1实时流协议(real-time streamming protocol,RTSP)

RTSP定义了一对多程序如何有效通过IP网络控制多媒体数据。RTSP是应用层协议,有很大的灵活性,可以用在多种操作系统上。RTSP在系统结构上位于RTP/RTCP之上,使用RTP/RTCP完成数据传输,主要用来控制具有实时特性的数据的传送,单本身并不传送数据。RTSP可以为流媒体提供诸如播放、暂停、快进等操作,负责定义具体的控制消息、操作方法和状态码等。RTSP的控制作用主要通过rtspsvr.c和rtspparse.c两个C语言文件来实现[7,8]。

(1)rtspsvr.c包含一些处理方法的函数。如下:

RTSP_SessLists_Init,用于建立一个RTSP会话队列,保存已经建立连接的客户端;

RTSP_SessLists_Destroy,清除队列,与客户端断开后才使用;

RTSP_SessLists_Add,将已建立连接的客户端加入到会话队列中;

RTSP_SessLists_Remove,删除一个已经存在的RTSP客户端;

RTSP_SVR_Create,RTSP服务器初始化,分配端口,建立RTSP会话队列;

RTSP_SVR_Destroy,释放RTSP资源,关闭RTSP监听,释放RTP资源;

RTSP_SVR_Start,线程函数,用于调用RTSP_SVR_Proc函数;

RTSP_SVR_Proc开始RTSP监听,接受客户端发送的RTSP请求;

RTSP_Handle_Event,用于处理RTSP的会话方法。

(2)tspparse.c是用来处理文本文件的,包括的函数如下:

RTSP_Status,描述RTSP的状态码;

RTSP_Methods,描述RTSP的方法,如PLAY,SETUP等;

RTSP_Get_Status_Str,用于获得RTSP的状态码;

RTSP_Parse_Url,,用于分析URL,获取文本中的端口信息等;

RTSP_Get_Cseq,用于获得RTSP文本交互中的CSEQ,以判断是否是相应的请求与回答。

3.3 视频应用程序

Linux内核为Linux处理图形界面提供的最基本的底层驱动接口。应用程序不需要了解底层硬件的具体情况,只需通过设备节点对设备进行操作,就可以完成图像的显示[9]。

SDL是一个跨平台、高性能的开源共享库,广泛应用于播放器、游戏的设计。SDL使用系统的底层API,但是在平台间统一了接口,使得基于SDL的程序具有良好的跨平台特性。SDL有以下优点:(1)直接使用内核提供的接口,运行效率高;(2)跨平台,移植性好;(3)面向应用,提供对图形,音频的高级应用;(4)提供了多种应用,如线程、消息循环、互斥锁、定时器等;(5)可配置性;(6)资源丰富。在线程设计上使用两个线程即用户界面线程和工作者线程。用户界面线程包括音视频同步播放和接受并响应用户的操作,然后将工作者线程解码出的音视频数据传递给使用者。线程的工作流程见图4。其客户端运行界面见图5。

4 结 论

基于嵌入式的流媒体摄像机是光学器材的一个重要应用,尤其采用最新CMOS传感器后,其灵敏度有了额较大提高、曝光时间缩短、单位像素尺寸的缩小,使得视频清晰度有了很大提高。在图像压缩方面采用MPEG-4算法,有效减轻了网络传输负担,有利于视频的实时性传输。嵌入式流媒体摄像机融合了现代通信技术和多媒体技术,尤其是嵌入式技术的应用,使得嵌入式流媒体摄像机获得了快速的发展。这种摄像机具有模块化设计,体积小,易于安装、使用和维护。支持即插即用的解决方案,只要接入网络,分配一个IP地址,就可以实现流媒体的传输,实现无人值守,就可以保证系统稳定可靠的运行。正因为如此,流媒体技术得到了越来越广泛的应用。

参考文献:

[1] 钟玉琢,向 哲,沈 洪.流媒体与视频服务器[M].北京:清华大学出版社,2003.

[2] 徐波涛,王 玲.基于ARM的流媒体传输方法的研究[D].南京:南京理工大学,2007.

[3] 师娟娟,彭 迪.基于ARM9的嵌入式Linux移植[J].武汉理工大学学报,2008,30(2):205-208.

[4] 马忠梅,马广云.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2002.

[5] 冯国进.嵌入式Linux驱动程序设计从入门到精通[M].北京:清华大学出版社,2008.

[6] 钱 斌,徐海云.嵌入式Web服务器在CTM系统中的应用[J].微计算机信息,2006,17(5):99-101

[7] 张 威.Linux网络编程教程[M].北京:首都师范大学出版社,2002:143-144.

[8] 求是科技公司.8051系列单片机C程序设计完全手册[M].北京:人民邮电出版社,2006:209-210.

[9] 李 涛,董云卫.一种嵌入式软件构件和构件库[J].计算机科学,2006,33(11):259-263.

上一篇:4∶Eu3+的制备和发光性质的研究'> 纳米晶CaWO4... 下一篇:自由空间紫外光通信系统中LED光传输模型研究