千虑一得网

您现在的位置: 首页 > 狂风暴雨 > 正文内容

【java实现实时通信】基于Android的实时视频通信研究与实现

来源:千虑一得网   时间: 2019-03-17

作文「基于Android的实时视频通信研究与实现」共有 6170 个字,其中有 3100 个汉字,2134 个英文,322 个数字,614 个标点符号。作者佚名,请您欣赏。玛雅作文网荟萃众多优秀学生作文,如果想要浏览更多相关作文,请使用网站顶部的作文搜索引擎进行搜索。本站作文虽然不乏优秀之作,但仅为同学们学习交流的习作,不能当作范文使用,希望对同学们有所帮助。

摘 要: 为方便企业移动办公,研究基于Android移动终端的视频通信,构建了实现视频通信的系统结构,对SIP协议、H.264视频编解码、RTC/RTCP网络传输等关键技术进行研究,在Android平台上进行了设计实现。结果显示视频通信效果良好,达到了预期目的,可作为进一步研究企业通信的参考。
关键词: 视频通信; Android系统; SIP; RTC/RTCP
中图分类号: TN926?34 文献标识码: A 文章编号: 1004?373X(2014)01?0046?04
0 引 言
自2007年Android系统诞生以来,经过短短几年时间,Android已经逐步占据了智能移动终端市场的大量份额,成为最广为使用的移动操作系统。通信网络近几年的高速发展和WiFi无线网络的广泛应用,使得移动终端可以随时接入网络,享受互联网带来的丰富内容。Windows和Linux平台上的视频通信功能已经得到很好的实现和应用,Android平台可以通过接入WiFi网络进行视频通信,已经开始成为热门研究。尤其是在企业通信领域,企业一般构建了自己的内部通信环境,WiFi无线网络随时可用,软交换平台和IP电话为企业办公带来极大便利,基于移动终端的视频通信成为新的趋势[1]。
为方便企业移动办公,本文基于Android系统平台,对在企业WiFi网络环境下实现实时视频通信的关键技术进行了研究,并在此基础上对Android平台实时视频通信进行设计实现。
1 视频通信系统构成
虽然目前移动数据网络已经可以支持一些设备进行多媒体通信,但是由于通信带宽、通信费用、稳定性等原因,应用范围十分有限。随着IP网络的普及,在企业内部拥有了高带宽高稳定高速率的局域网络,设置WiFi热点提供无线连接,部署应用服务器,通过软交换设备实现和PSTN网络通信互连,除了解决上述问题之外,还有许多数据网络不可比拟的优点[2]。所以本文以企业IP网络环境为背景,研究构建Android视频通信应用系统。
1.1 系统结构
基于Android的实时视频通信系统网络组成如图1所示。
其中视频通信软件安装在Android移动终端上,其通过WiFi无线网络连接SIP服务器及与其他Android终端或装有SIP通话软件的PC终端进行通信。视频通信的实现依赖于WiFi网络、SIP服务器等外部条件[3]。移动终端用户可以对系统个性化的配置,根据自己的需求和偏好选择需要的功能;移动终端用户向服务器发出请求并完成注册;移动终端用户对语音视频数据进行采集和编码,并通过RTP/RTCP(实时传输协议/传输控制协议)进行传输和控制,对端用户进行解码和播放;SIP服务器完成对会话的控制,包括会话的注册、发起、维护与结束、注销等功能。

图1 视频癫痫的治疗费用通信系统网络结构
1.2 视频通信流程
实现视频通信的基本流程如图2所示。

图2 视频通信基本流程
在经过SIP服务器对IP地址进行连接成功后,视频通信的基本流程就变得相对简单,如视频采集直接调用Android移动终端摄像头,再将采集到的图像帧进行编码、打包、发送等一系列的处理,到对端设备解码播放就可以了。
2 关键技术
从图1及图2中就可以看出,要想在Android平台上实现实时视频通信,必须进行可靠连接、对视频进行处理、传输等,其相对应的技术就是SIP协议、视频编解码、网络传输等。
2.1 SIP协议
SIP协议(Session Initiation Protocol,会话初始协议)是由IETF(互联网工程任务组)于2001年提出的IP电话信令协议(RFC3261)[4],用于在IP数据网络上发起、建立、结束多媒体会话。SIP能够使用互联网的端点(用户代理)来发现参与者,并且协商它们共享会话的特性。SIP独立运行于底层的通信协议之上,并且不依赖于所建立的会话类型。SIP协议处于网络分层体系结构的应用层,与其他应用层协议一样,可以利用TCP或UDP来传输SIP消息。SIP会话使用四个主要组件:SIP用户代理、SIP注册服务器、SIP代理服务器和SIP重定向服务器。这些系统通过传输包括了SDP协议(用于定义消息的内容和特点)的消息来完成SIP会话。
用SIP实现通信一般分为六个步骤:
(1) 注册,发起和定位用户;
(2) 进行媒体协商——通常采用SDP(Session Description Protocol,会话描述协议)方式来携带媒体参数;
(3) 由被叫方来决定是否接纳该呼叫;
(4) 呼叫媒体流建立并交互;
(5) 呼叫更改或处理;
(6) 呼叫终止。
目前已经有很多的开源SIP协议栈可以使用,如Mjsip,PJSIP,oSIP等。Android从2.3版本开始也加入了对SIP的支持[5]。
2.2 编解码技术
Android支持的视频格式有H.263、H.264、MPEG?4 SP等,其中对M4V_H263、AVC_H264等提供了编码支持。
H.264编码技术是继MPEG?4之后的最新国际视频编码标准,由ITU?T和ISO/IEC的开发组共同进行开发。H.264标准是一种高性能的视频编解码技术,相比之前的标准,具有更高的压缩率、高质量图像、容错功能,并有很强的网络适应性,更适合于移动终端进行传输[6]。 为便于适应不同的网络结构,H.264协议定义了两个层,即视频编码层VCL(Video Coding Layer)与网络提取层NAL(Network Abstraction Layer)[7]。VCL包含了VCL编解码和VCL解码器,VCL编解码用来进行视频数据的压缩,VCL解码器用来对视频数据进行解码;NAL主要为VCL提供了一个与网络无关的统一接口,负责对视频数据进行封装,这使得封装数据包在传送过程中具有了很好的健壮性。
2.3 网络传输技术
实时传输协议(RTP)通常运行在用户数据包协议(UDP)层之上,其目的是提供时间信息和实现流同步。RTP一般与UDP一起配合来实现数据传输的功能。UDP只是用来传输数据包,哪家医院治疗癫痫病效果比较好不能对数据包传输的时间顺序进行干预。RTP的数据用UDP分组进行承载。在对RTP数据包进行承载时,若一帧的数据量很大,将被分割成几个具有相同时间标签的包进行传输,而UDP多路复用技术可以让RTP包进行多点传输,方便进行多媒体多点会话。在RTP中规定使用5%的带宽传输实时传输控制协议(RTCP),RTCP可以监控数据传输,提供数据传输质量的反馈信息[8]。RTP和RTCP配合使用,共同提供流量控制和拥塞控制服务,不仅可以得到最小的网络传输开销,而且可以对传输情况实现有效地反馈。
经过编码的H.264视频码流分别被封装上RTP包头、UDP包头和IP包头,封装之后的数据包通过无线网络传输给接收显示端。当接收端收到数据包后将按照与封包顺序相反的顺序进行解包,把RTP包头和视频数据取出,然后根据RTP包头的序列号进行排序,将视频数据依次送到解码器接口,解码器完成对数据的解码,最终进行播放显示。
3 视频通信的实现
使用Android终端的摄像头作为视频采集设备,在于SIP服务器进行成功通信建立连接之后,经过编码压缩并进行RTP打包后进行传输,到达对端进行解码播放。
3.1 获取Android许可
SIP功能的实现通过JNI(Java本地编程接口)调用开源SIP协议栈PJSIP实现,具体方法可见参考文献[9]。
首先,在AndroidManifest.xml文件中,要做允许使用SIP、Camera和WiFi的声明:
允许使用SIP

允许对SIP进行配置

允许使用Camera

允许使用WiFi
声明之后才可以在Android上使用相关的功能。
3.2 视频采集
视频采集部分包括摄像头开启、初始化以及关闭,通过调用Android系统的Camera来实现。摄像头的参数主要有以下两种:
(1) 帧率:摄像头每秒图像包含的帧数。
(2) 分辨率:采集图像的分辨率。
实现视频数据采集功能的主要代码如下:
mCamera = Camera.open(); //获取设备的 Camera
Camera.Parameters parameters=camera.getParameters()
//获取摄像头参数
parameters.setPreviewSize(currentCapability.width,
currentCapability.height)
//根据当前视频大小设置预览窗口大小
camera.setParameters(parameters); //设置摄像头服务
视频采集实现过程如图3所示。
3.3 视频编码与传送
采集获得的视频数据送入编码库进行编码。编码库提供的编码参数主要包括:视频宽度,视频高度,帧率。为了提高编解码效率,使用NDK生成一个可以在Android平台上调用的动态库.SO,继而调用由C语言实现的H.264算法[10]。

图3 视频采集实现过程
为便于在网络中传输,将对编码结果分片[11]。因为最终得到的H.264视频编码信息为NAL(网络提取层),往往是比网络的MTU(网络传输最大包大小)大很多的,因此,发送视频数据之前癫痫病有偏方治疗吗,应该进行数据分片操作,将每个发送的包控制在MTU大小之下。之后就可以进行RTP传输。RTP传输的过程如图4所示。

图4 RTP视频传输过程
收到开始指令后,首先获取经过编码的H.264视频数据,进行RTP打包,生成数据包头。数据包头中提供了时间戳、包序列号、视频类型等信息,添加完数据包头进行发送。发送时建立发送端与接收端之间的RTP会话,设置好端口,之后根据RTP协议,对数据进行分包传输[12]。
3.4 视频通信测试
搭建测试环境,使用基于Windows系统以及Kubuntu/Linux系统的专业SIP服务器miniSipServer作为SIP服务器软件,设置好分机号码。在电脑端使用免费的软电话X?Lite作为101账号终端;在手机端使用102账号。两个终端在miniSipServer上注册成功,如图5所示。 视频通信移动终端使用ZTE U985手机,Android系统为4.0,CPU频率为1 536 MHz,内存1 GB。视频连接成功后,压缩分辨率为CIF(352×288),帧率为14.99 f/s。视频表现清晰、流畅。截取的X?Lite端视频画面如图6所示。其中大屏为从手机端传送过来的画面,小屏为X?Lite端采集的视频。

图5 SIP注册成功

图6 视频通信效果
4 结 语
通过对SIP协议、H.264视频编解码、RTC/RTCP网络传输等视频通信相关技术的分析研究,成功地在Android平台上实现了视频通信,测试结果表明效果良好。随着Android移动终端软硬件配置越来越高,会实现更高质量的视频通信。通过企业通信网络并借助于Android移动终端,企业只需以十分小的成本就可以改善通信条件,实现更加灵活方便的办公。因而,基于Android的实时视频通信值得进一步深入研究,在操作界面、与其他功能融合等方面做出改进。
参考文献
[1] QADEER M A, SHAH K, GOEL U. Voice?video communication on mobile phones and PCs′ using asterisk EPBX [C]// 2012 International Conference on Communication Systems and Network Technologies. Rajkot, India: IEEE, 2012: 534?538.
[2] 郑理.基于WLAN技术的无线局域网的应用[J].信息通信,2013(5):249?250.
[3] 尹文刚,杨斌.Android平台下基于WiFi的可视化VoIP通话系统设计[J].单片机与嵌入式系统应用,2012(8):70?72.
[4] The Internet Engineering Task Force. SIP: session initiation protocol [EB/OL]. [2013?08?27]. http://www.ietf.org/rfc/rfc3261.txt.
[5] Google. Android 2.3 APIs [EB/OL]. [2013?08?27]. http://developer.android.com/intl/zh?cn/about/ve癫痫中医治疗rsions/android?2.3.html.
[6] 杨光平.基于Android的移动流媒体实时传输系统设计与实现[D].西安:西安电子科技大学,2012.
[7] MASSANDY D T, MUNI I R. Secured video streaming development on smartphones with Android platform [C]// Proceedings of 2012 7th International Conference on Telecommunication Systems, Services, and Applications. Bali, Indonesia: IEEE, 2012: 339?344.
[8] The Internet Engineering Task Force. RTP: a transport protocol for real?time applications [EB/OL]. [2013?08?27]. http://www.ietf.org/rfc/rfc3550.txt.
[9] 贺丹丹,施展.基于Android的VoIP系统的设计与实现[J].现代电子技术,2011,34(6):28?31.
[10] 许建东,彭宏.Android平台上H.264视频前端模块的研究[J].杭州电子科技大学学报,2012,32(5):93?95.
[11] 张永芹,龚建荣.H_264视频在Android手机端的解码与播放[J].中国多媒体通信,2012(4):63?65.
[12] 邵长彬,张重阳,郑世宝.基于Android的可视IP电话多媒体终端设计与实现[J].电视技术,2011,35(6):62?65.

Abstract:

To make enterprise mobile office more convenient,the real-time video communication based on Android mobile terminal is researched. The system structure of real-time video communication is built up. The key technologies of Session Initia-tion Protocol,H.264 Audio Video Coding Standard,and the RTP/RTCP network transmission protocol are also studied,and then designed and implemented on Android platform. The result shows that the video communication system works well,and can provide a reference for further study on enterprise communication.

基于Android的实时视频通信研究与实现相关推荐:

北京军海癫痫医院
推荐阅读
本类最新

© zw.tvcxm.com  千虑一得网    版权所有  京ICP备12007688号-2