APP下载

Android平台实时视频传输的设计与实现

2016-11-16洪丽芳陈昱晖高大利蔡昭权

东莞理工学院学报 2016年5期
关键词:宿主机开发板IP地址

洪丽芳 陈昱晖 高大利 蔡昭权

(1.泉州师范学院 数学与计算机科学学院,福建泉州 362000;2. 惠州学院 计算机科学系 ,广东惠州 516007)



Android平台实时视频传输的设计与实现

洪丽芳1陈昱晖1高大利1蔡昭权2

(1.泉州师范学院数学与计算机科学学院,福建泉州362000;2. 惠州学院计算机科学系 ,广东惠州516007)

随着嵌入式技术的迅猛发展和多媒体技术的广泛应用,嵌入式视频终端凭借其独特的优越性开始进入人们的视野。论文首先介绍了嵌入式视频终端的软硬件平台;接着运用H.263编码技术和RTP(实时传输协议)技术,使用Android Studio集成开发工具,设计并实现了Android(操作系统)平台实时视频传输方案;最后通过实验验证了该方案的效果。

Android;视频终端;H.263;RTP;实时传输

随着视频采集和无线传输技术的不断成熟和完善,嵌入式视频终端被广泛应用于视频会议、视频监控、环境监测等许多场合[1-4]。嵌入式视频终端具有体积小、功耗低、成本低等优点,能够满足用户在应急场景、移动场景或临时应用场景下对灾害现场、家庭、企业等场所进行视频监控、现场指挥等操作。

由于嵌入式系统硬件环境和操作系统的差异,导致PC上运行的实时视频传输程序无法直接移植到嵌入式设备上。针对这一问题,本文对嵌入式视频终端的软硬件平台进行了介绍,在Windows10专业版宿主机上,使用Android Studio1.4集成开发工具,运用H.263编码技术和RTP技术,在Android4.0平台上设计并实现了WIFI、以太网环境下的实时视频传输方案,并通过实验验证了该方案的效果。

1 嵌入式视频终端的软硬件平台

1.1嵌入式视频终端的硬件平台

嵌入式视频终端的硬件平台通常采用ARM架构的嵌入式处理器,为了满足视频采集的实时性要求,图像传感器到处理单元间应具有高速的数据传输通道。本方案选用友善之臂公司的Tiny4412开发板作为嵌入式视频终端的硬件平台,Tiny4412开发板由三星Exynos 4412四核ARM架构嵌入式处理器,1 GB DDR3内存,16 GB iNAND FLASH,OV5648 CMOS高清视频摄像组件,网络通信模块、USB 接口、电源供电模块及 JTAG 调试接口等部分组成,支持视频通过WIFI、以太网等方式进行传输。视频摄像组件由光学镜头、驱动模块、图像传感器和标准接口构成,图像传感器可以根据不同的应用需要选用可见光或红外波段的固体成像器件,在驱动程序的支持下通过标准的视频接口向嵌入式视频处理平台提供视频流,嵌入式视频终端的硬件平台如图1所示。

1.2嵌入式视频终端的软件平台

嵌入式视频终端通常采用Android操作系统,Android是由Google公司2007年宣布的一款基于Linux 内核的移动操作系统[5]。自发布以来,Android凭借其开放性以及大量的应用成为了当今最炙手可热的移动平台操作系统。Android平台自底向上由以下四个层次组成:Linux 内核层、运行时库和其他库、应用程序框架层、应用程序层[6]。Android平台系统结构如图2 所示。

图1 嵌入式视频终端的硬件平台

图2 Android平台系统结构

Android平台的应用程序通常在Windows或Linux操作系统的宿主机上,采用Eclipse或Android Studio集成开发环境来开发。Android平台实时视频传输软件在Windows10专业版的宿主机上进行开发,在Tiny4412开发板Android4.0系统上进行验证。

宿主机上需要安装Java 语言软件开发工具包(Java Development Kit,JDK的版本为1.8.0_73)、Android SDK(Software Development Kit)和Android Studio1.4集成开发环境。JDK是Java的核心,包含了Java的运行环境(Java Runtime Environment),Java工具和Java类库[7]。Android SDK提供了Android 平台API接口和工具,可以使得开发者便捷地开发应用程序。Android Studio是一项全新的基于IntelliJ IDEA的Android开发环境[8],类似于Eclipse ADT插件,Android Studio提供了Android应用程序开发和调试的集成环境。

2 Android平台实时视频传输的软件设计与实现

Android平台实时视频传输软件采用Java语言编程实现;该软件由用户界面、视频采集压缩以及RTP打包发送等部分组成。每部分的设计与实现简述如下。

2.1用户界面

用户界面通过Android Studio1.4来设计程序的可视化界面;用户界面由控制视频采集开始和结束的Button按钮、目的IP地址及端口号输入文本框、显示视频图像的SurfaceView控件组成。运行程序后,输入目的IP地址及端口号,当点击“开始”按钮后,视频摄像组件开始采集视频图像,被采集的视频图像在SurfaceView控件上显示出来;被压缩成H.263编码的视频流装成RTP报文发往目的IP地址的端口。

2.2视频采集压缩

视频采集压缩使用Android SDK提供的MediaRecorder类实现,其主要步骤如下。

1)创建mediarecorder对象;

MediaRecordermediarecorder = new MediaRecorder();

2)将录制视频源设置为相机;

mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

3)设置视频的封装格式为3gp;

mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

4)设置录制的视频编码为H.263;

mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);

5)设置视频录制的分辨率;mediarecorder.setVideoSize(640, 480);

6)设置录制的视频帧率。

mediarecorder.setVideoFrameRate(24);

以上步骤通过MediaRecorder类实现了视频的采集和压缩,H.263视频压缩编码通过嵌入式处理器的编解码器硬件实现。

2.3RTP打包发送

视频采集压缩完成后,需要把H.263编码的视频码流封装成RTP报文,通过UDP协议发往目的IP地址的端口。H.263是由ITU-T制定的视频会议用的低码率视频编码标准,属于视频编解码器。RTP协议(Realtime Transport Protocol,实时传输协议)由Internet工程任务组(IETF)作为RFC1889发布[9]。RTP协议针对互联网上多媒体数据流的实时传输进行设计,具有简单性、可扩展性、数据流和控制流分离等特点。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。由于TCP(Transmission Control Protocol,传输控制协议)连接会导致的网络重发、网络抖动和网络延迟等问题,RTP传输通常建立在UDP(User Datagram Protocol,用户数据包协议)上;RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,RTP依靠实时传输控制协议RTCP(Realtime Transport Control Protocol,实时传输控制协议)提供这些服务。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。RTP打包发送的主要步骤如下:

1)使用Android SDK提供的LocalSocket获取本地的H.263编码视频流;

2)把H.263编码的视频码流封装成RTP报文;

3)通过UDP协议向目标IP地址的端口发送RTP报文。

3 实验测试

将Tiny4412开发板用USB调试线与宿主机连接起来,开发板和宿主机通过WIFI或者以太网接入到同一个局域网中,开发板和宿主机动态获取到的IP地址分别为192.168.0.122和192.168.0.111,通过Android Studio1.4将编译好的apk可执行程序下载到Tiny4412开发板,Tiny4412开发板上运行程序后,输入宿主机的IP地址192.168.0.111和端口号5050,点击“开始”按钮后,实时采集的视频图像清晰地在SurfaceView控件上显示出来。

在宿主机上运行Wireshark网络抓包工具,可以抓取到Tiny4412开发板发来的数据包,并可实时获取数据包序号、时间、源IP地址、目的IP地址、发送协议、数据包长度等信息,通过这些信息可对数据包进一步进行分析,以验证数据包是否正确。Wireshark抓取的数据包如图3所示。

图3 Wireshark抓取的数据包

在宿主机上通过VLC播放器可对Tiny4412开发板发来的数据包进行解码播放。VLC 是VideoLAN 非盈利组织推出的一款自由、开源的跨平台多媒体播放器,可播放大多数多媒体文件,以及 DVD、音频CD、VCD及各类流媒体。VLC播放H.263编码的视频流时需建立sdp文件,其内容如下:

m=video 5050 RTP/AVP 96

b=RR:0

a=rtpmap:96 H263-1998/90000

c=IN IP4 192.168.0.122

将其命名为h263.sdp,通过VLC播放器打开h263.sdp文件,即可对收取的数据包进行解码播放,VLC解码播放效果如图4所示,VLC解码播放接近于Tiny4412开发板上的视频预览效果。

图4 VLC解码播放效果

上述测试结果表明,在WIFI、以太网高带宽环境下,视频传输实时性强、误码率低、可靠性高,该方案可较好地解决Android平台嵌入式视频终端实时视频传输问题。

4 结语

本文对嵌入式视频终端的软硬件平台进行了介绍,使用Android Studio1.4集成开发工具设计并实现了Android平台实时视频传输方案。整个方案可以应用到视频数据采集、视频会议、视频监控、环境监测等场合。今后的研究工作可以考虑在现有基础上熟悉H.264、H.265等视频编码标准,研究在低带宽环境下的实时视频传输技术,不断提升实时视频传输的质量。

[1]郑磊.基于嵌入式Linux的网络视频监控系统研究[D].武汉:武汉理工大学,2009.

[2]余腊生,刘勇.基于网络的智能视频监控系统设计与实现[J].计算机工程与技术,2009,30(16):3879-3882.

[3]常志沛.基于Android的智能手机视频监控系统的设计与实现[D].大连:大连海事大学,2011.

[4]付少华,付红桥,王政.基于3G网络的手机移动视频监控系统的设计[J].计算机应用,2011,31(1):70-72.

[5]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010:1-2.

[6]李刚.疯狂Android讲义[M].北京:电子工业出版社,2011:10-11.

[7]韩雪,郭天娇.Java JDK7实例宝典[M].北京:电子工业出版社,2014.

[8]陈承欢.Android移动应用开发任务驱动教程[M].北京:电子工业出版社,2015:1-2.

[9]孙松源,吴建国.基于RTP和Android的视频传输的研究实现方法[J].电脑知识与技术,2012,8(4):904-905.

Design and Implementation of Real-time Video Transmission for Android Platform

HONG Lifang1CHEN Yuhui1GAO Dali1CAI Zhaoquan2

(1.College of Mathematics and Computer Science, Quanzhou Normal University, Quanzhou 362000, China;2. Department of Computer Science, Huizhou University, Huizhou 516007, China)

Along with the rapid development of embedded technology and the wide application of multimedia technology, embedded video terminal begins to enter people’s perspective with its unique advantages. Firstly, the paper introduces the software and hardware platform of embedded video terminal. Then, by means of H.263 encoding and RTP(Realtime Transport Protocol) technology, and android studio integrated development tools, the design and implement real-time video transmission program are realized based on Android(operating system) platform. Finally, the effect of the proposed method is verified by experiments.

Android; video terminal; H.263; RTP; real time transmission

2016-03-26

国家自然科学基金项目(61170193, 61370185);广东省自然科学基金项目(s2013010013432);泉州市科技计划项目(2014Z136);福建省大学生创新创业训练计划项目(201410399039)。

洪丽芳(1981—),女,福建泉州人,实验师,硕士,主要从事知识工程研究。

TP37

A

1009-0312(2016)05-0052-04

猜你喜欢

宿主机开发板IP地址
基于STM32H7的FDCAN通信系统设计与实现∗
嵌入式计算机软件测试关键技术研究
铁路远动系统几种组网方式IP地址的申请和设置
IP地址切换器(IPCFG)
虚拟网络实验室在农村职校计算机网络技术教学中的应用研究
基于SNMP的IP地址管理系统开发与应用
浅析单片机开发板的设计与制作
公安网络中IP地址智能管理的研究与思考
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
MiniGUI在基于OMAP5912开发板上的移植