嵌入式Linux系统下的视频服务器解析方案

发布者:泉趣人最新更新时间:2022-12-20 来源: 21ic关键字:嵌入式  Linux系统  视频服务器 手机看文章 扫描二维码
随时随地手机看文章

0 引言

通信网络已经普及到人类生活的各个方面,布控区域广阔的网络视频采集系统也在迅速的发展,嵌入式视频采集系统的服务器直接连入已经建成的网络,既没有线缆长度的限制,也没有信号衰减的限制,通过没有距离概念的网络,彻底抛弃了地域的限制。系统具有几乎无限的无缝扩展能力,所有设备都以IP地址划分,增加设备只是意味着IP地址的增加,可组成非常复杂的视频采集系统,服务器输出的视频数据已完成模拟到数字的转换并压缩,采用TCP/IP协议在网络上传输,支持跨网关、跨路由器的远程视频信息传输。


本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。


1 系统总体设计

该系统是以ARM9处理器S3C2440为核心,在嵌入式Linux系统平台下,通过USB摄像头采集视频信息,然后对所得到的视频数据通过内部总线送到视频服务器MJPG-streamer上,视频服务器经过对图像压缩处理,经过以太网传输出去,远端客户机通过浏览器或者专用软件访问视频服务器,即可浏览现场信息,从而实现网络视频采集。系统总体如图1所示。

2 系统硬件设计

系统的硬件框图如图2所示。

系统处理器采用高性能ARM9处理器S3C2440,S3C2440是基于ARM920T核心的RISC处理器,主频为400 MHz,实现了MMU,具有AMBA总线和哈佛结构高速缓冲体系结构,有独立的16 KB的指令缓存和16 KB的数据缓存。主要应用于高性能,低价格,低功耗的嵌入式设备和手持设备。处理器内部集成了完备的硬件资源,外部存储控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主机和1通道USB设备,4通道PWM定时器和内部看门狗定时器,130个GPIO等。


NAND FLASH采用K9F2G08,该存储芯片容量大,高达256 MB,改写速度非常快,易于使用,具有可靠的耐用性,适合用于大量数据存储,该FLASH以512 B为块进行读写操作,通过输入输出接口传送地址和命令,传递专门的数据接口与CPU相连,数据总线为8 b,写入操作必须在空白区域进行,所以在改写数据时要先进行擦除,然后再写入。


NAND FLAsH在本系统中用来存放bootloader引导代码,Linux内核代码以及Yaffs文件系统。SDRAM为同步动态随机存储器,类似于PC机的内存,在系统启动时,先将内核代码从FLASH复制到SDRAM中,用来程序的读取,存储,执行,从而提高CPU读取和写入数据的速度。本采用2片32 MB的HY57V作为系统内存,把他们并联起来形成32位的数据总线,提高CPU的访问速度,增加运行Linux系统的流畅性。由于SDRAM掉电不能保存数据,所以要不断的进行动态刷新来保存数据,使用之前要进行初始化。


目前最流行的以太网控制器是DAVICOM公司的DM9000网卡芯片,该芯片自适应10 Mb/s和100 Mb/s的网络,处理器通过GPIO与网卡相连,支持3.3 V接口电压,32位接口存储器可以方便直接与S3C2440相连,在连接RJ-45接口,即可实现以太网物理层和数据链路层的连接。设备驱动程序在Linux操作系统下可以方便的移植,故选择此网卡芯片作为以太网控制器。摄像头采用市场普通USB摄像头,即插即用,处理器通过USB控制器控制摄像头。


3 系统软件设计

本系统软件可分为Bootloader,Linux内核,Yaffs文件系统和MJPG-streamer视频服务器,系统框图如图3所示。

“Bootloader是在操作系统运行之前运行的一段小程序,来完成硬件设备的初始化,从而将系统软硬件环境带到合适状态,为最终调用操作系统做好准备”。Bootloader可以从SAMSUNG公司官方网站下载,经过交叉编译生成Bin文件,下载到板子上。


Linux内核采用Linux 2.6.32版本,运行make menuconfig配置万能驱动USB摄像头,在Device Drivers下,选择Multimedia device,选择Video Capture adapters,选择V4L USB devices,选择GSPA based webcams,即可选择万能驱动USB摄像头。


系统采用Yaffs文件系统,Yaffs是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。它减少了一些功能,速度更快,挂载时间很短,对内存的占用较小,所以系统采用Yaffs文件系统。


MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的。MJPG-stream er源码包可从SourceForge网站下载使用。各个文件如下:

(1)input_testpicture.so。这是一个图像测试插件,它将预设好的图像编译成一个头文件,可以在没有摄像头的情况下传输图像,从而方便调试程序。

(2)input_uvc.so。此文件调用USB摄像头驱动程序V4L2,从摄像头读取视频数据。

(3)input_control.so。这个文件实现对摄像头转动的控制接口。

(4)output_http.so。这是一个功能齐全的网站服务器,它不仅可以从单一文件夹中处理文件,还可以执行一定的命令,它可以从输入插件中处理一幅图像,也可以将输入插件的视频文件根据现有M-JPEG标准以HTTP视频数据服务流形式输出。

(5)output_file.so。这个插件的功能是将输入插件的JPEG图像存储到特定的文件夹下,它可以用来抓取图像。

将MJPG-streamer视频流服务器移植到目标板上运行,从而可以实现网络视频数据的采集,具体移植过程:

(1)首先移植MJPG-streamer依赖的jpeg库。在/usr/local目录下解压源码包tar xvzf jpegsrc.v8b.tar.gz。

(2)修改配置文件./configure--prefix=/usr/video/jpeg--host=arm-linux-gnueabi,编译:make,安装:make install,最后将/usr/local/video/jpeg/lib目录下的libjpeg.so.8文件拷贝到文件系统中的lib目录下。

(3)解压源码包:tar zxvf mjpg-streamer.tar.gz;

(4)修改源码:修改顶层Makefile及plugins目录中的各级Makefile将所有CC=gcc修改为CC=arm-linux-gcc。修改/usr/local/mjpg-streamer-r63/plugins/input_uvc目录下的Makfile文件,在CFLAGS+=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC后加上I//usr/loc al/video/jpeg//include,把$(CC)$(CFLAGS)-ljpeg-o$@input_uvc.c v412uvc.lo jpeg_utils.lodynctrl.lo代码修改为$(CC)$(CFLAGS)-ljpeg-L/usr/local/video/jpeg/lib-o$@input_uvc.c v412uvc.lojpeg_utils.lo dynctrl.lo,从而加载前面编译安装的jpeg库文件,使得MJPG-streamer能够调用到jpeg库。

(5)交叉编译:make CC=arm-linux-gcc,交叉编译器为arm-linux-gcc4.3.2,生成ARM板可执行的二进制文件。


网络视频采集系统软件流程图如图4所示。

4 系统测试

将应用程序通过超级终端工具传输到ARM板上,设置视频服务器应用程序start_uvc.sh开机启动,将交换机引出的双绞线通过RJ-45接口连接到ARM板,在超级终端下进入ARM板,用ifconfig命令配置服务器相应网段的IP地址,将板子上电之后即可执行视频采集程序。从客户端浏览器输入ARM板IP地址发出访问请求,服务器接收到请求后与客户端建立连接,将视频数据发送到客户端监听端口,客户端就可以得到连续的现场现场画面,从而实现网络视频采集功能。客户端测试画面如图5所示。

5 结语

随着互联网的不断发展,视频信息采集进入到一个新的时代,本系统设计基于S3C2440的高速信息处理能力和丰富的硬件接口,在网络功能强大的Linux操作系统平台下,移植MJPG-streamer视频流服务器,模块结构清晰,易于管理,利用现有网络资源,很容易实现远程的网络视频采集,克服了现有视频采集的距离问题,开发简单,可移植性高,并且系统运行稳定。


系统改进思路:无线局域网WLAN成为无线通信使用热点,通过移植WIFI模块可以实现无线网络视频采集,从而摆脱网线的限制,更加方便使用,在MJPG-streamer软件中有一个input_control.so的输入插件没有用到,加上该插件可以实现摄像头的位置的控制,比如自动跟踪的功能,另外可以加入智能模式识别算法,从摄像头读取的视频信息识别物体,辨别出人、动物、汽车等物体,从而是系统功能更加强大。


关键字:嵌入式  Linux系统  视频服务器 引用地址:嵌入式Linux系统下的视频服务器解析方案

上一篇:用SM2算法芯片HS32U2-U实现嵌入式系统的安全设计
下一篇:基于S3C2440与GPS的物流配送系统设计实现

推荐阅读最新更新时间:2024-11-20 08:42

痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
  在结束 《ARM Cortex-M文件那些事》 系列文章之后,痞子衡休整了一小段时间,但是讲课的心完全停不下来啊,所以忍不住新开了一个系列文章,叫《ARM Cortex-M调试那些事》,本文是这个系列文章的第一篇,欢迎各位嵌入式朋友前来围观捧场~~~   嵌入式开发中,大家免不了需要仿真调试代码,尤其是当应用工程功能逻辑复杂到一定程度时,免不了在写代码时会引入一些逻辑bug,仅靠代码审查有时候并不一定能排除所有bug,所以在线调试便成为排除bug最有效直接的方式,今天我们要聊的是调试里最基础的东西,即接口标准。ARM内核原生支持2种业界通用的接口标准,分别是JTAG和SWD。本节课痞子衡先给大家详细讲讲JTAG接口。 一、J
[单片机]
痞子衡<font color='red'>嵌入式</font>:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
基于S3C2440A芯片Linux系统实现MJPEG网络摄像机的搭建
1 、系统硬件组成与网络架构 摄像机硬件核心采用三星公司推出的基于ARM9架构的S3C2440A芯片,该处理器主频达到400 MHz可以满足实时压缩,MJPEG视频流可以达到320×240分辨率25 fps的性能要求。外围搭配64 MB SDRAM、256 MB NAND Flash,网络功能由DM9000以太网MAC控制芯片负责,摄像头模块由USB控制器控制,系统供电由3片LM71117组成,分别输出3.3 V、1.8 V、1.25 V电压,辅助外围接口构成摄像机硬件结构。S3C2440A系统硬件框图如图1所示。 图1 S3C2440A系统硬件框图 网络摄像机是互联网上的TCP/IP设备,系统网络拓扑图如图2所示。其中在家庭
[单片机]
基于S3C2440A芯片<font color='red'>Linux系统</font>实现MJPEG网络摄像机的搭建
MIKROE推出世界上最大的嵌入式项目平台EmbeddedWiki
该平台通过1500多款 Click 板提供超过1百万个设计、并涵盖12个主题和92个应用程序,且100%有效代码 2023年12月11日: 作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,MikroElektronika(MIKROE)今天推出世界上最大的嵌入式项目平台—EmbeddedWiki。 该平台通过MIKROE 的1500多款 Click 板提供超过1百万个设计,并涵盖12个主题和92个应用程序。每个设计都包含项目的完整描述,以及所需的器件列表。用户在选择MCU后,将收到经100%验证的工作代码。 MIKROE首席执行官Nebojsa Matic 表示:“设计师在互联网
[嵌入式]
MIKROE推出世界上最大的<font color='red'>嵌入式</font>项目平台EmbeddedWiki
嵌入式驱动学习之按键驱动
开发环境 主机开发环境:ubuntu12.04 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 开发步骤 1、硬件分析 TQ2440 中的按键使用的是S3C2440的外部中断引脚,编写按键的驱动就是编写中断处理的驱动程序。 需要在驱动程序里面对所用到管脚初始化,设置其功能为中断,然后再设置触发电平类型即可。 下图是TQ2440 按键的原理图: 2、按键驱动代码 #include linux/module.h #include linux/kernel.h #include linux/fs.h #include linu
[单片机]
<font color='red'>嵌入式</font>驱动学习之按键驱动
何小庆谈嵌入式技术和物联网发展新趋势
日前,由中国电子信息产业集团有限公司主办、温州经济技术开发区管委会、温州市经济和信息化局、温州市科技局指导、中国电子(温州)信息港、中电港、iCAN国际联盟承办的“IAIC物联网高峰论坛暨中国芯应用创新设计大赛物联网专项赛”顺利召开,在主题报告中,来自中国软件行业协会嵌入式系统分会副理事长何小庆老师做了题为《嵌入式技术和物联网发展新趋势》的主题报告。 中国软件行业协会嵌入式系统分会副理事长何小庆 回顾嵌入式的大变革 何小庆首先分几点回顾了近年来嵌入式领域所发生的改变。 第一是并购所带来的变化。何小庆指出,从2015年起,半导体巨头就频繁展开了并购,和嵌入系统及物联网关系最大的一些比如说2015年NXP收购F
[嵌入式]
何小庆谈<font color='red'>嵌入式</font>技术和物联网发展新趋势
嵌入式控制系统电路抗干扰设计研究
嵌入式控制系统是为了实现某型军用船艇模拟训练系统的操纵控制功能而开发的。该系统基于军民两用的自动技术,采用模块化设计,可以方便地完成系统的升级改造,以适应船艇改进改型的需要,运用前景十分广阔。嵌入式控制系统是船艇模拟训练系统的控制中枢,其抗干扰设计是船艇模拟训练系统开发的重要环节,直接影响到系统的稳定运行。 时钟电路抗干扰设计 时钟电路产生CPU的工作时序脉冲,是正常工作的关键。时钟信号被干扰后将导致CPU的工作时序发生紊乱,使得系统不能正常工作。 时钟信号不仅是对噪声干扰最敏感的部位,同时也是单片机系统的主要噪声源。单片机的时钟信号为频率很高的方波,由与其频率相同的正弦基波和其倍频正弦波叠加而成。频率越高,越容易发射出去成
[单片机]
<font color='red'>嵌入式</font>控制系统电路抗干扰设计研究
USB无线网络适配器在嵌入式系统中的应用
引言 WLAN技术和嵌入式技术是目前比较热门的两个研究方向,而将二者相结合,即具有无线接入功能的嵌入式系统更具有诱人的发展前景。本文介绍了将IEEE802.11b无线网络适配器与嵌入式主机通过USB总线进行连接的系统设计与实现。系统采用了先进的ARM处理器,除具有10M/100M以太网接口外,还提供USB主接口方便连接具有USB接口的IEEE 802.11b无线网络适配器。 1.系统的总体实现   1.1系统的构成   系统 CPU采用Samsung公司推出的带有ARM7TDMI内核的S3C4510B作为CPU,RAM采用8M 32位SDRAM,ROM采用4M 16 位FLASH。带有一个JTAG接口用于系统调试,一个
[电源管理]
USB无线网络适配器在<font color='red'>嵌入式</font>系统中的应用
一种基于DSP的视频图像压缩系统的设计
1 引言 图像的数字化表示使得图像信号可以高质量传输,并便于图像的检索、分析、处理和存储。但是数字图像的表示需要大量的数据,必须进行数据压缩。即使采用多种方法对图像数据进行了压缩,其数据量仍然巨大,对传输介质、传输方法和存储介质的要求较高。因此,作为数字图像处理的关键技术之一,对图像压缩编码技术的研究显得尤为有意义。 在嵌入式微处理器中,DSP以其算法密集性著称,特别适合复杂算法处理的应用。而在数字视频图像处理系统中需要用到对图像的实时分析、压缩、解压等大量的处理运算,利用DSP作为其嵌入式平台,可以发挥其性能优势,实时满足图像处理需要。 2 静止图像的国际压缩编码标准JPEG JPEG(Joint Photographi
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved