基于ARM11+Linux的无线视频监控系统
基于ARM11嵌入式的智能信息采集系统的研制
基于ARM11嵌入式的智能信息采集系统的研制摘要:论文研究了一种基于ARM11硬件平台以及linux嵌入式操作系统的智能信息采集系统,采用Zigbee技术架构实现无线传感器网络,实现信息的监测监控,为操作人员提供决策信息。
该系统设计结构巧妙,可移动无缝接入网络,凭借着ARM11强大的硬件平台、linux嵌入式操作系统在数字智能掌上电脑的成熟应用以及优秀紧凑的人机界面设计,实现了系统的高度智能化、提高了系统的可靠性,体现了该系统的优越性、灵活性和智能性。
关键词:信息采集ARM11 linux 系统组成1.1 硬件结构系统由三星公司的S3C6410(ARM11)、SD卡接口、USB接口、触摸屏接口、Zigbee无线传输电路等组成,实现信号的接收和分析处理,检测节点由ATmega16单片机、各类气体传感器组成,节点检测到信息数据后,由单片机处理其数据。
用于通信的Zigbee线选用符合标准Zigbee协议的集成收发RF 器件CC2430和利用收发天线,以及少量的外围器件。
通过便携式监控系统向井下检测节点发出网络连接自检信号,当MCU接收到连接信号后,返回应答信号至便携式监控系统,完成一次完整的Zigbee网络通信。
如果在发送信号时ACK标志位置位,而且在一定的超时期限内没有收到应答,发送器将重复发送固定次数,若仍无应答就宣布发生错误,请求重新建立通信连接。
当通信链路成功时,整个检测系统开始工作。
1.2 系统功能介绍信息采集系统的主要功能分为气体监测、供电监测、数据存储、信息反馈、断电控制、风能监测、网络修复、系统自检等功能,其中气体监测主要用于实时显示瓦斯、一氧化碳、二氧化碳、氧气、湿度、温度等参数,供电监测主要用以实时监测重要用电设备的电气参数,数据存储用以将动态数据存放于数据库中,以供历史查询以及决策决断,信息反馈主要用以各项信息的反馈。
而断电控制则用以在数据超标的情况下,选择性的对某一设备进行断电。
基于ARM的无线网络视频监控系统设计与实现
基于ARM的无线网络视频监控系统设计与实现作者:邹翰刘昌华来源:《软件导刊》2016年第03期摘要:利用ARM cortex-A8开发一个无线网络视频监控系统。
采用系统采用B/S架构,用WiFi网络传输视频数据,由Web视频服务器、无线传输模块和远程监控终端3部分组成。
探讨Web视频服务器的软硬件设计,包括服务器硬件平台搭建、Linux系统移植部署、MJPG-streamer移植及WiFi网络构建。
测试结果表明,系统运行稳定,实时性较高,可实现多终端同时监控,采集到的图像清晰流畅,无明显失真,视频监控效果良好。
关键词:B/S架构;ARM cortex-A8;视频监控;WiFi;MJPG-streamer中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2016)003-0063-03作者简介:邹翰(1991-),男,湖北荆州人,武汉轻工大学数学与计算机学院硕士研究生,研究方向为嵌入式技术;刘昌华(1963-),男,湖北武汉人,武汉轻工大学数学与计算机学院副教授、硕士生导师,研究方向为计算机网络及应用、嵌入式FPGA设计。
0 引言随着平安城市和智能小区建设的快速发展,视频监控技术成为IT领域最热门应用技术之一。
视频监控技术经历了模拟视频监控、数字视频监控和网络视频监控3个阶段[1]。
有线网络视频监控系统[2]存在布线繁琐、监控点固定和在复杂环境下适应性差等问题;3G无线网络视频监控系统[3]由于受网络成本和通信速度的限制,应用范围并不广泛;WiFi网络技术具有使用成本低、传输速率高及网络构建简单的优点,更加符合市场需要。
结合嵌入式技术可靠性高、成本低、体积小和实时性强等特点,基于ARM的无线视频监控系统具有广泛的应用前景。
本文提出一种基于WiFi无线网络的视频监控系统。
1 系统概述该无线视频监控系统整体结构如图1所示,由USB摄像头采集视频图像,经搭载有Web 视频服务器的ARM平台进行压缩编码并传输到网络,各终端再通过无线网络接收,并在Web 浏览器中显示。
基于Mjpg-streamer的跨平台无线视频传输系统
基于Mjpg-streamer的跨平台无线视频传输系统祝朝政;张毅伟;程禹嘉;严锡君【摘要】为了解决基于Mjpg-streamer的远程视频系统只能通过特定浏览器查看与,可移植性差的问题,开发了采用QT框架的视频解码客户端,实现了跨平台的实时观测,改变了原系统对于浏览器的依赖性,提高了Mjpg-streamer远程视频系统的可移植性,使得系统的适用范围及使用方式更加宽泛及大众化。
%In order to solve the problems that remote video system based on Mjpg-streamer only can be viewed through a particular browser and has poor portability, videodecoding using QT framework is developed in the client side to realize the real-time observation of cross-platform. It changes the dependence on browsers of original system, and enhances the portability of Mjpg-streamer remote video system, which makes theusage scope and mode of the system wider and more popular.【期刊名称】《微型电脑应用》【年(卷),期】2016(032)001【总页数】3页(P57-59)【关键词】视频解码;QT;跨平台;Mjpg-streamer【作者】祝朝政;张毅伟;程禹嘉;严锡君【作者单位】河海大学计算机与信息学院,南京,210098;河海大学计算机与信息学院,南京,210098;河海大学计算机与信息学院,南京,210098;河海大学计算机与信息学院,南京,210098【正文语种】中文【中图分类】TP393近年来,基于Mjpg-streamer的远程视频系统随着嵌入式技术,多媒体技术,计算机网络安全技术的快速发展也在不断的更新与发展。
基于嵌入式的无线视频监控系统研究
基于嵌入式的无线视频监控系统研究随着科技的不断发展,无线视频监控系统在安防领域中扮演着越来越重要的角色。
基于嵌入式的无线视频监控系统是一种新兴的技术,它将嵌入式系统与无线通信技术相结合,能够实现远程监控、实时视频传输和智能分析等功能。
本文将围绕这一主题展开研究。
首先,本文将介绍基于嵌入式的无线视频监控系统的基本原理和工作方式。
该系统由摄像头、嵌入式处理器、无线通信模块和监控中心等组成。
摄像头负责采集视频图像,嵌入式处理器负责对图像进行处理和分析,无线通信模块负责将处理后的数据传输至监控中心。
其次,本文将讨论基于嵌入式的无线视频监控系统在安防领域中的应用。
该系统可以广泛应用于公共场所、企事业单位和居民小区等地方。
通过无线视频监控系统,可以实现对目标区域的实时监控,及时发现和处理各类安全事件。
同时,系统还具备智能分析功能,可以通过图像识别、运动检测等算法,对异常事件进行自动报警和警戒。
进一步,本文将探讨基于嵌入式的无线视频监控系统面临的挑战和解决方案。
由于监控系统需要长时间运行,对嵌入式处理器和无线通信模块的性能和功耗有较高要求。
为了解决这一问题,研究人员可以采用低功耗的嵌入式处理器,优化算法和数据传输方式,以提高系统的效能和可靠性。
最后,本文将总结基于嵌入式的无线视频监控系统的研究成果和未来发展方向。
目前,基于嵌入式的无线视频监控系统已经取得了一定的研究成果,并在实际应用中取得了良好的效果。
未来,研究人员可以进一步改进系统的性能和功能,推动无线视频监控系统在安防领域的应用普及,并结合人工智能等新技术,实现更加智能化、自动化的安防监控。
综上所述,基于嵌入式的无线视频监控系统是一项具有广阔前景的研究课题。
通过对系统原理、应用、挑战和未来发展方向的探讨,可以更好地推动该技术的发展和应用。
相信在不久的将来,基于嵌入式的无线视频监控系统将在安防领域中发挥越来越重要的作用。
基于ARM-Linux的图像采集和无线传输系统设计
X cl P A 7 理 器 连 接 了一 个 6 Mbt N N l载 程序 和 内核 映像 , 并作 为根 文件 系统 ,4 y 6 Mbt e S R M 作 为 内存 , S I 接 无 线 网卡 , S 2连 接 摄 像 头 。 系 D A UB 连 UB
d i1 . 9 9 j i n 1 7 — 4 . 0 0 0 . 1 o :0 3 6 / . s . 6 11 1 2 1 . 5 0 2 s 0
基 于 A M- iu R Ln x的 图像 采 集 和 无 线 传 输 系统 设 计
田泽 康 , 德 华 李
( 中科技 大学 图像 识别 与人 工智 能研 究所 , 汉 4 0 7 ) 华 武 3 0 4
图像采集和传输系统 的硬件系统 由开发板 、 by 30 WeeeV 0 0 U B摄像头 、 S 中兴 MF7 U无线网卡等构成 , 图 2所示 。 63 如
De i n o sg fARM - n x-a e m a e a q iii n - u - s d i g c u sto Li b a d r ls r n m iso s se n wiee s ta s s in y t m
摘 要 : 绍 了一 种 基 于 嵌 入 式 l u 介 i x的 实 时 图 像 监 控 系统 的 设 计 和 实 n 现方 法 。 系统 以 X c l P 2 0处 理 器为 核 心 , 载 US sae XA 7 搭 B摄 像 头 和 无 线 网卡 构 成 硬 件 平 台 。 Ar Liu 以 m- n x为 软 件 平 台 。 该 平 台 上 实 现 了 在 实 时 图像 的 采 集 , E 4压 缩 和 3 无 线 传 输 。M P MP G- G EG- 法 的 采 4算 用减 小 了网 络 的 压 力 。 节 约 了成 本 。 随 着 3 网 络 的 不 断 发 展 , 系 又 G 本 统将在 3 G时代有着广阔的应用前景。 关键 词 :图 像 采 集 ; 入 式 系 统 ; C 嵌 W DMA;A m- iu r Ln x 中 图分 类 号 :T 2 P7 文 献 标 志 码 :A
基于ARM9与Linux的WLAN视频监控系统研究与设计
基于ARM9与Linux的WLAN视频监控系统研究与设计基于ARM9与Linux的WLAN视频监控系统研究与设计一、引言近年来,随着科学技术的飞速发展与人们生活水平的提高,对安全监控的需求日益增加。
视频监控系统作为一种最常见的安全监控手段,已经被广泛应用于各个领域。
然而,传统的有线视频监控系统存在线缆布线麻烦、工程量大、成本高等问题。
为了解决这些问题,基于ARM9与Linux的WLAN视频监控系统得到了广泛关注与研究。
二、系统设计基于ARM9与Linux的WLAN视频监控系统主要由前端摄像头模块、ARM9处理器模块、WLAN无线模块、存储模块以及远程访问控制模块组成。
1. 前端摄像头模块前端摄像头模块是整个系统的核心部件,负责采集监控画面。
在设计中,我们选择了高清摄像头,能够提供更清晰、细腻的图像信息,有效提高监控系统的效果。
2. ARM9处理器模块ARM9处理器模块作为系统的“大脑”,负责对摄像头采集到的巨量数据进行处理、压缩和编码。
我们选用了ARM9处理器,其低功耗、高性能的特点能够满足我们的需求。
3. WLAN无线模块WLAN无线模块是系统的重要组成部分,负责将处理好的视频数据通过无线网络传输到存储设备或者远程访问设备上。
我们选择了高速、稳定的WLAN模块,以确保数据的及时、准确的传输。
4. 存储模块存储模块是用于保存视频监控数据的部件。
我们选择了高性能的硬盘作为主要存储介质,以及SD卡作为备份存储介质,以确保数据的安全性和可靠性。
5. 远程访问控制模块远程访问控制模块允许用户通过Internet远程访问视频监控系统,实时查看、回放监控画面。
用户只需通过登录系统,即可实现对视频监控画面的控制和操作。
三、系统工作流程基于ARM9与Linux的WLAN视频监控系统的工作流程如下:1. 摄像头采集前端摄像头模块负责实时采集监控画面,并将采集到的数据传输给ARM9处理器模块。
2. 数据处理与编码ARM9处理器模块对采集到的监控数据进行处理、压缩和编码,减少数据量的同时保留重要信息。
基于ARM11—Linux的视频采集传输系统的研究
中 图 分 类 号 :T P 3 9 3 文 献 标 识 码 :A 文 章 编 号 :1 6 7 4 — 7 7 2 0 ( 2 0 1 3 ) 0 8 — 0 0 9 1 — 0 4
Ab s t r a c t :T h i s p a p e r s t u d i e s a k i n d o f ARM l 1 b a s e d o n t h e v i d e o a c q u i s i t i o n w i r e l e s s t r a n s mi s s i o n s y s t e m, a n d i t r e a l i z e s
应 用 函数 等 完 成摄 像 头的 采 集 ; 在 传 输 系统 方 面 , 采 用 传 输 速 度 较 快 的 WI F I — Ad — Ho c模 式 ( 端 对 端 传 输) , 依靠 T C P / I P协 议 的 传 输 方 式 使 采 集 端 与 家 庭 网 关 之 间 建 立 连 接 , 成 功 实现 家 庭 网 关 对 各 个 分 散
( Me c h a n i c a l a n d E l e c t r i c a l E n g i n e e r i n g C o l l e g e ,N o r t h C h i n a U n i v e r s i t y o f T e c h n o l o g y , B e i j i n g 1 0 0 1 4 4, C h i n a )
f r o m t h e ma i n f a mi l y t o e a c h d i s p e r s i o n e f f e c t i v e mo n i t o r i n g r o o m g a t e wa y t h r o u g h t h e c a me r a .T h e s y s t e m c h o o s e s ARM 1 1 k e r n e l ¥ 3 C 6 41 0 a s a s y s t e m p r o c e s s o r a n d CMO S c a me r a OV9 6 5 0 a s a c q u i s i t i o n e n d.I t b u i l d s L i n u x s o f t w a r e s y s t e m i n t h e i n d e p e n d e n t d e s i g n h a r d w a r e p l a t or f m wi t h s y s t e m i n t e r n a l V 4 L 2 p r o v i d e d d a t a s t r u c t u r e a n d a p p l i c a t i o n f u n c t i o n i n o r d e r t o c o mp l e t e c a me r a
(完整版)基于ARM的视频监控系统的设计与实现1_图文.
-42-20078产品设计与实现一、前言二、数字视频监控系统的组成三、视频服务器的硬件实现监控系统作为现代企业不可缺少的重要组成部分,已广泛应用于交通、医院、银行、家居、视频会议和视频点播、证券、远程教育等诸多领域,可以有效地避免安全隐患的发生,保障员工人身安全和企业资产不受损失,实现无人值守。
早期的模拟监控系统不能联网,只能与监控中心进行点对点通信,随着图像与视频处理技术、网络技术和自动控制技术的发展,视频监控系统已过渡到数字化的网络监控。
它以数字视频的压缩、传输、存储和播放为核心,采用先进的数字图像压缩编/解码技术和传输技术,将智能图像处理与识别技术用于图像显示、调整、跟踪,根据现场环境智能调节摄像机的位置及清晰度,对物体进行跟踪识别,对图像进行分析和处理。
数字视频监控系统主要由监控中心、通信链路和多个监控站点组成。
通讯链路在企业内部使用企业已经铺设好的局域网线路,将其连人企业内部网,然后可以将其接人Internet,以便将信号传输给远端分控计算机或授权用户。
传输的数据包括视频、报警等录像数据和控制信号。
监控中心具有电视墙、磁盘阵列、服务器、交换机和路由器等网络设备,还可以通过多级级联构成多级监控系统。
监控站点主要由视频服务器和摄像机组成,整个系统组网灵活;可以突破地域限制,进行大规模、远距离的实时图像监控和报警处理。
如图1所示。
监控系统的软件包括客户端、服务器端软件两部分以及相互之间的通信。
在实际工作中,根据实际情况,在需要的地方安装相应的前端监控设备(彩色或黑白摄像机、固定或活动云台、定焦或变焦和相应的软件系统。
图I中的每个监控站点主要由摄像头、云台控制器、网络视频服务器组成,可配置可变镜头、麦克风、扬声器等外设,如图2所示。
其中网络视频服务器以嵌人式微处理器为核心,由视频采集编码模块、网络功能模块、实时时钟模块、摄像头云台控制模块等组成。
嵌人式微处理器是硬件部分的核心 , 采用 SAMSUNG的微处理器S3C4510B。
基于ARM11在Linux平台下网络通信的设计与实现
基于ARM11在Linux平台下网络通信的设计与实现摘要:arm11系列微处理器是arm公司近年推出的新一代risc处理器,其性能得到全面的提高。
嵌入式linux有着微型的内核、可裁剪的模块以及高性能的网络通信等功能。
两者的结合能满足消费类电子、无线设备、网络应用、汽车电子等嵌入式应用的需求。
关键词:arm11;linux;网络通信中图分类号:tp316 文献标识码:a 文章编号:1009-3044(2013)07-1553-03随着cpu制造工艺的飞速发展,越来越多的高性能、低功耗的嵌入式微处理器应用到我们生活中的各个方面,arm11采用arm公司新一代的指令架构armv6,其主频最高可达到1ghz,功耗低至0.4mw/mhz,采用8级流水线技术。
另一方面,它对存储器系统进行改善,使其更加适用于操作系统对硬件上的需求。
linux是在unix的基础上发展起来的,它是一种安全、稳定、免费并且能移植到多种架构的处理器平台。
linux分为多个模块,可裁剪一些次要的模块以减小程序量,从而更好地满足微处理器对功耗和成本的要求。
1 嵌入式linux软件开发环境的搭建1.1 嵌入式linux开发环境简述嵌入式linux驱动程序的开发需在以linux为内核的操作系统系统下进行,为方便开发时的数据传输及信息反馈,安装vmware虚拟机软件,并且在其中安装ubuntu 10.10操作系统。
需要注意的是,操作系统的版本不能太低,因为版本过低,很多工具都无法找到对应的支持包,导致一些软件的失效。
ubuntu是以linux为内核的操作系统,在ubuntu安装之初,系统会要求你输入要新建的账户和密码,这个新建的账户用于ubuntu 第一次启动时的默认登录账户。
ubuntu10.10支持图形用户界面,但linux中还有很多功能都不能以图形界面的形式表达。
因此,要学好linux,就必须对linux的命令行有比较深入的了解。
ubuntu10.10会自动安装vmware工具,用于虚拟机系统与宿主机之间的文件传输等,即用户可以直接拖动宿主机的文件到虚拟机中。
嵌入式系统课程设计:基于ARM11的嵌入式视频监控系统设计
嵌入式系统课程设计(报告)题目:基于ARM11的嵌入式视频监控系统设计院系:专业:班级:姓名:学号:指导教师:二〇年月嵌入式系统课程设计(报告)摘要当今世界科学技术飞速发展,越来越多的技术面世,给我们的生产生活带来了巨大的便利,监控摄像头随处可见,成为生活中不可缺少的工具之一。
为了更好地运用高科技带来的便利以及发展最新科技,了解学习是首要任务。
本课题设计选题就是基于当下流行的视频监控技术来完成的,选用的服务器是较为简单的boa服务器辅以基于ARM11架构的S3C6410开发平台,其搭载的操作系统为Linux系统,能够实现我们想要的数据采集与传输的功能。
基于Linux操作使用USB摄像头作为采集终端进行数据的收集,应用程序通过操作设备文件实现对内核驱动的控制,使用C语言编写基于B/S模式下的服务器应用程序,在传输阶段用到了TCP/IP通信协议,最终能够实现对视频数据的一系列操作,从采集、压缩、传递、解压到最后的网页播放等。
基本实现了实时视频监控的需求。
关键词ARM11 嵌入式视频监控Linux操作系统目录第1章绪论 (1)1.1 目的与意义 (1)1.2 发展与趋势 (1)1.3 设计任务 (2)第2章硬件设计 (3)2.1 视屏监控系统的结构设计 (3)2.2 ARM处理器简介 (3)2.3 S3C6410体系结构 (4)2.4定制嵌入式Linux内核 (5)2.5 嵌入式文件系统 (6)第3章软件设计 (9)3.1 Linux操作系统简介 (9)3.2 交叉编译环境的建立 (9)3.3 嵌入式Linux移植 (10)第4章视频采集 (11)4.1 V4L2简介 (11)4.2 采集数据的操作 (11)4.3数据采集函数及解析 (12)第5章视频处理 (14)5.1 格式比较 (14)5.2 JPEG压缩 (14)5.2.1JPEG简介 (14)5.2.2JPEG库简介 (15)第6章系统测试 (17)6.1测试方法 (17)6.2测试结果 (17)结论 (18)参考文献 (19)第1章绪论1.1 目的与意义网络视频监控系统由基于ARM11架构体系嵌入式开发平台和网络客户端组成,实现通过摄像头对图像进行高帧率采集形成的视频数据获取功能,通过硬件开发平台接入以太网网络把视频数据展现到网页上。
基于ARM和Linux的网络视频采集传输方案的设计和实现
基于ARM和Linux的网络视频采集传输方案的设计和实现刘宇;车进【摘要】针对现有的视频采集设备占用较多空间,而且需要使用专用资源的情况,设计了一个基于嵌入式的网络视频采集传输方案.该方案采用ARM11为核心处理器,嵌入式Linux为软件平台,搭建嵌入式平台.将视频服务器MJPG-streamer移植到该嵌入式平台,实现图像的采集、压缩和传输,使用者可在Web浏览器中观察到远端的实时视频画面.实验结果表明,该方法能够很好地采集、处理和发送视频,实现远程观察实时的视频画面,且设备占用空间较小.【期刊名称】《宁夏工程技术》【年(卷),期】2014(013)001【总页数】4页(P30-32,36)【关键词】嵌入式系统;Linux;MJPG-streamer;视频图像采集【作者】刘宇;车进【作者单位】宁夏大学物理电气信息学院,宁夏银川 750021;宁夏大学物理电气信息学院,宁夏银川 750021【正文语种】中文【中图分类】TN919.8;TP368.1在日常生活中,视频采集的应用场合很多,诸如门禁、安防、远程视频会议等.现有的视频采集设备,模块较多,在使用中要占用很多空间.因此,本文提出了一种基于B/S结构的嵌入式Linux的网络视频采集传输方案,该方案取代了以前占用空间较多的视频采集设备,而将图像采集、图像的压缩和编码以及网络传输集成到一个体积小、占用资源少的嵌入式系统中,通过远端的浏览器观察视频画面.1 总体设计本方案采用飞凌嵌入式公司出品的ARM11开发板TE6410作为硬件平台,Linux 操作系统作为软件平台,通过USB摄像头采集图像,然后利用MJPG-streamer 视频流服务器及其相关插件获取、处理图像[1],并通过网络发送到用户平台,用户可以通过浏览器查看视频.方案整体结构见图1.图1 方案整体结构图2 方案硬件设计本方案主要采用ARM11开发板TE6410、USB摄像头和一台计算机.TE6410开发板搭载了三星公司出品的s3c6410核心板,主频高达533MHz,配有256 MB的DDR内存和4GB的NAND FLASH.TE6410开发板有3个串口,一个LCD扩展口,一个100 M网口.它标配的USB Host插口和USB Slave插口均为2.0标准,采用8位拨码开关选择不同的启动方式.外部扩展端口包括一个SD卡槽,一个Wi-Fi扩展接口,以及摄像头接口和J-TAG接口等.USB摄像头采用罗技公司的C270网络摄像头.采用一台运行Ubuntu12.10操作系统的计算机作为用户平台.方案硬件结构见图2.图2 方案硬件结构图3 方案软件设计本方案软件设计主要包括U-Boot,Linux内核,rootfs.yaffs2,MJPG-streamer 软件的修改和移植[2].方案软件框图见图3.U-Boot是在操作系统运行之前运行的一段小程序,用来完成硬件设备的初始化,从而将系统软硬件环境带到合适状态,为最终调用操作系统做好准备.编译好的U-Boot可以在TE6410开发板附带的光盘里找到.Linux内核采用3.0.1版本,该版本的内核包含USB摄像头的驱动和V4L2驱动框架[3].当内核烧写到开发板中,插上USB摄像头便自动识别.本方案采用rootfs.yaffs2作为TE6410的文件系统.rootfs.yaffs2是一个专门为NAND FLASH存储器设计的嵌入式文件系统,适用于大容量的存储设备,而且它是开源软件,所以采用rootfs.yaffs2作为文件系统[4].MJPG-streamer是一个开源项目,通过支持Linux-UVC的网络摄像头采集JPEG 图像,并且将采集到的图像流式传输成为M-JPEG视频流,通过网络传输给浏览器.它是一个可移植的Linux-UVC流媒体应用.之前,国外的嵌入式爱好者将MJPG-streamer项目移植到了Mini2440平台,并设立了一个名为mjpg-streamer-mini2440的开源项目.基于TE6410开发板,笔者在mjpg-streamer-mini2440开源项目的基础上进行拓展,使之能够移植到TE6410开发板上正常使用.图3 方案软件框图3.1 交叉开发环境的搭建TE6410开发板采用U-Boot作为引导程序、嵌入式Linux系统镜像(版本号为3.0.1)和rootfs.yaffs2文件系统.将这3个文件从开发板附带的光盘里复制到SD 卡中,SD卡插入开发板的SD卡槽,开发板设置为SD卡启动模式,启动开发板一键安装嵌入式Linux系统.交叉开发环境需要Linux桌面系统,选用Ubuntu12.10.首先在计算机安装VMware8.0虚拟机,在虚拟机中安装Ubuntu12.10;再在Uubuntu12.10中安装交叉编译工具链Arm-Linux-Gcc-4.3.2;之后使用VMware8.0自带的VMware-Tools实现虚拟机和主机的文件共享;最后将虚拟机设置为桥接方式使之能够上网,并将虚拟机和开发板设为同一网段后使用ping命令将虚拟机和开发板连通.3.2 MJPG-streamer移植过程将MJPG-streamer视频流服务器移植到TE6410开发板上运行,从而实现图像采集和网络传输,具体移植过程如下:(1)下载mjpg-streamer-mini2440项目源代码:mjpg-streamer-mini2440-read only,并放在ubuntu的一个文件夹中(比如/mnt/webcamera文件夹). (2)进入 webcamera文件夹中,用 VI编辑start_uvc_yuv.sh 的内容[5]:执行以下命令进行编译链接并打包[6]:在当前目录下会生成mjpg-streamermini2440-bin.tar.gz.经过以上步骤,已将参数配置成适合TE6410开发板和USB摄像头的环境,将它复制到SD卡中.(4)在TE6410开发板上安装MJPG-streamer.将SD卡插入开发板的SD卡槽里,在开发板的终端输入以下命令安装MJPG-streamer:3.3 M-JPEG压缩算法研究与实现M-JPEG视频编码格式,把运动的视频序列当作连续的静止图像来处理,该压缩方式单独完整地压缩每一帧,在编辑的过程中可随机存储每一帧,可进行精确到帧的编辑.其主要特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩.M-JPEG单帧压缩算法为JPEG算法,即把一幅图像分成8×8的方阵之后进行离散余弦变换(DCT).离散余弦变换是将光强数据转换成频率数据,从而得知强度变化情况.因为人类视觉系统对图像的低频成分比对高频成分有更高的敏感度,因此如果对图像的高频成分进行量化,再还原成光强数据,尽管与原图像有些差异,但人眼难以分辨[7].JPEG压缩是有损压缩,损失的部分是人类视觉不容易觉察到的高频成分,节省大量需要处理的数据信息.以下就是JPEG所使用的二维DCT公式式中:f(i,j)为像素值,F(u,v)为变换系数,u,v为系数下标.在压缩时,将原始图像分成很多个8×8像素的图像数据块.之后,通过零均值化,将每个字节的值从0~255转为-128~+127,并以此作为离散余弦正变换FDCT(Forward DCT)的输入.FDCT将每个数据块的值换为64个DCT系数,第1个系数称为直流系数,而其余63个系数则称为交流系数.在解压缩时,经逆向IDCT(Inverse DCT)将64个DCT系数还原为8×8像素的数据块,然后组成完整图像[8].4 方案测试USB摄像头插入开发板的USB Host端口,开发板上电.首先,在超级终端下进入TE6410开发板,使用ping命令将虚拟机和开发板连通.之后,启动开发板上的服务器端.此时,MJPG-streamer启动,并且其输入组件通过USB摄像头采集JPEG 格式的图像,保存到内存中;网络服务器输出组件能够从内存中获取JPEG格式的图像,并将图像流式传输成为M-JPEG视频流,通过网络服务器发送给计算机.在虚拟机的Web浏览器中输入开发板IP地址发出访问请求,服务器收到访问请求后与客户端建立连接并将视频数据发送到客户端监听端口,用户可以在虚拟机的Web浏览器中观察到实时的视频画面.测试在Ubuntu12.10操作系统下完成,采集原始图像的格式为YUYV,分辨率为640×480,转换成JPEG格式图片的压缩率为0.8∶1.在此测试环境中,视频画面清晰、流畅,实时性好.本方案的测试对照结果见图4,图4a是开发板的液晶屏上显示的YUYV格式图像,图4b是用户平台的Web浏览器中显示的JPEG格式图像.图4 方案的测试对照结果5 结语本方案使用支持Linux-UVC的USB摄像头采集图像,采用飞凌公司出品的ARM11开发板TE6410和嵌入式Linux操作系统处理图像,通过移植MJPG-streamer视频流服务器,实现基于网络的视频采集传输.本方案是一种结构紧凑、占用空间很小的网络视频采集传输方案,不仅USB摄像头非常容易获得,而且充分利用现有的网络资源,不必使用额外的设备或资源.本嵌入式视频采集传输方案将在视频会议、交通监控等方面有很好的应用前景.参考文献:【相关文献】[1]杨宏,张志文.基于Web的嵌入式远程监控系统的研究与实现[J].计算机与数字工程,2012(10):70-72.[2]冯兴乐,王建建,张哲,等.基于嵌入式Linux的无线图像传输在车联网的应用[J].电视技术,2012(21):156-159.[3]于艳萍,朱晓智,王中训.基于ARM9和USB摄像头的网络视频采集系统设计[J].现代电子技术,2011(24):49-51.[4]陈毅辉,王存堂,钱帅杰,等.模糊智能控制在卷绕系统中的应用[J].机械设计与制造,2006(7):146-148.[5]庄严,王骁,汤建敏.嵌入式C/C++系统工程师实训教程[M].北京:清华大学出版社,2011.[6]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2009.[7]祝宁,叶念渝.JPEG图像文件格式的分析及应用[J].电脑与信息技术,1999(3):21-24.[8]许刚,廖斌,李承毅.JPEG图像文件格式分析[J].计算机系统应用,1998(10):37-39.。
基于ARM11的视频采集与编码系统的设计
基于ARM11的视频采集与编码系统的设计摘要:基于嵌入式技术的无线视频监控以其灵活性、高集成性、便捷性等诸多优点必将取代传统的有线视频监控。
针对目前视频监控的实际需求,结合嵌入式技术、图像处理技术,设计并实现了一种可靠性高、成本低的嵌入式视频采集及编码系统。
它是视频监控的前端,是无线视频监控系统的一个子系统。
系统选用S3C6410微处理器作为核心板的控制器,采用USB接口的摄像头进行采集,利用S3C6410的硬件编解码模块进行H.264编码。
根据系统的功能要求,开发了zc301摄像头和MFC的设备驱动程序,并采用内存映射方式和双缓冲思想编写了基于V4L的视频采集程序。
探讨了H.264的编码特性和码流结构,利用MFC驱动中的API函数,开发了基于H.264算法的视频编码程序。
测试表明,设计的系统视频采集效率高、图像连续性好、运行稳定。
关键词:嵌入式系统;ARM11;S3C6410;视频采集;视频编码;H.264ABSTRACT:In the future, Wireless video monitoring system based on embedded technology, with many advantages such as flexibility, integration, convenience and so on, will replace existing wired video monitoring system inevitably. Aiming at actual demand of present video monitoring, this paper designs and realizes a reliable and cheap embedded video capturing and compression system, with the combination of embedded technology and image processing technology. This system is the front end of video monitoring and a subsystem of wireless video monitoring system. This system chooses S3C6410 as the kernel board's controller uses the camera with USB interface to capture pictures and encodes the video data using the codec of S3C6410. According to functional requirements of the system, device drivers of MFC and zc301 camera are developed, and video capturing application based on V4L using Memory Mapping and the idea of the double buffer are also developed. After a brief study on the feature and stream structure of H.264, video encoding application based on H.264 with the MFC driver’s API is completed. The test shows that this system has a high efficiency to capture video data, has good continuity for pictures and can run stably.KEY WORD:Embedded system; ARM11; S3C6410; Video capturing; Video encoding; H.264引言视频具有表达客观事物直观、生动、形象,信息丰富等优点,它在各行各业的应用日益受到人们的关注。
基于GPRS和ARMLinux的远程图像监控系统
率分别为 9 5 bsc 一) 3 b sC 一) 5 bsC -) 2 .kp ( S4 ,其 . p( s1 、1.k p (S2 、1.k p( S3及 1 sC 一 ) 0k 4 6 4b 中 ,C — 的保护最 为严密 ,C - Sl S4则完全未加任何保护 ,每个用户最多可同时使 用 8 个时槽 ,因此 ,G R 最高理想传输速率可达 11 p. PS 7 .k s 2b
内的设施 、家居 和 办公 场所 进 行实 时监 控 或获 得 相关 信 息.
1 GR P S技术 特 点
G RS G nrlPce ai Srie 即 通 用 分 组 无 线 服 务 或 业 务 [,是 以利 用 P ( eea aktR do evc ) 1 】
“ 包交换”(akt wt e ) P ce S i hd 的概念发展 而来 的一种无线传输技术.采用包交换 的好处 - c 在于只有 当需要传送数据时才会 占用一定 的频带宽度 ,且可以以传输的数据流量来计 费.在 G M pae S hs2的标准里 ,G R 提供 了 4种不 同的编码方式 ,这些编码方式分 PS
文章 编 号 :10 — 2 7 20 )4— 0 4— 6 0 1 4 1 (0 7 0 0 2 0
基于 G R P S和 A M iu R L n x的远程 图像监控 系统
姜 晖 ,牛 治都
203) 3 0 7 ( 解放 军电子工程学院信息T程 系,合肥
摘
要 :简要 介 绍 了 G R P S技 术特 点 ,并 以 移 动用 户 低 成 本 核 算 为 出发 点 ,设 计 了 一套 基 于
基于V4L2嵌入式视频监控系统
基于V4L2嵌入式视频监控系统黄新;梁洋洋【摘要】以实现视频监控更加有效便捷为目的,设计与实现了一种基于V4L2嵌入式移动视频监控系统.系统硬件选用飞凌公司的OK6410嵌入式开发板,其处理器为ARM11-S3C6410,使用Boa为服务器.在ARM-Linux操作系统中,V4L2应用程序接口对USB摄像头采集到的视频数据,通过H.264压缩编码、在通过TCP/IP协议进行网络传输给Web.客户输入相应的网址,即可观看视频和图像,从而进行视频监控.最后实验测试系统程序运行稳定可靠,视频画质清晰,且具有较好的实时性,解决传统视频监控不便捷、维护困难等问题.【期刊名称】《仪器仪表用户》【年(卷),期】2017(024)005【总页数】5页(P46-50)【关键词】S3C6410;视频采集;V4L2应用接口;Web服务器【作者】黄新;梁洋洋【作者单位】桂林电子科技大学电子工程与自动化学院,广西桂林 541004;桂林电子科技大学电子工程与自动化学院,广西桂林 541004【正文语种】中文【中图分类】TP21世纪以来,随着科技的迅速发展,计算机应用技术的完善, 监控系统已经成为各行业必不可少的管理资源和监督手段。
现今,不仅运用在传统安防(公安、大型企业等主要的办公场所),而且在交通、电力、园区以及医院等都融入视频监控领域。
第一代的模拟视频监控不能实现远程访问,集成度低,安装需要铺设专门的路线,线路老化,还需要进行后期维护,比较麻烦。
第二代视频监控在90年代末,随着数据压缩和传输技术日益成熟,将模拟视频数据通过DVR转换为相应的数字信号。
因此,在视频数据的采集、传输等功能上,对质量、抗干扰能力、通信距离等方面都有了很大的提升,但缺点是将PC机不停的工作,减低PC机的寿命,不能满足现今社会需求。
监控技术也发生很大的提升,由视频模拟化转向数字化,在由数字化发展到现今的监控网络化,在到以后的系统集成化、智能化。
基于ARM11的视频监控系统设计
基于ARM11的视频监控系统设计王宝珠,程杰(河北工业大学信息与工程学院,天津300401)摘要:为了实现远程视频监控的功能,提出了一种基于ARM11和嵌入式Linux 的远程视频服务器的方案。
使用V4L2接口对数据进行采集,选择了具有很高压缩效率的H.264压缩标准,通过CPU 内部集成的MFC 模块实现对视频流的硬件压缩,在移植到系统的boa 服务器上编写了CGI 脚本响应远程客户端的响应。
在客户端中,通过SDL 和FFmpeg 库提供的API 接口完成了对经过网络传输到客户端上的视频数据的解码与播放,完成了包括视频的采集、编码、传输、显示各个功能模块的整个系统设计。
关键词:V4L2;H.264;CGI ;FFmmpeg 中图分类号:TP302文献标识码:A文章编号:1674-6236(2013)03-0079-03Design of video surveillance system based on ARM11WANG Bao -zhu ,CHENG Jie(College of Information Science and Engineering ,Hebei University of Technology ,Tianjin 300401,China )Abstract:In order to satisfy the requirement of the remote video surveillance ,the design of video surveillance system based on ARM11and embedded Linux system is used in the paper.This article uses the V4L2interface for data collection ,selected with a high compression efficiency of H.264compression standard ,by the CPU internal integrated MFC module hardware compression of video streams ,and transplanted to the boa server write a CGI script to respond the remote client to realize the various video functional modules of the overall system design including the collection ,coding ,transmission ,display ,the API interface to SDL and FFmpeg libraries in the client is used to complete the network transmission to the client ,and the decoding and playback of the video data.Key words:V4L2;H.264;CGI ;FFmmpeg收稿日期:2012-09-27稿件编号:201209198作者简介:王宝珠(1962—),女,北京人,硕士,教授。
基于ARM+Linux平台的智能监控系统开发
8 iN n l hK F G 8 O b adF s 9 2 0 U A作为程序 和数 据存储 t a 器 , 用两片 1 采 6位 S R M HY 7 5 12 D A 5 V 660并 联 构 成
ZHAO h . u S u d o。CHEN n.h n Yu s e g,W EI W e . u iy
( o tw s P t lu nvr t,C e gu6 0 0 C ia S uh et e o m U i s y hn d 15 0, hn ) re ei
Ab ta t sr c :Thsp p rd sg tlg n nt r g s se ,b s d o a u g i a e e in ai el e tmo i i y t m n i o n a e n S ms n s ARM r c s o 3 2 4 n o p o e s r c 4 0 a d p wer l s f , u o e o re Ln x o ert g s se .whc mpe nst e i g d e vr n n aa a q iio p n s uc iu p a i y t m n ih i lme t h ma ean n i me td t c ust n,a d te rn m i— o i n h n t s s a so y it me ,t e cin a th t e vd o i g ho g h e mia ot r n o to h o ig o amea, in b ne t h l tc n wa c h ie ma e t ru h te t r n l f e s wa e a d c nr l e m vn fc t r a d ias a e c lr u d mo i r g a y ee. n lo c n ra hal o n nt i n wh r t - o n Ke d y WOrs:s c 4 0;Ln x;mo i r g s se ;itr e 3 24 iu nt i y tm ne n t o n
基于嵌入式ARM9-Linux网络视频监控系统的设计与实现
进行 配 置 , 编译 出镜 像 烧 写 到 ¥ C 4 0嵌 人 3 24 式平 台上 , 入 U B摄 像 头 , 示 以下 一些 信息 : 插 S 提
u b 1—1 2: n w u ls e d USB d vc sn s . e fl p e e ieu ig s c 41 —o c n d r s 5 3 2 0 。 h ia d a d e s i p t S t r B 2. me a a /ca s n t n u : a u US 0 Ca r . s ls/i pu/ n
户程 序 中 使 用 ic ot l函数 控 制 设 备 的 IO 通 道 。 / 用 Oe p n(” d v v eO” v  ̄d)打 开 视 频 , / e/ i o , d f d 用 Coe ” d v v e0 , dt ) 闭 视 频 设 备 。在 ls( / e/ i o ” v ed 关 d f
现场 视频 采 集 采 用 U B接 口 的任 意 型号 高 S 清 摄 像 头 , 理 器 采 用 内 核 操 作 频 率 Fl: 处 c k
40 0 MHz H l: 3 MH , c :8 , c 16 z P l 6 MHz的 ¥ C 4 0 k k 3 24
广泛 、 功能简单 、 形式单一 、 应用 软件普及率低等
[ ] S C ae e cms G P A bsdw b a 一一 一>
协 议栈 的移 植 。用 户层 即应 用 软 件 , U B摄像 当 S
头 驱 动加 载之 后 , 频采 集 模 块 采 集 摄 像 头 的视 视 频 数 据 , 后通 过 网络 传 送 到 客 户 端 。系 统 的整 然 体 软 件架 构如 图 2所示 。
ARM视频监控_详细开发文档(海思)
原始图像 V4L 采集模块
数字图像
XVID 编码模块
Socket 传输模块
网络
数字图像
原始图像
Socket 接收模块
XVID 解码模块
SDL 显示模块
3.1 V4L 采集模块
图 2 各模块之间的联系
V4L 采集模块用于设置摄像头参数,进行原始图像的采集。采用 Linux 系统中支持的 Video4Linux 这一组 API。Video4Linux 是 Linux 的影像流系统与嵌入式影像的基础,是 kernel 中支持图像设备的一组 API,配合适当的视频采集驱动,可以实现影像的采集捕捉等 功能。
3 视频采集传输存储模块设计.......................................................................................... 3
3.1 V4L 采集模块 ......................................................................................................... 3 3.2 XVID 编码模块........................................................................................................ 5 3.3 SOCKET 传输模块...................................................................................................... 5 3.4 SOCKET 接收模块...................................................................................................... 6 3.5 XVID 解码模块........................................................................................................ 7 3.6 SDL 显示模块 ......................................................................................................... 7 3.7 存储模块 ............................................................................................................... 8
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ARM11+Linux的无线视频监控系统1 引言随着无线网络的普及,ARM处理器运算的能力不断地增强以及计算机处理图像的技术不断地提高,基于ARM 的视频监控正越来越广泛的应用于学校,社区,酒店,网吧,医疗等各种各样地领域。
传统的视频监控系统布线复杂,设备庞大,智能化低,以及软硬件资源得不到充分的发挥。
而arm嵌入式系统的小型化、占用空间小、成本低廉、结构紧凑、支持无线网络等特点,使得利用S3C6410 的arm11+linux系统构成各种各样的无线网络数字监控系统具有广泛的应用价值。
2 系统整体设计2.1 硬件总体设计本系统采用韩国三星公司arm11 内核的S3C6410 作为微处理器,该款处理器体积小,尺寸仅相当于一个48mm*67mm 方块的大小,同时集成了丰富的接口,32 位数据总线和32 位外部地址总线,SROM 控制器、 SRAM 控制器、NAND 闪存控制器、64 个中断源的中断控制器、五个三十二位定时器、四个UART、四个DMA 控制器、STN 与TFT LCD 控制器、看门狗、IIS 音频接口、IIC-Bus 接口、两个USB host口、一个USB device 口、两个串行外围接口电路、三个SD 卡接口、camera_if 接口、TV_out 接口、MFC接口、2 路SPI、Touch Screen 接口,其主频可达800MHz,扩展总线最大频率133MHz.在此基本上,还进行了相关的扩展,引出了一个四线RS-232 串口,该串口用于开发主机与S3C6410 开发平台进行通信;配置了1GB 的NANDflash,用于存放嵌入式linux操作系统,应用程序和数据,128MB 的DDR 内存,用于存放运行程序,摄像头捕获的数据;扩展了一个WIFI 模块,用于开发平台与服务器传输视频数据,通过无线网络实现视频远程监控。
2.2 软件总体设计软件总体结构包括引导加载程序Bootloader、操作系统内核,设备驱动程序和应用层程序,其软件结构如图1 所示。
图1 软件总体结构框图该系统上电后,先运行引导加载程序Bootloader,该程序的作用是初始化硬件设备、建立内存空间的映射表,引导和加载操作系统内核,然后启动嵌入式操作系统linux,接着加载Nand flash 驱动程序、LCD 驱动程序、WIFI 驱动程序等一些必要的驱动程序。
3 视频数据采集和编码设计3.1 基于V4L2 视频数据采集设计在Linux 系统下,对视频设备的各种操作是通过Video4Linux2 实现的,简称V4L2.应用程序通过V4L2 提供的接口函数实现视频设备的操作。
整个视频数据采集的过程如图2 所示。
(1)打开视频设备,int open(const char *pathname,int flags)。
调用该函数,若返回值为-1,表示打开失败,否则,表示所打开设备的文件描述符。
(2)取得设备信息。
通过ioctl(cam_fp,VIDIOC_QUERYCAP,&cap)函数来取得设备文件的属性参数并存储于cap 结构中,其中cam_fp 指的是打开的视频设备的文件描述符。
(3)选择视频输入方式。
通过ioctl(cam_fp,VIDIOC_ S_INPUT,&chan)函数设置视频设备的输入方式,其中chan 的数据结构类型是v4l2_input,用来指定视频的输入方式。
(4 )设置视频帧格式。
通过ioctl(cam_fp ,VIDIOC_S _FMT,&fmt)函数设置视频的帧格式,其中fmt 的数据结构类型是v4l2_format,用来指定视频的宽度、高度、像素大小等。
(5)读取视频数据。
通过read(cam_fp,g_yuv,YUV_ SIZE)函数,把摄像头一帧的数据存放到g_yuv中,其中YUV_ SIZE 指的是每帧数据的大小。
(6)关闭视频设备。
通过close(cam_fp)函数来实现视频设备的关闭。
图2 视频数据采集流程框图。
3.2 视频数据的H264编码为了提高视频数据编码速度,本系统采用的是H264 硬编码方式,硬编码具有不占用CPU 资源,运算速度快等优点,从而满足视频数据实时性的要求。
具体编码的过程如图3 所示。
(1)创建H264 编码结构。
调用SsbSipH264EncodeInit (width,height,frame_rate,bitrate,gop_num)函数实现的,其中width 表示图像的宽度,height 表示图像的高度,frame_rate 表示帧频,bitrate 表示比特率或码率,gop_num 表示两个相离关键帧之间最多包含多少个帧(B 或P 帧)。
(2)初始化H264 编码结构,调用SsbSipH264Encode Exe (handle)函数。
(3)获取视频输入地址,SsbSipH264EncodeGetInBuf (handle,0)函数来实现,该函数返回视频输入的首地址,存放在p_inbuf 中。
(4)输入视频数据,调用memcpy(p_inbuf,yuv_buf,frame_size)函数实现,p_inbuf 存放需要编码的数据,yuv_buf 存放原始视频数据,frame_size 表示数据的大小。
(5)编码视频数据,对p_inbuf 内容进行H264编码,调用SsbSipH264EncodeExe(handle)函数实现。
(6)输出已编码的数据,SsbSipH264EncodeGetOutBuf (handle,size),该函数返回已编码图像的首地址,size 表示已编码图像的大小。
(7)关闭硬编码设备,调用SsbSipH264EncodeDeInit (handle)函数实现的。
图3 H264 编码流程框图4 视频数据的传输和显示4.1 视频数据传输模块设计现代无线通信网络标准主要有3G(第三代移动通信),WI-FI,Bluetooth,Zigbee(紫蜂)等,具体详见表1.表1 常用无线通信网络标准的基本比较由于WI-FI 具有传输率高,支持的协议多,安装及设置简单,成本低等优点,所以本系统采用的无线网络标准是WI-FI.4.1.1 WI-FI 无线网络搭建过程(1)加载WI-FI 模块。
通过insmod 命令加载,这里需要加载 2 个文件helper_sd.bin、sd8686.bin,这2 个文件可以从Marvel 官方网站下载。
(2)搜索WI-FI 网络。
先用ifconfig eth1 up 命令把WI-FI 网络接口卡打开,然后用iwlist eth1 scanning命令搜索WIFI 网络。
(3)设置eth1 的ip 地址和子网掩码。
(4)设置ESSID.通过iwconfig eth1 essid 402命令实现的,ESSID 用来区分不同的网络。
(5)设置密码。
通过iwconfig eth1 key s:your_key命令实现的,其中your_key 就是登陆密码。
4.1.2 基于RTP 协议的视频数据传输RTP 是实时传送协议(Real-time TransportProtocol)的缩写,代表一个网络传输的协议,为音频、视频上传中的常用协议[5].RTCP 和RTP 一起提供流量控制和拥塞控制服务,它们能以有效反馈和最小开销使传输效率最佳化,因而特别适合传送实时的数据,所以采用该协议传输视频数据。
本系统采用开源代码Jrtplib 提供的RTP 协议栈,由于Jrtplib 对RFC3550 的实现进行了封装,使得传输视频数据更加简单。
由于本系统的网络最大有效载荷为1500 字节,因此设置RTP 包大小的上限为1400 字节,如果发送的数据大于1400 字节,则采用拆包的方法再发送,具体传输过程如图4 和图5 所示。
图4 发送端流程框图。
图5 接收端流程框图。
发送端主要过程如下:(1)创建RTP 会话并设置目标地址。
调用Create方法得到RTP 会话实例,然后调用AddDestination 方法设置目标IP 以及目标端口号。
(2)获得数据,调用Get_Data()函数得到。
(3)发送数据,通过SendPacket()方法实现。
接收端主要过程如下:(1)创建RTP 会话。
调用Create 方法来创建一个会话实例,并且在创建会话的同时设置端口号,要与发送端的端口号保持一致。
(2)接受RTP 数据。
调用RTPSession 类的PollData()方法接收数据。
(3)保存RTP 数据报。
通过创建了一个指针数组,里面存放的是RTP 数据报的指针,只要将刚接收到RTP 数据报的指针赋给这个指针数组即可,这样可以节省数据拷贝的时间。
(4)判断是否接收完成,如果没有,则跳转到第b 步,否则接收端程序退出。
4.2 视频数据的解码和显示由于接收到的数据是经H264 编码的数据,因此,先要对该数据进行解码,然后才能显示。
而在服务器端,对视频数据解码用到FFmpeg.FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件。
解码时主要涉及FFmpeg 下的libavcodec 库、libswscale库和libavformat 库,其中第一个库是一个包含了所有FFmpeg 音视频编解码器的库,第二个库是格式转化库,因为解码后的数据是YUV420 格式,而要在计算机上显示该数据,则需要的是RGB 格式的,该库功能就是把YUV420 格式转化成RGB 格式,第三个库是一个包含了所有的普通音视格式的解析器和产生器的库。
4.2.1 初始化解码线程(1)注册全部的文件格式和编解码器,调用av_register_all()函数完成注册。
(2)设置AVFormatContext 结构体。
该结构体是FFmpeg 格式转换过程中实现输入和输出功能,保存相关数据的主要结构,通过av_open_input_file 函数设置该结构体。
(3)检查视频流的信息,通过调用av_find_stream_info(pFormatCtx)函数,pFormatCtx-》streams 就填充了正确的视频流信息,pFormatCtx 类型是AVFormatContext.(4)得到编解码器上下文,pCodecCtx= pFormatCtx -》streams[videoStream]-》codec,pCodecCtx 指针指向了流中所使用的关于编解码器的所有信息。
(5)打开解码器,先通过avcodec_find_decoder 函数找到相应解码器,然后调用avcodec_open 函数打开解码器。
(6)申请内存用来存放解码数据,通过调用avcodec_alloc_frame 函数实现,由于解码的数据是YUV420 格式的,因此还需要将该数据转换成RGB 格式,因此,再次调用avcodec_alloc_frame 申请内存用来存放RGB 格式数据。