论文部分内容阅读
自从2011年 Google 将 WebRTC( Web Real-Time Communication)开源以后,各种基于WebRTC的Web应用增长迅速,也有越来越多的浏览器支持WebRTC。人们只需打开浏览器就可以进行音视频聊天,而无需安装具体的PC应用。但是在移动互联网的背景下,WebRTC在移动端的发展则相对缓慢,当今市场更是没有一款基于WebRTC的应用能够支持Web和移动端的联合通信。本文重点关注基于WebRTC的异构终端之间的通信问题,异构终端指Web端和Android端。我们模拟视频会议的场景,不同终端的成员都可以加入到同一个会议室同其他终端音视频聊天。本文结合WebRTC端到端传输特点将其应用到视频会议系统环境中,并设计一套方案实现视频会议中成员的加入和离开。我们选择XMPP作为信令的承载协议,以及XMPP的扩展协议Jingle作为会话控制协议,利用WebRTC提供的API实现本地音视频流的采集、传输与播放。每个客户端需要先登录到XMPP服务器,然后输入房间号以加入视频会议房间,当有其他成员加入时,媒体流服务器便会转发媒体流给房间内的其他成员。信令服务器还会维持每个客户端的状态,客户端通过心跳机制一直向服务器发送消息来保证自己在线状态,当服务器一定时间收不到该客户端发送消息便会认为该客户端离线。客户端和信令服务器之间的信道区别于传输媒体流所用的信道。根据本文设计,我们搭建服务器端,并开发Android客户端应用。最终成功完成此视频会议系统,实现各异构终端的两两连接以及跨终端连接。本文将给出Android客户端详细设计与实现。最后,本文对该系统丢包率、时延和帧率进行了测试,经过对数据的分析对比,发现WebRTC技术可以应对网络波动情况,有较低的时延,能满足视频会议系统的要求,从而验证了此方案的可行性。