论文部分内容阅读
视频会议是指多个地点的人们通过因特网进行远程视频通信服务,不仅丰富了人们生活和工作中交流的方式,还提高了人们沟通和交流的质量,并且它的应用规模正在不断地发展壮大。视频会议系统主要包括流媒体服务器、传输网络以及客户端。随着用户量的剧增,项目中原有Red5流媒体服务器出现了并发处理能力不足的问题,需要一种高并发服务器将其替换。另一方面,视频会议系统客户端存在问题和新需求。PC Client性能稳定,但需先安装软件且使用十分复杂;Flash Client应用比较广泛,但所基于Flash插件存在安全漏洞及兼容性差等问题。本文设计一种免插件、原生组件且跨平台的HTML5 Client,它是一种理想的客户端方式。但是将其融入现有项目时,需要解决它与现存的两类客户端间视音频实时通信协议间转换。针对以上问题和需求,本文的核心工作包括:(1)设计并实现HTML5 Client相关功能,包括设计自定义报文来封装视音频数据、使用WebSocket API处理WebSocket数据帧以及使用JavaScript技术实现组装和解析自定义报文;(2)研究视频会议系统原TCP模块的实现,对其设计并添加WebSocket协议处理功能,进而新的TCP模块能够处理TCP和WebSocket两种协议,实现了HTML5 Client与PC Client间视音频和HTML5 Client与Flash Client间音频实时通信;(3)搭建并分析了Nginx流媒体服务器,经测试具有高并发处理能力,能够替换Red5服务器;研究Nginx及RTMP模块的源码,设计并开发全新的RTMP扩展模块,进而Nginx服务器支持多Flash Client间视音频实时通信,满足了视频会议多用户应用需求;(4)基于Nginx平台的Upstream机制,设计并实现一个全新的HTTP模块,它不仅支持WebSocket处理,还提供RTMP数据包与自定义报文间转换,实现HTML5 Client与Flash Client间视频实时通信。本文对多协议转换及应用进行功能测试,结果正常。性能测试表明,本文实现的多协议转换系统具备高并发、低时延以及极低丢包率,具有很好的实用价值。