admin 管理员组文章数量: 887021
2023年12月17日发(作者:安卓手机开发安卓软件)
I|V 。 L。cA{ 尝 囊囊越簟 { fo匹 i rin 【本文献信息】陈宗成,邓华秋.基于ARM11的嵌入式视频传输系统的实现[J].电视技术,2013,37(9) 基于ARMll的嵌入式视频传输系统的实现 陈宗成,邓华秋 (华南理工大学理学院物理系,广东广州510640) 【摘要】基于ARM11架构的微控制器¥3C6410以及Linux操作系统成功实现数字视频传输。通过采用V4L2提供的接口函 数,实现视频的采集;使用¥3C6410自带的硬件编码模块实现视频编码;然后对H.264视频流进行RTP格式的打包;采用JRT— PLIB提供的库函数,对编码后的视频数据进行实时发送;最后使用VLC播放器解读SDP文件实现了实时播放,以验证传输系统 的实际效果。 【关键词】视频传输;Linux;ARM11;RTP/RTCP;SDP 【中图分类号】TN911.73 【文献标志码】A Implementation of Embedded Video Transmission System Based on ARMll CHEN Zongcheng,DENG Huaqiu LPhysics Department,South China University of Technology,Guangzhou 510640,Chian) 【Abstract】Reahime digital video transmission is successfully implemented based on ARM11一based microcontroller¥3C6410 and embedded Linux oper— ating system.It captures the video data by using V4I2,encodes the video by using the encoding module which is integrated in¥3C6410,packets the H.264 video stream according to R11P format,sends the encoded video data by using JRTPLIB in real time,and finally displays the SDP files online in re— latime by using VI C displayer. 【Key words】video trnasmission;Linux;ARM11;RTP/RTCP;SDP 随着图像处理技术和网络技术的不断发展,视频监控 RTP/RTCP协议保证流媒体的实时传输 J。 系统大致经历了三个发展阶段,前两代分别以黑白电视为 代表的模拟监控系统和以硬盘录像机为代表的半数字化 1 系统结构 监控系统…,第三代视频监控系统是指以前端网络视频 本文在ARM—Linux嵌入式平台实现远程视频实时监 为代表的全数字视频监控系统,视频从前端的采集、压缩、 控系统,利用现有的网络设备,满足用户远程监控的目的。 传输和浏览、存储全部数字化。CCD和CMOS摄像头为 需要实现的主要工作包括前端视频采集、网络传输和终端 数字视频采集提供便利。随着视频压缩算法的发展,高压 接收播放,主要功能总结如下: 缩比、还原能力强的压缩算法不断出现,特别是伴随着流 1)监控前端设备通过COMS摄像头实现视频的 媒体技术产生的H.264视频压缩技术,为视频的实时传 采集; 输和实时浏览提供便捷。 2)在ARM—Linux平台对原始视频数据编码; 伴随着数字化视频监控系统的到来,对视频监控系统 3)前端服务器与客户端通过局域网或者因特网实现 的要求也不断提高,要求实时可靠、操作简单、功能丰富、经 视频数据的组播发送; 济适用等。而嵌入式系统的基本特点恰好满足了以上要 4)客户端接受H.264视频数据,实时解码播放。 求,嵌入式视频监控系统应运而生。目前嵌入式视频系统 考虑到视频监控系统需要视频的实时采集、编码和 普遍采用Bs架构,虽然实现起来简单方便 ],却不利于显 发送,因此,需要集成度高、稳定、实时性好的SoC系统。 示端功能的升级和改进。本文根据嵌入式视频监控系统的 在综合考虑成本的情况下,选择三星公司¥3C6410作为主 发展现状,在A ̄I-Li/1ux嵌入式系统上搭建监控系统必须 控芯片。¥3C6410是以功能强大的ARM11为核心的SoC 的软件平台,通过cS架构实现视频的采集、编码、发送和显 芯片,使用广州友善之臂技术有限公司开发的mini6410 示功能。编码方面采用最新的H.264标准,有效地降低了 嵌入式平台。整体硬件平台如图1所示。 码率,和MPEG-2和MPEG-4 ASP等标准相比,在同等图像 质量下,采用H.264技术压缩后的数据量只有MPEG-2的 2视频采集、编码及发送 1/8,MPEG-4的1/3 。在视频发送方面,采用协议UDP/ 2.1视频采集 RTP/RTCP,既满足视频服务器所需的组播特性,又能通过 利用v4I2接LI函数获取视频帧数据有3种方式:直 210《电视技术》第37卷第9期(总第411期)l投稿网址http://WWW.VideoE.ca
VIDEo脚uc 尝 编码操作,主要步骤如下: 1)初始化编码句柄。在进行编码之前需要初始化一 个编码句柄handles,该变量是一个结构体变量,其中存储 了视频编码的控制信息,初始化该结构体的API函数是: void SsbSipH.264Encodelnit(unsigned int uiWidth,un- signed int uiHeight,nsigned int uiFramerate,unsigned int uiBitrate_kbps,unsigned int uiGOPNum)。 2)将编码信息写入MFC驱动层,初始化MFC硬件。 完成这一工作的API函数是:int SsbSipH.264EncodeExe (void:}:openHandle)。 3)获取输入缓存地址。通过函数void:}:SsbSipH. 图1 系统硬件平台 264EncodeGetlnBuf(void openHandle,long size)获得内 接通过read()函数读取视频帧,用户指针方式,mmap内 核存储原始数据的帧缓存地址。 存映射。本文通过内存映射方式采集,采用这种方法读取 4)将原始视频大小存人内核缓冲区。通过memcpy 方便,而且省去了大量的内存拷贝,效率较高,具体操作步 函数,将采集到的视频数据发送该内核驱动空间,用于 骤如图2所示 。 打开摄像头驱动文件 缓冲人队列,交 内核驱动 vtDtOCQ BUF _MFC对视频进行编码。 5)对视频数据进行编码。视频编码的API函数是: int SsbSipH.264EncodeExe(void openHandle)。在进行 获取驱动功能 VIDIOCQUERYCAP —编码时,有些编码器会在每个关键帧前面都添加序列参数 集(Sequence Parameter Set,SPS)和图像参数集(Picture Parameter Set,PPS),造成无用的码率增加。MFC只对第 一启用视频采集 VIDIOCSTREAMON —帧H.264码流上添加SPS和PPS。SPS和PPS中含有 6)获取编码后的帧缓存地址和大小。通过API函数 设置视频格式 VIDIOCSFMT — —.解码所必须的参数,包括帧频、图像大小等。 视频缓冲序列中 取一帧视频 VIDIOCDQBUF —GetOutBuf函数获取编码后视频数据在内核中的缓冲区地 址。返回的编码数据,除了第一帧图像外,每次缓冲区内 为设备驱动申请 帧缓存 VIDIOCREQBUFS —缓冲人队列, 内核驱动 VIDIOCQBUF 保存的都包含并且只包含一个完整的NAL单元;第一帧 图像编码完成之后,缓冲区除了第一个NAL单元之外,还 有序列参数集和图像参数集2个NAL单元。 7)将编码数据放人环形存储队列。 8)释放资源,关闭编码设备。 查询已申请帧缓存 相关信息 VIDIOC_QUERYBUF 停止视频采集 映射帧缓存到用户 控件 mmap0 2.3视频发送 本系统采用流媒体最常用的RTP/RTCP协议发送视 关闭摄像头驱动文件 频数据。编码后的视频数据按照RTP协议打包,并利用 UDP协议对局域网组播。RTP协议的定位是应用层协 议,这样便于扩展。本文利用RTP的一个C++库JRT. 图2视频采集流程 2.2视频编码 PLIB进行视频发送,该库封装了网络协议的配置,只要调 本文利用¥3C6410提供的MFC硬件编码器对原始视 用其中的API函数就可以轻易配置网络,不过JRTPLIB 频数据进行H.264格式编码,与v4L2视频采集操作相 本身不是针对某一种实时数据的开发库,因此,发送不同 同,MFC进行编码时,绝大多数操作都是通过I/O control 的数据流需要用户根据相应的协议进行RTP的分包和 接口函数来完成的,¥3C6410已经提供了针对H.264视频 打包。 编码的I/O control接口的封装API函数。为了减小编程 1)移植JRTPLIB到ARM平台 工作量,本文使用这些已经比较稳定的API函数进行视频 本系统使用的JRTPLIB版本是3.7.1。该c++库是 投稿网址http://www.VideoE.cnI《电视技术》第37卷第9期(, ̄411期)211
版权声明:本文标题:基于ARM11的嵌入式视频传输系统的实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702814411h431903.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论