基于 Linux的网络视频监控系统设计分析

(整期优先)网络出版时间:2020-07-02
/ 3

基于 Linux的网络视频监控系统设计分析

刘培成

上海领世通信技术发展有限公司  上海   200030

摘要:现代计算机网络技术、数字视频压缩编码技术以及通信技术处在不断更新和进步当中,促进网络视频监控系统得到良好发展和应用。本文主要从分析网络视频监控系统的总体设计情况入手,介绍了以嵌入式Linux为基础的监控系统硬件组成部分和软件组成部分,着重说明了网络视频监控系统的具体组成情况,包含视频采集、视频压缩、视频显示以及视频传输情况,为科学提升网络视频监控系统的总体设计水平和应用水平,发挥嵌入式Linux的优势和作用,提供一定借鉴和参考。

关键词:嵌入式Linux;网络视频监控系统;设计

引言:

网络视频监控系统中主要包含了数据处理、摄像头传感器、嵌入式处理器、压缩模块以及视频服务器等。嵌入式系统是用于监控、辅助于工厂车间、机器以及装置等设施的系统,显现出成本较低、体积较小、可定制软硬件、系统稳定的特点。以嵌入式Linux作为基础,设计网络视频监控系统,可以促进整个系统朝着现代化、标准化、数字化、智能化方向发展。

1.系统设计

开展网络视频监控系统设计活动的过程中,需要注重把握好总体设计部分,主要划分为客户监控中心和服务器监控终端两个方面。对于嵌入式服务器监控终端来说,本文所研究的对象是三星公司高性能S3C6410微处理器,使用开源Linux操作系统,通过摄像机在监控现场完成图像采集工作,而借助于USB接口,可以促进监控中心接收到已经采集好的图像,完成处理作业。当客户端发出需要监控的请求时,需要采用以太网,由监控中心传递到客户端相应的视频图像。

从总体设计活动来说,网络视频监控系统包含USB摄像机、嵌入式监控终端和客户端监控中心这三个方面,其中在USB摄像机的作用下,可以获取到想要监控的目标对象,从而将图像信息传输到嵌入式监控终端之中,在这部分中,以S3C6410为基础的硬件平台,将信息传送到嵌入式Linux操作系统之中,进而应用到视频监控程序之中,完成信息收集和传递的重要任务。嵌入式监控终端和客户端监控中心之间可以实现双向网络传输,在客户端监控中心内部,依靠Linux或者Windows操作系统将信息传递到视频监控程序之中,从而达到整体监控的目的。

1.1硬件构成

在网络视频监控系统设计过程中,硬件系统是重要的基础,会影响到整个系统的实际运行状况。对于这类系统的硬件结构来说,重要包含了视频服务器模块、视频图像采集模块以及TCP网络传输模块。硬件结构系统运行中,针对目标视频数据开展实时采集,是由视频图像采集模块进行的,而ARM开发板借助于摄像头,可以进行充分信息采集活动,获取到充分的视频图像数据,实施切实有效的压缩存储和处理工作,在此基础上借助于网络传输模块,由远程移动终端获取和显示各项视频数据。

5efd48d35391b_html_3d00903fe8ef37b6.png

图1 网络视频监控系统硬件结构图

1.2软件构成

软件部分的设计工作,会在很大程度上影响到视频监控系统的工作效率和质量,因而需要保持着足够重视,切实结合网络视频监控系统的应用要求和需求,采用科学合理的方式和手段强化总体设计效果。在设计网络视频监控系统的软件系统时,要能够高度重视嵌入式Linux系统移植和裁剪部分、视频图像采集部分和网络传输部分以及客户端网络连接程序等方面。在嵌入式Linux系统裁剪和移植方面,是网络视频监控系统设计过程中较为基础的内容,本文着重介绍如何设计视频图像采集模块和视频网络传输模块。

想要采集视频,需要有video4Linux作为前提,结合摄像头设备,针对视频图像帧加以有效采集,以这一模块提供的接口当作基础,才能够实现应有采集目标。摄像头设备的相关内核在运行过程中,video4Linux是主要的驱动部分,可以提供最为基本的接口函数,如写函数、读函数、打开函数以及ioctl()函数等,支持摄像头编程活动的有效开展[1]。借助于video4Linux,实现较多基本接口函数的应用目标,并在file_operation中加以定义,如果应用程序操作设备文件,如采取打开、读写等方面系统调用方式,网络视频监控系统可以发挥这一结构的作用,针对内核驱动程序所提供的基本函数进行访问。

video4Linux之中存在着一些科学合理的数据结构,奠定了网络视频监控系统采集视频信息的重要基础,主要是以下方面的数据信息:(1)video_window,意为基本信息,是系统获取到的视频图像区域信息;(2)video_picture,这是系统所获取到的图像属性信息;(3)video_mbuf,这是系统获取图像映射的帧的相关信息,包含信息和属性情况,如每帧图像的具体大小及其相对应基址的偏移情况、系统所能够最多支持的帧数;(4)video_mmapf,这是支持内存映射的数据信息;(5)video_capability,这主要针对的是设备信息,包含设备名称及其分辨率范围以及视频信号的具体来源信息等;(6)video_channel,这是针对视频图像各个信号源的,属于信号源的属性信息。

网络视频监控系统在实际采集图像信息的过程中,发挥软件系统的优势和作用,具体运行环节,首先要启动USB摄像头V4L_open();其次,通过软件系统获取到实际设备的属性信息,即V4L_get_capability(),并获取到图像属性,也就是V4L_get_picuture();再者,完成摄像头初始化V4L_grab_init()操作;再者,及时捕捉好各项视频帧的相关数据,用V4L_get_image()加以表示,当完全捕捉视频信息之后,可以及时针对视频数据进行压缩和编码作业,支持视频图像信息的有效应用,此时如果将要终止视频采集活动,可以及时关闭USB摄像头V4L_close(),反之,如果需要继续获取视频图像信息时,及时返回到视频帧数据捕捉环节V4L_get_image()即可,重复进行下阶段的操作。由此可以获取到较为良好的视频图像采集信息[2]

2.系统的组成

2.1视频采集

基于嵌入式Linux,设计网络视频监控系统,要关注到V4L2这一视频设备程序的标准接口,使用分层模式设置好完整的接口规范,支持应用程序编程、视频设备的驱动活动。对于应用程序来说,实际读取信息过程中,主要借助于V4L2,通过两种视频数据采集方式进行,一方面是调用read()函数,完成数据的直接读取工作,另一方面是使用mmap()函数。对于mmap()函数来说,能够使得不同进程映射出同一文件,实现多个进程之间共享内存。在实际内存映射当中,不经过内核缓冲区,在用户应用程序地址空间中直接映射内存,磁盘的访问速度一般会低于内存访问速度,因而使用这一方式可以显著提升I/O访问速度。在不同进程中,访问文件使用访问内存的方式,通过指针函数,不需要调用文件操作,就能提升应用效率。

V4L2是一种Linux和环境下的标准框架,和视频驱动有较大关系。在Linux2.6内核之中,标准框架多是V42L,其可以支持Linux下的各项视频设备,包含收音接口、摄像头以及视频输出接口等[3]。对于V42L框架下的驱动来说,上部分是V42L应用程序编程接口,而下部分则是视频设备驱动程序。想要支持网络视频监控系统的正常运行,完成视频设备驱动程序的作业环节,需要做好上层应用程序的编写活动,这些功能是通过编程接口进行的。对于Linux系统来说,处理各项外部设备的过程中,将其当作是设备文件而进行,而video0或者dev是常用的摄像头设备所对应的文件。

在V42L运行过程中,针对所使用好的摄像头开展应用编程活动,需要使用到ioctl函数,如void*argp,int request以及int fd,其中request属于命令标识符,而fd是设备文件标识,这是通过open()函数所获得的。在Linux内核之中,在Linux或者videodev.h中定义好V4L2的重要数据命令和数据结构。采集视频信息之前,需要注重在Linux内核之中做好科学配置活动,使得Video For Linux选项可以维持着正常运行状态。对于图像视频的采集,摄像头驱动属于重要组成部分,要根据V4L2框架的要求,设置好摄像头驱动,便于视频图像采集活动的有效开展[4]。首先,打开视频设备;其次,要能够获取到设备的属性,做好图像参数的设置工作;再者,需要初始化好内存映射情况;再者,按照图像的帧数,及时开展一帧一帧的采集活动;最后,完成视频采集活动后关闭视频设备,而如果需要再次开展采集活动,需要返回到前一项进行。

2.2视频压缩

在网络视频监控系统运行之中,原始采集活动中涉及到庞大的图像信息数据,当前网络技术带宽限制到图像信息的传递,因而需要做好处理和编码压缩工作,促进大量原始数据更好传输。现阶段编码压缩视频信息过程中,主要采用动态压缩标准MJPEG、H.264和MPEG,静态图像压缩标准JPEG方面[5]。在图像压缩工作之中,JPEG属于第一个国际化的静态压缩标准,该算法应用中和色彩空间之间关联度不大,因而可以针对不同空间色彩图片进行有效处理,这一编码方式显现较强的兼容性。实际使用JPEG静态压缩方式的过程中,主要包含以差分脉冲为基础的编码调制无损压缩和基于离散余弦变化的有损压缩两个方面,后者的应用比例较高,范围广泛。在JPEG基础上,MJPEG这一动态视频压缩技术得以发展,可以压缩处理好连续性的静态视频数据,形成动态视频序列。MJPEG应用中,在前一帧、后一帧的相关性方面不加考虑,只关注到压缩处理好同一帧视频图像的空间,操作更为简便,实际编码环节的延时性较小,可以任意裁剪好画面,并针对分辨率和压缩率加以调整,显现出较大优势,而缺点在于占用较大存储空间。

2.3视频显示

网络视频监控系统设计过程中,要考量到视频显示的内容,使用科学技术手段,保障视频显示的效果,合理设定好服务器IP,针对接收缓冲区加以有效分配,及时做好图像帧头信息的读取活动,使得图像数据具有较强正确性

[6]

2.4网络传输

网络传输是网络视频监控系统运行中的重要环节,想要实现网络传输目标,以往需要使用到TCP协议,这其中系统资源的耗费较多,而UDP协议的应用会容易产生延时抖动或者差错问题。而在IP报头、RTP报头以及UDP报头中装进H.264数据流,将能够有效支持图像视频数据的传输活动。在文件处理系统之中,通过RTSP协议和RTP协议将可以流化视频,实现图像数据传输目标,其中使用Darwin流媒体服务器将能够取得良好效果,具体框架结构如下图2所示。

5efd48d35391b_html_c106575814cad27d.png

图2 Darwin流媒体服务器组织结构图

3.结束语

嵌入式Linux对于网络视频监控系统的设计和应用具有积极意义,能够有效提升整个系统设计的总体利用水平。以嵌入式Linux为基础,设计好网络视频监控系统,需要合理掌握好视频采集、视频压缩、视频显示以及视频传输等环节,推进网络视频穿监控系统的合理稳定运行。

参考文献:

[1]薛伟超. 基于嵌入式Linux的智能家居视频监控系统设计[J]. 丝路视野, 2018, 000(009):P.118-118.

[2]陆子幸, 宋健, 王凯. 基于Linux平台的远程监控系统设计[J]. 山东工业技术, 2018, 000(005):129,137.

[3]高寒. 基于ZYBO开发平台的智慧环保监测及数据采集系统设计[J]. 电子设计工程, 2018, 026(005):174-178,183.

[4]张强, 田海涛, 张浩伟. 基于S3C6410的LED植物工厂视频监控系统设计与实现%Design and Implementation of LED Plant Factory Video Monitoring System based on S3C6410[J]. 中国照明电器, 2019, 000(005):15-20.

[5]张海娇, 孙文胜. Linux及OK6410环境下视频监控系统设计与实现%Design and Implementation of Video Surveillance System in Linux and OK6410 Environment[J]. 软件导刊, 2019, 018(003):121-125.

[6]熊四昌, 周赟涛. 基于嵌入式的移动图像监控系统设计%Design of Motion Images Monitoring System Based on Embedded Linux[J]. 计算机测量与控制, 2018, 026(004):82-84,96.

作者简介:刘培成,1983.11,女,汉族,湖北省咸宁市人,咸宁学院,本科学历,工学学士,计算机科学与技术专业,从事计算机视频监控产品研发,项目管理工作。