基于Android平台的实时音视频无线传输系统探析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Android平台的实时音视频无线传输系统探析
发表时间:2019-09-20T14:16:33.337Z 来源:《防护工程》2019年11期作者:于志江[导读] 无线宽带技术在科技的带动下迅速发展,网络通信也逐渐普及。
深圳市晟江科技有限公司 518000 摘要:无线宽带技术在科技的带动下迅速发展,网络通信也逐渐普及。利用移动智能终端可以进行相应的会话,这对商务人士来说是一种迫切的需求。立足于安卓智能终端,并对音视频传输系统进行设计,给后期移动终端多媒体会议系统的开发提供重要的参考依据,让系统的各项性能均可以得到保证,并对相应的质量进行评估,对后续系统的开发做好优化,实施相应的理论验证。
关键词:Android平台;实时音视频无线传输;系统探析
引言
数字音视频压缩技术在近年来的发展十分壮大,多媒体技术的应用更是逐渐广泛,对芯片的处理能力也有了较高的提升。多媒体终端逐渐向小型化方向发展,无线链路上更是有多媒体信息的实时传输,这就会日益成为目前网络流行的热点。
一、系统软硬件的总体构成该系统总体的安装构成有计算机、自带摄像头、无线路由器等。客户端程序是在手机上安装,计算机担任整个服务器端,系统总体的软件构架通过图1表示,对视频数据的获取主要是利用摄像头进行获取然后完成视频的采集,对视频数据进行压缩编码处理,利用无线路由器通过无线网络传输给计算机,让程序对具体的服务器端对视频数据进行解压和显示。
图1 系统总体软件架构二、RTP/RTCP协议实时传输协议是专门对因特网上多媒体数据流进行服务的一种传输协议,具有一种服务的功能。RTP可以一对一的对多媒体数据流进行传输,主要的目的就是提供相应的时间,让其达到同步机制的目标。RTP可以在用户数据包协议进行建立,还可以在其他不同传输模式的协议中使用,这样只能对实时数据的传输进行相应的确保,并不能按照相应的顺序对数据完成传输,传送机制也会不够可靠,不能提供相应的流量控制,主要的服务是依靠RTCP提供这些服务。实时传输控制协议对传输质量具有一定的管理作用,可以让应用进程之间的数据有效交换。通过RTP会话时,需要让参与人员周期性的对RTCP包进行传送,包中已经包括发送完成的数据包流量,还具有一些丢失的数量统计资料[1]。这些数据信息可以作为服务器的参考,动态的对传输速率进行改变,对有效载荷类型也需要实施相应的改变。将RTP和RTCP需要配合在一起进行使用,能够通过有效的反馈使得传输效率达到最大化,对实时数据有效进行控制,让其顺利的传输。
三、设计程序整体架构程序中主要有6大模块,分别是程序界面,音视频网络的连接,以及模块的收发和视频的编解码。(一)编解码库的优化应用编解码库中需要采取不同的封包办法,让不同的数据均可以打包容量分段,然后对每段的载荷头有效进行设置,将每段的数据缓存起来,利用视频对模块进行接发,然后将每组数据打包。(二)程序实现思路音视频中原始数据的采集以及播放均由安卓应用来完成,将音视频流获取之后,才能够对音视频数据进行获取,然后对音视频数据流有效进行处理。利用音视频中的接口函数对多媒体数据进行压缩和发送,对响应信息进行接收和呼叫。将连接断开后,上层的应用需要将全部的数据清空,并对所用的数据进行发送和接收。
四、开发思路和关键技术系统进行开发选择的主要思路是Socket,利用这种系统对数据通信链路进行建立和收发,对无线局域网进行利用,让其成为物理通信线路[2]。获取视频主要是利用JMF中Java来获取,对该视频进行捕获的过程中需要进行解码,通过PC显示器将其显示出来,获取摄像头中数据时需要通过JMF然后让PC获得,利用Socket进行传输,传输完成后重新进行绘制。摄像头通常都是用来拍照和视频录制,拨打视频电话过程中,双方都能够看到清晰的画面,利用摄像头获取图像时,对本地其中一组数据进行浏览,对另外一组数据进行数据编码,然后传输到另外一端,对图像同时进行预览和录制。(一)传递回调函数对客户端中回调的函数进行传递,让其到达底层,当底部将具体的数据图像获取之后,需要对函数进行回调,然后对上层进行通知,立即采取必要的处理措施。客户端是由类主宰的,其中成员有两个,访问系统是类的必经之路,属于一种对外接口,通过类对类的继承可以对不同按钮实施功能监听。当对一组数据真正完成捕获后,就会对回调的函数进行调用,并反馈给客户端。再由客户端对回调函数中的参数有效进行判断,通过具体参数的类型对这一组数据实施编码处理,等编码彻底结束后实现对函数的调用。(二)分配数据buffer 不同类中,默认分配的buffer有6个,视频数据利用的仅有1个。Camera对视频数据进行捕获,当获取一组数据后,由buffer对数据进行存储,存储的数据用于preview和record。当客户端对函数进行调用后将buffer释放,并用于其他的地方。(三)视频录制调用
对网络进行分段再由