1 引 言
随着计算机网络和视频压缩技术的快速发展,多媒体技术的研究和应用受到了越来越多的重视,其中视频服务器的发展尤为迅速,特别是嵌入式视频服务器。
由于具有体积小,安装灵活的特点,只要能接入到internet, 它就可以为任何授权的用户提供实时的视频监控服务,避免了铺设专门线路进行视频信号传输的昂贵费用。
嵌入式视频服务器是一种能提供视频采集,视频数据压缩,网络传输功能的一种多媒体信息服务器。其传输处理的是视频流,而视频传输具有实时性高、数据量大等特点,它需要满足以下三点要求:一:高带宽,高带宽保证大数据量的多媒体数据传输效率;二:支持qos,保证传输的质量、资源预留;三:支持多种传输方式。由于嵌入式环境资源的限制,在视频数据的实时性传输和图象质量方面,其qos一直得不到保证。特别是多路的情况,实时视频的传输质量随路数的增加会急剧下降。嵌入式视频服务器性能的瓶颈主要在于视频数据的传输上,因此缩短视频数据的传输时间就能提高视频服务器的性能。缩减视频数据的传输时间可以从两个方面入手:一:减少视频数据传输的信息量。主要通过采用高性能的压缩编码技术来减少传输的信息量。二:采用适合多媒体数据的传输协议。考虑到嵌入式的系统资源及其宝贵,故我们选用了目前编码效率最高的h.264技术和专门为传输多媒体数据的rtp传输协议设计了本文这套系统。实验结果表明,该嵌入式视频服务器在不影响图象质量的前提下,能够比以往的视频服务器占用更低的带宽。
2 、系统的硬件组成
我们在设计中采用了hharm2410嵌入式开发套件,它由核心板和底板组成,核心板上集成samsung s3c2410 处理器(203m 的主频,100m的总线速度),64m sdram以及16m 的flash。底板上提供以下外设接口:一个四线rs-232 串口,一个usb host接口,一个10m/100m自适应以太网接口,一个tft lcd接口, 一个触摸屏接口。操作系统采用裁减过的嵌入式linux。该嵌入式视频服务器的结构框图如图1所示。
图1 嵌入式视频服务器硬件组成
应用程序通过编码器模块采集h.264视频流,按照rtp协议实时打包,并通过以太网接口 实现实时流传输( ip streaming) 。另外还可以扩充一块802. 11b /g无线模块,来达到无线网络传输的目的,并可通过ide接口扩充一块ide硬盘作为本地h.264视频图像存储之用。
3 、服务器软件设计
服务器是整个系统的核心,它工作在嵌入式linux平台上,嵌入式linux是标准linux经裁减得到的,同linux一样,具有稳定,安全,高效率,实时性好等优点。服务器端采用模块化设计,从功能角度,服务器端的软件体系结构可划分为5个模块:采集模块,编码模块,网络传输模块,存储模块,设备控制模块。其体系结构如图2所示:
图2 服务器软件体系结构图
(1)采集模块,主要完成视频的采集,图像格式的转换,在此处设定采集的图像格式为yuv。采用linux的v4l来实现,v4l是linux中提供的一个音视频接口规范,所有的音视频设备的驱动编写要用到这些接口。
(2)编码模块,主要完成对采集的图像的压缩编码。对采集到的图像数据进行压缩可以有两种方案,一种是用硬件来压缩,它可以有专用系统和通用系统两种形式,其中,专用系统使用专用芯片实现图像的硬件压缩,通用系统则利用通用芯片实现数据压缩。相对于通用系统,用专用芯片对图像用硬件进行压缩可以快速进行图象压缩,减少处理器的开销等点。第二种压缩方法就是用软件来实现,这种方法对机器的硬件配置要求较高,但运用起来灵活,考虑到现在硬件技术已经比较成熟,故我们采用第二种方案,对采集到的图像数据进行软压缩,此处利用h.264标准进行压缩。h.264压缩标准是一种新的编码方法。与其他压缩编码方式比较,利用h.264标准可以获得更高的压缩比及更好的图象质量。h.264编码器都是开源的,可以从网上下载,此处用的是t264,对采集到的yuv格式的数据进行逐帧压缩。
(3)网络传输模块,完成现场多媒体数据及历史多媒体数据的网络的传输,用于支持浏览端的现场预览和记录回放功能。其基本过程是码流经码率控制部分进行码率调整,然后由rtp组件传送到网络中。传输启动之初,组播控制器根据多用户代理提供浏览端的组播策略来协商组播策略;传输过程中,rtcp组件实时监测网络状况并反馈給决策控制器,决策控制器控制分离器、视频抽帧器和码流复合器组件,完成码流的动态整合。其传输体系结构如图3所示:
图3视频流传输体系结构
(4)存储模块,多个摄像头采集的多路视频数据经编码压缩后形成复合媒体流,通过存储组件,存为h.264文件,同时向数据库中写相应的文件信息。
(5)设备控制模块,设备控制器接收用户界面发出的或网络传送来的控制命令,控制解码器,完成对云台、镜头等设备的控制。
4 、客户端软件设计
客户端主要完成视频数据的接收,解码和显示工作,同时还可以动态设置编码器的数。从功能角度,客户端的软件体系结构可划分为3个模块:设备控制模块,网络的接收与反馈模块,显示模块。其体系结构如图4所示:
(1)设备控制模块,根据用户输入的命令((例如改变视频窗口大小、接收路数,图象分辨率、开始/停止远程监控等), 产生控制命令并通过一个tcp连接发送到服务器端,服务器端设备控制器接收这些控制命令,并完成对云台、镜头等设备的远程控制。
(2)网络的接收与反馈部分,根据用户的基本带宽情况(局域网还是非局域网)及请求的任务类型(现场预览还是历史回放),确定该接收码流是否基于组播策略接收。rtp组件完成码流的接收,rtcp组件检测码流的丢包率并反馈给服务器端。
图4 客户端软件体系结构
(3)显示模块,同步源过滤器从rtp组件得到码流,在控制器的协调下,完成解码及同步的视频播放。此处我们采用的是microsoft directshow[6]架构来完成h.264 码流的实时解码和图像显示工作。
试验证明,对于包含有视频服务器、多监控客户中心的嵌入式视频监控系统,上述网络传输部分能够很好地完成视频数据的实时传输,网络自适应能力良好。
5 、结束语
本文创新点是提出了一种多路嵌入式h.264视频服务器的设计方案,并给出了系统硬件组成和软件的体系结构框架,该系统与传统的motion2jpg和mpeg21相比,采用h.264标准压缩图像,降低了带宽占用率。对于四路qcif和一路d1分辨率的高清晰度实时视频监控,只需占用65k和250k的网络带宽即可满足传输需求。
PCB红墨水测试的定义
教程|创建你的第一个Actor Framework
三星关闭工厂消息终于坐实,坚决不做下一个诺基亚
STM32单片机寄存器的位置是如何定义的
毫米波是推进5G持续商用的重要方向
基于HHARM2410嵌入式开发套件实现多输入H.264视频服务器的设计
中国台湾Getac在平板电脑中嵌入LiFi技术
国科微从多个维度提出固态硬盘国产化核心要素 以应对行业市场的需求
元旦送哪种蓝牙耳机款式好?音质好颜值高的蓝牙耳机推荐
全面解读iPhone12 mini智能手机
电容容量选择规则与经验技巧
交换机的分类及特点
Intel推出集成高带宽存储器的FPGA
一氧化碳传感器在线监测烟道废气CO含量改善燃气锅炉的燃烧效率
造成磁翻板液位计出现假液位的原因有哪些
“生死看淡”的雷军要造车,这对中国的汽车产业意味着什么?
igbt真空回流焊空洞问题
电动不锈钢法兰球阀的声响密封方式介绍
KEIL软件的详细分析
MOSFET内部结构分析 驱动设计验证方案