




已阅读5页,还剩68页未读, 继续免费阅读
毕业论文-基于Android的视频采集系统的设计与实现26840.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公开公开 tp311.1tp311.1 09211214410921121441 代号代号 分 类 号分 类 号 学号学号 密级密级 1070110701 题题(中、英文)(中、英文)目目 基于基于 android 的的视频采集视频采集系统的设计系统的设计与与实现实现 , system based on androidsystem based on android 作者姓名作者姓名 杨 钊 指导教师姓指导教师姓名名、 职务职务 武 波 教授 学科门类学科门类 工 学 提交论文日期提交论文日期 二一二年一月 学科专业学科专业 计算机软件与理论 design and implementation of design and implementation of video capturevideo capture 摘 要 近年来,随着信息技术的发展,物联网成为了众多领域中应用的热点。本文 从物联网应用的需求出发,设计并实现了一套以基于android操作系统的移动终端 设备为客户端、以基于linux的pc机作为服务器的视频采集处理平台。 本文实现了一套使用java层程序完成控制功能, 通过jni (java native interface) 技术调用ffmpeg编解码库进行编码解码操作的音视频采集框架,并在底层设计了 一个插件式的多线程任务系统,使客户端系统具备了高度的灵活性。同时客户端 能够通过wi-fi、3g电话网络等无线通信技术,实时的将采集的音视频数据传输到 远程服务器上进行存储或后端处理。服务器端基于ace(adaptive communication environment)中的reactor框架设计并实现,具有良好的性能和稳定性,能够快速 扩展数据处理模块,实现了数据接收与具体业务的分离。文章基于实际的项目需 求,对整个系统的结构进行了分析,给出了各个模块的结构设计和软件流程以及 重要模块的详细实现。 最后对系统进行了功能测试和非功能测试,并对测试结果进行了分析和总结。 结果表明系统的功能达到了设计要求,但在性能方面仍需改进。 关键词:物联网关键词:物联网 音视频编码音视频编码 视频采集视频采集 android 无线传输无线传输 abstract with the development of information technology, the application of internet of things has become a hot spot in many fields. to meet the requirements for applications of the network, a video capture system using devices based on android operating system as clients and a pc on which linux system is installed as server is designed and implemented in this thesis. the thesis implements a system combined the advantages of java and c+ language, as the design that the controller is designed on java layer and the data processer is on c+ layer. a multi-thread based plugin system is implemented, providing extra flexibility. real-time media data is transferred from clients to remote server through wireless network such as wi-fi or cellphone network and processed or stored right after its arriving at the server. the framework of the server is the reactor model of adaptive communication environment library which is efficient and stable. the architecture and functions of system according the requirements of the project are analyzed. this thesis emphasizes on the structure and process of sub-modules. the result of system function and non-function testing is analyzed and summarized. it shows that the system reaches the designed function requirement, but the performance needs to be improved. keyword: internet of things audio and video codec video capture android wireless transmission 目 录 第一章 绪论 . 1 1.1 论文背景 . 1 1.2 国内外相关技术的发展现状 . 2 1.2.1 视频采集处理系统现状 . 2 1.2.2 移动终端操作系统现状 . 3 1.2.3 视频编码技术的发展现状 . 4 1.2.4 无线传输技术的现状及应用 . 5 1.3 本文研究目的和研究重点 . 6 1.4 章节安排 . 7 第二章 相关技术及工具介绍 . 9 2.1 android 操作系统介绍 9 2.2 jni 技术介绍 10 2.3 ace 开发框架介绍 11 2.4 ffmpeg 开源库介绍 12 2.5 本章小结 . 12 第三章 基于移动终端的实时视频传输系统的分析与设计 . 13 3.1 系统总体需求分析 . 13 3.2 系统总体结构设计 . 16 3.2.1 系统拓扑结构 . 16 3.2.2 系统软件构架与模块划分 . 17 3.3 系统通信消息设计 . 19 3.4 数据库设计 . 20 3.5 本章小结 . 23 第四章 基于 android 系统的客户端程序的设计与实现 . 25 4.1 客户端系统的总体结构设计 . 25 4.1.2 客户端总体结构 . 25 4.1.2 客户端的界面布局设计 . 26 4.2 用户验证模块 . 28 4.2.1 用户验证模块的逻辑设计 . 28 4.2.2 用户验证模块的过程设计 . 29 4.3 音视频采集模块 . 30 4.3.1 音视频采集模块的逻辑设计 . 30 4.3.2 音视频采集模块的过程设计 . 31 4.4 底层任务框架 . 32 4.4.1 底层任务框架的逻辑设计 . 33 4.4.2 底层任务框架的过程设计 . 35 4.4.3 底层任务框架的实现 . 37 4.5 c+层音视频编码和网络传输模块 . 38 4.5.1 音视频编码和传输模块的结构设计 . 38 4.5.2 音视频编码和传输模块的过程设计 . 38 4.5.3 音视频编码模块的实现 . 39 4.6 本章小结 . 40 第五章 服务器模块的设计与实现 . 41 5.1 服务器端的设计 . 41 5.1.1 ace 框架中的 reactor 模式分析 . 41 5.1.2 服务器端的总体结构 . 42 5.2 用户服务模块 . 44 5.2.1 用户服务模块的逻辑设计 . 44 5.2.2 用户服务模块的过程设计 . 45 5.3 数据接收模块 . 46 5.3.1 数据接收模块的逻辑设计 . 46 5.3.2 用户服务模块的流程设计 . 47 5.2.3 音视频同步的实现 . 48 5.4 数据处理模块 . 50 5.2.1 数据处理模块的逻辑设计 . 50 5.2.2 数据处理模块的流程设计 . 51 5.5 本章小结 . 51 第六章 系统测试 . 53 6.1 系统功能测试 . 53 6.2 系统非功能测试 . 58 6.3 测试结果分析 . 59 6.4 本章小结 . 60 第七章 总结 . 61 7.1 本文工作总结 . 61 7.2 存在问题和改进 . 61 致谢 . 63 参考文献 . 65 第一章 绪论 1 第一章 绪论 本章重点阐述本文写作的背景,介绍了物联网、移动终端操作系统、视频编 码技术和无线传输技术以及技术当前的发展状况或是应用前景。本章的最后指出 了本文研究目的、研究重点和章节安排。 1.1 论文背景 自计算机诞生的那一刻起,它就开始影响着人类的生活方式。近二十年来, 伴随着世界信息化技术的高速发展,计算机系统所展现出来的惊人性能和自动化 特性,使得它不再仅仅被使用在高精尖领域为顶级的科学研究服务,而是越来越 贴近社会生活,进入到各个领域成为了一种重要、高效的辅助工具。在这一前提 下,该如何使用信息化技术改善自身的生产和生活环境,使之更加的智能化、人 性化的为人类服务,就成为了一个重要的研究方向,由此便产生了“物联网”1 这个概念。物联网的意义就在于,将生活中随处可见的设备连接起来,使之成为 一个整体,为人类创造更加智能和便利的应用、管理方式。 物联网并没有一个明确的定义,从字面解释上看,物联网就是“物物相连的 互联网” ,目前被公认的一种定义是:物联网是通过射频识别、红外感应器、全球 定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连 接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控以及管理 的一种网络2。 物联网应该具备三个特征3,一是全面感知,即利用 rfid、传感器、二维码 等随时随地获取物体的信息;二是可靠传递,通过各种电信网络与互联网的融合, 将物体的信息实时准确的传递出去;三是智能处理,利用云计算、模糊识别等各 种智能计算技术,对数据和信息进行分析和处理,对物体实施控制。 在业界,物联网被公认为有三个层次4,底层是用来感知数据的感知层,第二 层是数据传输的网络层,第三层是应用层,如图 1.1 所示。 感知层是物联网的皮肤和五官识别物体,采集信息。感知层包括二维码标签 和识读器、rfid 标签和读写器、摄像头、gps、传感器、终端、传感器网络等, 主要是识别物体,采集信息。 网络层是物联网的神经中枢和大脑信息传递和处理。网络层包括通信与互联 网的融合网络、网络管理中心、信息中心和智能处理中心等。网络层将感知层获 取的信息进行传递和处理。 应用层包含各种具体的应用,是物联网的“社会分工”与行业需求结合,实 2 基于 android 的视频采集系统的设计与实现 现广泛智能化。 图 1.1 物联网的结构 在物联网目前的应用中,常用的一种模式是使用摄像机设备采集视频信息, 交给特定的网络上的处理节点进行处理,并根据得出的结果对用户或其他设备进 行反馈。这样的结构在个人安防,智能家居,甚至公共安全等领域中,已经成为 了一个研究和应用的热点,有着广泛的应用前景。 1.2 国内外相关技术的发展现状 1.2.1 视频采集处理系统现状 目前常见视频采集处理系统主要以数字系统或数模结合的系统为主,传统的 纯粹的模拟系统在系统的成本、控制和联动方面,已经越来越难以满足各个领域 的需求。通常数字视频采集处理系统包括以下三大类5: 1. 基于 pc 机的视频采集系统。这种方法一般是指借助通用的 pc 机来进行 视频处理。 基于 pc 机的视频采集系统最为普遍的功能就是使用视频采集卡获取数 字化的视频信息,并将其储存和播放出来。视频采集卡的接口包括视频与 pc 机的 借口与模拟视频设备的借口。视频采集卡输出的对象通常为 pc 机监视器。该系统 的优点在于开发周期短,费用较低,且产品易于维护和升级。缺点在于在部署上 和移动性上,有着较多的限制,且专为视频采集处理应用设置的 pc 机群在成本上 较高。 2. 基于专用的图像处理芯片的系统。这种方法是采用针对特定视频编码解码 rfid 读写器 传感器,摄像头 传感器网关 传感器网络 传感器网关 传感器网络 云计算平台 2g 网络 物联网管理中心 传感器,摄像头 行业专家系统 4g 网络 绿色 农业 工业 监控 公共 安全 城市 管理 远程 医疗 智能 家居 智能 交通 环境 监测 第一章 绪论 3 标准而专门设计的视频图像处理芯片来实现对视频进行压缩编码,这些芯片经过 专门的 asic 设计,采用纯硬件逻辑来执行各种运算。这种做法的优点突出:运算 速度非常快,且用户不需要再视频的处理上消耗太多精力。但同样,缺点也是同 样突出:系统实现的开销太大,难以进行二次开发,扩产性比较差,如果要更新 系统编码方式就需要重新设计芯片,兼容性上也会有一些问题,几乎没有灵活性 可言。主要用于一些实时性要求非常高且不经常更换编码方式的场合。 3. 另外一种系统介于二者之间,采用了较为通用的控制系统,使用 dsp, fpga 或二者相结合实现出来的采集和处理系统。这样作的优点是显而易见的:具 备了相当的处理能力,同时也具备了一定的定制能力,有一定的灵活性。缺点是 在开发的难度和成本上仍然偏高,并且灵活性仅仅是相对使用同一硬件平台的不 同产品来说,相对同一款产品的维护和升级来说,与纯软件实现的系统相比仍然 是有着不小的限制。因此主要适用于工业或是公共安全领域。 前端一体化、视频数字化、监控网络化、系统集成化是视频采集和处理系统 公认的发展方向,而数字化是网络化的前提,网络化又是系统集成化的基础,所 以,目前视频采集和处理系统发展的最大两个特点就是数字化和网络化。 1.2.2 移动终端操作系统现状 移动通信终端操作系统是指支持移动计算环境的分布式操作系统,实际上是 一种嵌入式操作系统,但在某些方面拥有更多的特性。由于应用在诸如掌上电脑、 pda、移动电话等移动设备中, 而且各种移动终端的功能开始趋向一体化, 移动终 端操作系统也逐渐向着智能化方向发展。受限于移动设备的特性,移动终端操作 系统需要具备高可靠性、无线网络接入、环境自适应、良好的开放性及交互性等 特点。 目前世界上主要的使用在移动终端上的操作系统有 symbian os,windows mobile,max os x 及嵌入式 linux 操作系统等6。 symbian 操作系统于 2000 年 正式开始被使用在移动终端上,至今已经拥有 series60,series80,series90 和 uiq 等多种针对不同硬件的平台的界面。symbian 的发展优势基于手机操作的长期优化积累及诺基亚等在智能手机市场领先的终端 厂商支持,且自身拥有广泛的软件/应用开发支持。但是由于系统代码、体系结构 等特点,symbian 对新的手机硬件(如高速处理器、大尺寸屏幕)和某些新兴软件 支持已显乏力。 虽然之后为了应对新的挑战, symbian 已经开始了它的开源化进程, 但至今为止,收效仍不明显7。 window mobile 是微软为移动终端开发的一款操作系统,其前身是 1996 年就 推出的 wince。虽然微软在个人 pc 操作系统市场有近 90%的份额,但由于微软 4 基于 android 的视频采集系统的设计与实现 作为一个纯软件公司,对芯片、终端等制造环节的影响力比较有限,且 windows mobile 开发授权费用偏高, 造成了 window mobile 至今市场占有率非常低的情况。 mac os x 是苹果公司为旗下产品开发的专用操作系统。它基于 unix 系统开 发,无论在性能,还是显示效果上,都处于目前的领先地位。借助 iphone 的良好 的销售量,苹果的专用软件市场 app store 也得到了快速的发展,这在另一方面也 大幅增加了软件开发者的热情,mac os x 上的应用软件更加丰富。但另一方面, mac os x 的开放性有限,目前用在且仅用在苹果自己的产品中。 linux 阵营从一开始就采取了开源模式,基于 linux 的智能手机平台种类较为 丰富,但由于长期缺乏主流的产业领导力量,linux 阵营内部分化严重。虽然目前 产生了 limo(linux mobile,linux 移动)和 oha(open handset alliance,开放 手机联盟)两大 linux 联盟,但 limo 平台仅对联盟成员公开,并非完全的开放; 而与之相比,2007 年 11 月 google 发起成立 oha 并推出手机平台 android,由于 其开源上的优势,以及优良的用户体验,正在被广泛的应用于各种终端产品中。 1.2.3 视频编码技术的发展现状 原始的视频格式,虽然在质量上能够实现最大程度的保真,但数据量都异常 巨大, 对于 320*240 分辨率的 yuv420 格式图片,一帧的数据就达到上百 kb 的大 小,对于大部分网络应用来说,直接进行传输无疑会对网络传输和系统性能带来 非常大的负担。因此在进行传输之前,需要对数据进行压缩编码处理。 目前在生产生活中使用较广泛的几种高质量视频编码格式,主要有 h.263, h.264 和 mpeg-4 编码规范。 h.263 是由 itu-t(国际电信联盟远程通信标准化组织)制定的视频会议用的 低码率视频编码标准,属于视频编解码器。h.263 最初设计为基于 h.324 的系统进 行传输(即基于公共交换电话网和其它基于电路交换的网络进行视频会议和视频 电话)8。后来发现 h.263 也可以成功的应用与 h.323(基于 rtpip 网络的视频 会议系统) ,h.320(基于综合业务数字网的视频会议系统) ,rtsp(流式媒体传输 系统)和 sip(基于因特网的视频会议) 。h.263 视频编码标准是专为中高质量运 动图像压缩所设计的低码率图像压缩标准。 与 h.261 的 p64k 的传输码率相比, h.263 的码率更低,单位码率可以小于 64k,且支持的原始图像格式更多,包括 了在视频和电视信号中常见的 qcif,cif,edtv,itur 601,itur 709 等 等。并且 h.263 的编码速度快,其设计编码延时不超过 150ms;码率低,在 512 k 乃至 384k 带宽下仍可得到相当满意的图像效果,十分适用于需要双向编解码并 传输的场合和网络条件不是很好的场合。 mpeg-4 是由 iso(国际标准化组织)为移动通信设备在 internet 网实时传输 第一章 绪论 5 视音频信号而制定的低速率、高压缩比的视音频编码标准9。mpeg-4 标准是面 向对象的压缩方式, 不是像 mpeg-1 和 mpeg-2 那样简单地将图像分为一些像块, 而是根据图像的内容,其中的对象(物体、人物、背景)分离出来,分别进行帧 内、帧间编码,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多 的字节,对次要的对象分配较少的字节,从而大大提高了压缩比,在较低的码率 下获得较好的效果,mpeg-4 支持 mpeg-1、mpeg-2 中大多数功能,提供不同的 视频标准源格式、码率、帧频下矩形图形图像的有效编码。mpeg-4 有三个方面的 优势:具有很好的兼容性;mpeg-4 比其他算法提供更好的压缩比,最高达 200: 1;mpeg-4 在提供高压缩比的同时,对数据的损失很小。所以,mpeg-4 的应用 能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时 录像的需求,同时具备在低带宽上优良的网络传输能力。 h.264 是 2001 年 12 月, itu-t 和 iso 两个国际标准化组织的有关视频编码的 专家联合组成视频联合工作组(jvt,joint video team)提出的。它们负责制定一 个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性 等目标。随后 jvt 制定出的视频编码标准被 itu-t 正式定义为 h.264;该标准也 被iso定义为14496-10 (mpeg-4 第10部分) 高级视频编码 (avc, advanced video coding) 标准。 相对以前的编码方法, h.264 在图像内容预测方面提高了编码效率, 采用可变块大小运动补偿、1/4 采样精度运动补偿、加权预测等算法,改善了图像 质量,增加了纠错功能和各种网络环境传输的适应性。测试结果表明,在中低带 宽情况下, h.264具有比h.263+以及mpeg-4更优秀的psnr性能: h.264的psnr 比 h.263+平均高 3db,比 mpeg-4 平均高 2db10。 1.2.4 无线传输技术的现状及应用 无线通信是利用电磁波信号可以在自由空间中传播的特性进行信息交换的一 种通信方式,是近些年信息通信领域中,发展最快、应用最广的技术之一。 当前广泛使用的无线传输方式主要有两种,wi-fi 网络和无线电话网络。 wi-fi(wireless fidelity) 11是无线局域网技术ieee 802.11 系列标准的商 用名称。ieee 802.11 系列标准主要包括 ieee 802.11a/b/g 三种。 ieee 802.11 第一个版本发表于 1997 年, 其中定义了介质访问接入控制层和物 理层。 物理层定义了工作在 2.4ghz 的 ism 频段上的两种无线调频方式和一种红外 传输的方式,总数据传输速率设计为 2mbit/s。两个设备之间的通信可以自由直接 的方式进行,也可以在基站或者访问点的协调下进行。1999 年加上了两个补充版 本:802.11a 定义了一个在 5ghz ism 频段上的数据传输速率可达 54mbit/s 的物理 层,802.11b 定义了一个在 2.4ghz 的 ism 频段上但数据传输速率高达 11mbit/s 的 6 基于 android 的视频采集系统的设计与实现 物理层12。 在开放性区域,wi-fi 的通信距离可达 305 m;在封闭性区域,通信距离为 76122 m。wi-fi 技术可以方便地与现有的有线以太网络整合,组网成本低。目前 在国外,wi-fi 网络的覆盖率非常广,全球主要的城市多已有 wi-fi 技术,如伦敦、 纽约、台北、香港、新加坡、汉堡、巴黎、华盛顿、上海等。 无线电话网络通信的发展大致经历了几个发展阶段13: 1995 年问世的第一代模拟制式手机(1g,first generation)表示第一代移动 通讯技术,技术特征是蜂窝网络结构克服了大区制容量低、活动范围受限的问题。 1996 到 1997 年出现的第二代(2g,second generation)gsm、tdma 等数 字制式手机(2g)便增加了接收数据的功能,如接受电子邮件或网页第二代移动 通信是蜂窝数字移动通信,使蜂窝系统具有数字传输所能提供的综合业务等种种 优点。 第三代(3g,third generation)与前两代的主要区别是在传输声音和数据的 速度上的提升,它能够在全球范围内更好地实现无缝漫游,并处理图像、音乐、 视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服 务,同时也要考虑与已有第二代系统的良好兼容性。在系统技术层面上,理想状 态下 3g 网络应当在室内、室外和行车的环境中能够分别支持至少 2mbps(兆比特 每秒) 、384kbps(千比特每秒)以及 144kbps 的传输速度。 全球 3g 网络数量持续增长。 截至 2011 年 2 月, 3g 网络已经覆盖全球超过 165 个国家和地区,占全球国家和地区总数的 72%,全球部署 3g 商用网络 506 个,其 中 wcdma 网络 383 个,ev-do 网络 123 个。3g 增强型技术成为主流应用技术, 绝大部分网络已升级到增强型技术。 1.3 本文研究目的和研究重点 随着信息技术的发展,视频采集系统作为物联网应用中智能家居、智慧安防 和智慧交通中重要的组成部分,面临着深度应用的巨大挑战,视频信息如何高效 提取,如何同其他信息系统进行标准数据交换,如何使系统具备更好的交互性和 更强的扩展性,如何能够更加智能的处理信息数据,都是目前类似应用需要考虑 的问题。 目前大部分的视频信息采集处理系统,普遍为一些较大型的、对硬件基础有 一定需求的项目。大部分的系统都是专用嵌入式设备,虽然性能很强,但用途专 一,不一定适合个人用户使用。如何降低系统的部署成文,使系统能够更加快速 的应用于各个领域,是现阶段一个急需解决的重要问题。 另一方面,搭载各种嵌入式操作系统的终端设备在技术上日趋成熟。个人终 第一章 绪论 7 端、智能家电也不再像以前那样仅仅是少数人的专利,它们以其便携、低功耗以 及成本上的优势,在许多领域中表现出了比传统的大型计算机设备更强大的生命 力。以这些设备(如机顶盒、个人移动终端等)为基础,进一步的发掘物联网的 潜力,扩展物联网的应用范围。与纯粹的使用pc机实现的软件系统或是使用专用 芯片或dsp芯片实现的系统相比,这种方案有着以下的一些优点: 1. 用户基础广泛:拥有各种智能终端的用户,已经不在少数,并且各个生产 商都已经研发或是有研发搭载有嵌入式操作系统的设备的计划。这些都将成为潜 在的发展市场。 2. 扩展性好、维护成本低:使用了嵌入式操作系统而非单片机控制的系统, 在扩展上显得更加方便,开发者可以方便的扩展系统,使其具备额外的功能。借 助网络的优势,甚至可以实现在线更新模块。同时考虑到用户的需求会越来越复 杂,这样做可以避免重新设计电路的问题。 3. 友好的交互界面:相对传统的定制系统的人机交互界面,使用目前主流的 嵌入式操作系统实现的系统,均具备良好的交互界面,系统的使用难度低。 在以上三点的基础上,受硬件成本不断降低这些因素的影响,在一些情况下 采用这种方案带来的硬件成本增加的缺点远远小于其带来的优点。不仅仅如此, 近年来高速发展的无线网络也为物联网的应用注入了新的活力。以终端/嵌入式设 备为基础,结合已经较为成熟的无线网络传输技术,设计并实现一套智能化的视 频采集处理系统,能够为物联网在个人安全、智能家居14甚至公共安全方面,提 供更加广阔的应用平台。这也是本文种所设计和实现的系统最终所期望达到的目 的。 本文通过对目前使用广泛的android操作系统平台、无线传输协议、视频编码 技术等内容的研究,结合了物联网未来应用的发展方向,在基于android操作系统 的移动终端上设计并实现了一套音视频实时采集和传输系统,它能够作为一个平 台或框架,与智能家居、个人安全等领域相结合,完成一些与个人相关的信息采 集和处理工作。研究的重点在于:使整个系统的结构和模块具备更强的可扩展性 和灵活性,方便进一步的开发;服务器的设计需要具备同时处理多设备同时连接 请求的能力。 本文所实现的系统包括移动终端,服务器以及用于数据展示的网站,这里着 重介绍基于android系统的客户端模块和pc端的服务器模块的设计和实现。 1.4 章节安排 本文共分七章,其余章节安排如下: 第二章对本文中的视频采集系统所涉及到的主要技术进行了介绍与分析,包 8 基于 android 的视频采集系统的设计与实现 括了 android 操作系统,jni 技术,开源的音视频编码库及网络开发库。 第三章阐述了系统的需求及概要设计,并定义了客户端与服务器间通信报文 的格式。 第四章、 第五章分别对基于 android 操作系统实现的客户端以及数据接收服务 器的详细设计实现进行了说明。 第六章给出了采集系统的测试环境、功能测试及性能测试的结果,并对测试 结果给出了分析。 第七章对整个系统的优点及缺点,并对接下来需要做的工作进行了展望。 第二章 相关技术及工具介绍 9 第二章 相关技术及工具介绍 本章首先对 android 操作系统极其结构进行了概括的描述, 接着对项目中所使 用的 jni 技术,ace 与 ffmpeg 开源开发库进行了介绍。 2.1 android 操作系统介绍 android 操作系统是一款设计运行于移动设备上的操作系统。它最初由安 迪鲁宾(andy rubin)成立的公司发起研发,并最终于 2005 年被 google 公司收 购。 2007 年 11 月 5 日, google 正式对外宣布 android 开源手机操作系统平台15, 此平台基于 linux, 由操作系统、 中间件、 用户界面和应用软件组成。 同时 google 与多家手机制造商、手机芯片供货商、软硬件供货商、电信运营商联合组成开放 手机联盟,共同开发 android 的开放源代码的移动系统。 android 操作系统由四层组成:应用程序层、应用程序框架层、android 运行 环境以及 linux 内核层16。 图 2.1 android 操作系统的结构 1. 应用程序层:系统提供的一些应用程序以及第三方提供的应用程序位于本 层。目前所有的应用程序界面都使用 java 语言编写。 2. 应用程序框架层:android 的应用程序框架为应用程序层的开发者提供 api,使得开发人员可以跟那些核心应用一样拥有访问框架 api 的全部权限。应用 的结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,同时 任何应用也可以使用这些分发的组件,这样极大的提高了应用程序的开发效率。 应用程序层 应用程序框架层 图像 视频 浏览等支持库 核心库 dalvik 虚拟机 linux 内核层 10 基于 android 的视频采集系统的设计与实现 3. android 运行环境:andorid 运行环境包含了 dalvik 虚拟机以及核心库。 dalvik 虚拟机实际上是一个优化了的 java 虚拟机,和一般的 java 虚拟机相比,它 最大的优点在于可以根据硬件实现更大的优化,这更适合移动设备的特点。核心 库包含两部分,一部分包含了 android 自身的核心库,另一部分则提供了 java 语 言需要调用的功能函数。 4. linux 内核层:android 使用 linux2.6 作为操作系统,linux2.6 是一种标准 的技术,linux 也是一个开放的操作系统。android 对操作系统的使用包括核心和 驱动程序两部分,android 的 linux 核心为标准的 linux2.6 内核。 同其他移动终端操作系统相比,基于 android 操作系统进行开发着开放性好, 所有应用程序平等,应用程序间无界限和开发应用程序快速方便的特点 17。 2.2 jni 技术介绍 jni 是 java 本地接口的缩写。在 java 语言中,native 声明的方法是用其他编 程语言实现的特殊方法。java 编写的程序存在一些不足,例如运行速度较慢,无 法直接访问操作系统底层。为此 java 使用 native 方法来扩展 java 程序的功能。在 实时性要求较强、执行效率要求较高时,可利用 native 方法来调用由其它运行速 度较快的语言所编写的程序,这实质是通过 jni 技术来实现18。 从 java 1.1 开始,jni 标准成为 java 平台的一部分,它允许 java 代码和其他 语言写的代码进行交互。 jni 一开始是为了本地已编译语言, 尤其是 c 和 c+而设 计的,但只要调用约定受支持,它可以支持多种语言19。 jni 技术已经广泛用于很多既需要 java 语言带来的便利性,又需要 c/c+语 言所能达到的性能的场合下。通常,满足以下三方面的需求的情况下可以考虑使 用 jni 技术: 1. 性能方面:提高 java 的运行速度。 2. 与本机平台的接口调用: java 的跨平台特性使得它和本地机的各种内部 联系较少,从而约束了它的功能。java 通过 jni 调用以库文件形式存放的本地方 法(在 windows 平台上是 dll 文件形式,在 unix 平台上是*.so 文件形式) 。 通过调用本地的库文件的内部方法,使 java 可以实现和本地机的紧密联系,调用 系统级的各接口方法。 3. 嵌入式开发:java 应用小程序能够在带有 jvm 的任何硬软件系统上执行。 java 语言的安全性、可靠性和可移植性等特点,对具备网络功能的信息家电设备 十分有利,同时对嵌入式设备的软件编程技术产生了很大影响。 第二章 相关技术及工具介绍 11 2.3 ace 开发框架介绍 ace,全称自适配通信环境,是面向对象的框架和工具包,它为通信软件实 现了核心的并发和分布式模式。ace 包含的多种组件可以帮助通信软件的开发获 得更好的灵活性、效率、可靠性和可移植性。ace 中的组件可用于、并发和同步、 进程间通信、内存管理、定时器、文件系统管理、线程管理、事件多路分离和处 理器分派、连接建立和服务初始化、软件的静态和动态配置、重配置、分层协议 构建和流式框架以及分布式通信服务:名字、日志、时间同步、事件路由和网络 锁定等用途20。 ace 具有分层的体系结构。在 ace 框架中有三个基本层次:操作系统(os) 适配层,c+包装层以及框架和模式层。 1. os 适配层是位于本地 os api 和 ace 之间的“瘦”代码层,它使 ace 的 较高层与平台依赖性屏蔽开来,从而保持了相对的平台无关性。 2. c+包装层包括一些 c+包装类,它们可用于构建高度可移植的和类型安 全的 c+应用。c+包装类可用于并发和同步、ipc、内存管理组件以及线程管理 等功能。 3. ace 框架组件是 ace 中最层,它们的基础是若干针对特定通信软件领域 的设计模式。这些组件实际上为将要构建的系统提供了“袖珍体系结构” ,因此这 些组件不仅在开发的实现阶段、同时在设计阶段都是有用的。 图 2.2 ace 的系统结构 ace 框架目前被广泛的应用于各种网络工具或应用的开发中,越来越多 12 基于 android 的视频采集系统的设计与实现 的项目开始使用 ace 开发,以解决平台的可移植性、连接管理、服务的初始 化、消息处理,多线程和同步、错误检测以及容错、服务质量(qos)等诸多 方面的问题21。 2.4 ffmpeg 开源库介绍 ffmpeg22是一个集录制、转换、音/视频编码解码功能为一体的完整开源解决 方案。ffmpeg 的开发是基于 linux 操作系统,但是可以在大多数操作系统中编译 和使用。ffmpeg 支持 mpeg,divx,mpeg4,ac3,dv,flv 等 40 多种编码, avi,mpeg,ogg,matroska,asf 等 90 多种解码23。ffmpeg 的组件中,既包 括库,也包括提供多种功能的播放器和视频服务器,主要有: 1. libavformat :用于各种音视频封装格式的生成和解析,包括获取解码所需 信息以生成解码上下文结构和读取音视频帧等功能; 2. libavcodec :用于各种类型声音、图像编解码; 3. libavutil :包含一些公共的工具函数; 4. libswscale :用于视频场景比例缩放、色彩映射转换; 5. ffmpeg :该项目提供的一个工具,可用于格式转换、解码或电视卡即时编 码等; 6. ffsever :一个 http 多媒体即时广播串流服务器; 7. ffplay :是一个简单的播放器,使用 ffmpeg 库解析和解码。 ffmpeg 库中的多媒体数据处理功能由于其功能强大、使用方便、稳定性好, 广泛的适用于众多音频视频播放器或格式转换工具中。 2.5 本章小结 本章的开头主要介绍了 android 操作系统的特点和结构, 接着指出了客户端中 所使用的 jni 技术及其一般的应用场合。最后对系统在实现中所采用的两个重要 的开源开发库 ace 与 ffmpeg 库进行了介绍。 第三章 基于移动终端的实时视频传输系统的分析与设计 13 第三章 基于移动终端的实时视频传输系统的分析与设计 本章通过对目标系统的分析,提出了实现基于移动终端的实时视频传输系统 所要完成的主要工作。根据总体的系统需求,设计了系统的总体架构,同时按照 功能性需求对系统进行了详细的模块划分,给出了基于 android 的客户端、服务器 端、系统通信消息报文以及数据库的设计。 3.1 系统总体需求分析 本系统最终的目标是建立一套物联网模式的应用,基于移动终端的无线实时 视频采集处理系统。系统分为数据采集端和数据接收及储存端,数据经由 wi-fi 网络或无线话网络等无线网络传输方式向服务器端发送。系统能够应用于个人安 防、智能家具等物联网领域应用的无线采集终端,也可以单纯的作为一套个人信 息记录工具,是一套综合性强、智能化的、可定制性强的信息处理平台。 uc usecase 用户用户 用户身份验证用户身份验证 数据采集数据采集 数据查看数据查看数据维护数据维护 数据处理数据处理 数据储存数据储存 用户信息管理用户信息管理 图 3.1 系统功能用例图 系统中数据采集部分运行在基于 android 操作系统的移动终端上, 如常见的智 能手机、掌上电脑等,同时也可以是专用的定制设备。由于可能需要进行长时间 的采集或监控,出于对储存空间以及信息的实时性的考虑,需要实时的将采集到 的数据传回服务器,服务器即时的对数据进行处理和储存。同时系统需要用户管 理系统,使每个用户拥有独立的账户及配置文件,以便管理和维护,并提供采集 数据的访问和维护功能。如图 3.1 所示。 14 基于 android 的视频采集系统的设计与实现 uc clientusecase 用户用户 用户身份验证用户身份验证 用户登录用户登录 用户登出用户登出 数据采集数据采集 音视频混合采集音视频混合采集 音频数据采集音频数据采集 include include extend extend 图 3.2 数据采集端用例图 采集端的功能有用户信息的验证、音视频数据的采集和采集过程的控制。用 户能够随时根据需求选择采集音频、视频还是音视频同时采集,同时可以任意的 控制采集的开始,结束和暂停。同时客户端应当具备相当的可扩展性,能够较容 易的加入新的模块,例如加入基于运动检测算法模块控制视频采集的开始和结束、 原有算法模块的更新和更换等。 而对于数据接收端,主要的作用是响应采集端的请求、接收和储存由采集端 发送过来的数据如图 3.3 所示。接收端使用多线程设计,增强并行处理能力,具备 存在多个客户端同时采集的能力,同时能够对采集到的数据,使用某些算法进行 一定的处理,例如运动检测,人脸检测和识别,车牌识别等。此外接收端也提供 接口供用户查询已经储存的个人音视频数据,或是供用户设置音视频数据的后端 处理策略,比如监控报警、短信提示等功能。 uc 服务器用例图服务器用例图 数据采集端数据采集端 数据储存数据储存 数据处理数据处理 图 3.3 数据接收端用例图 已经储存在服务器的数据通过服务器,以网页等方式向用户提供远程的、可 第三章 基于移动终端的实时视频传输系统的分析与设计 15 视化的数据访问和操作的界面,以便用户进行查看和管理操作。其中包括数据的 查看、数据的删除和数据的修改。数据既包含用户的个人信息,也包含用户采集 的数据,如图 3.4 所示。 uc web服务器服务器 用户用户 用户信息管理用户信息管理 数据查看数据查看 数据管理数据管理 数据删除数据删除 用户信息删除用户信息删除 用户信息修改用户信息修改 include include include 图 3.4 用户远程管理功能用例图 完整的系统应当具备数据的采集、数据的接收和数据的远程管理等上述所有 的功能,本文所涉及到的部分主要是采集端和接收端的设计和实现。 1. 基于上述对系统需求和用例的分析,从系统整体的功能角度考虑,整个系 统应当满足以下功能性需求: 1) 用户认证:向服务器发送用户身份验证请求和登出请求,保证用户数据的 安全性。 2) 音视频采集及控制:通过终端设备采集音频/视频数据,并通过网络发送至 服务器端。并能够随时开始、结束。 3) 用户认证:根据用户提供的认证信息查找进行用户身份认证。 4) 数据储存:实时储存用户由无线网络发来的数据,并在用户对应的数据记 录中加入记录信息。 5) 数据处理或数据处理接口:系统应当具备对用户发送过来的数据进行处理 的能力或为此留出接口。 6) 用户数据在线查看:用户能够通过网络远程访问已经上传的数据。 7) 用户数据维护:给出对用户已经上传的数据的管理方法/界面,提供浏览或 删除用户数据的功能。 16 基于 android 的视频采集系统的设计与实现 2. 在满足系统的功能性需求的基础之上,所设计的系统还应当满足以下的非 功能性需求: 1) 良好的用户体验:直接与用户交互的界面主要由一般用户进行操作,用户 可能不具备丰富的经验或者相关的专业知识,因此,交互界面应当简洁易用,提 供良好的人机交互体验。 2) 稳定性:作为一种音视频采集系统,无论是实现储存或监控功能,可能都 需要长时间运行,为满足用户的需要,需要保证系统的稳定性;同时数据接收端 和用户数据的储存和处理直接相关,因此必须具备良好的稳定性。且在故障发生 后,能够迅速恢复,且故障发生之前的数据不致丢失。 3) 性能:音视频的采集速度可能会受到软件载体硬件系统的影响,因此应当 提供方法使影响减小。接收端需要处理大量的连接和数据发送请求,因此,对于 客户端子系统的各种请求,服务器端子系统应当在用户能够接受的范围内及时响 应和处理。 4) 数据传输控制:由于需要采取无线传输,传输速度受网络环境影响较大, 因此应当方法对传输速率及数据传输量进行控制。 5) 良好的扩展性和灵活性:系统的数据处理模块可能需要频繁更新或替换, 因此在系统结构上,数据发送、接收和数据处理模块的耦合应当尽可能的低。 3.2 系统总体结构设计 3.2.1 系统拓扑结构 本文设计的视频采集处理系统是一个基于网络的应用,用户通过网络访问该 系统,获取系统提供的功能服务。系统的客户端部署在移动终端上,数据处理平 台部署在服务器上。根据系统的需求分析和定义的开发目标,设计出系统的整体 网络架构。 如图 3.5 所示, 系统整体基于 c/s 架构, 分为客户端与数据服务器端两个部分。 客户端对应数据采集端,用户通过客户端进行音视频数据的采集,向服务器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兼职司机聘用协议
- 健康养生咨询及免责合同书
- 2025年防城港危险品考试题库
- 环保建材采购及质量保证合同
- 农业合作社土地租赁协议书
- 农村林地合作经营合同
- 体育赛事赞助权益合作协议
- 员工全年收入及奖金明细证明(6篇)
- 音响设备制造与出口协议
- 企业营销效果分析与跟踪实施合作协议
- 奇恒之腑课件
- 《(近)零碳园区评价技术规范》
- 鹤壁市第一届职业技能大赛 保健按摩师项目技术工作文件
- 中建室外景观园林专项施工方案
- 医院保密培训课件
- 《无人机航拍技术》项目1任务2 无人机航拍应用
- 糖尿病视网膜病变专家共识
- 锅炉生产单位质量安全员、安全总监-特种设备考试题库
- 管理会计学(第6版) 课件 郭晓梅 第6、7章 短期经营方案的分析评价;长期投资方案的经济评价
- 2023年上海铁路局集团有限公司招聘笔试真题
- DB11T 1608-2018 预拌盾构注浆料应用技术规程
评论
0/150
提交评论