基于Janus网关的WebRTC音视频客户端设计与实现
2021-08-09张远刘伟董显平蔡树培
张远 刘伟 董显平 蔡树培



【摘要】 随着互联网技术的发展,实时音视频应用正逐步融入到人们日常的工作、学习、生活中,在会议协作、在线教育、智慧工厂、网络直播等行业取得了良好的效益。本文在介绍WebRTC技术的基础上,基于Janus网关设计并实现了一个在浏览器中运行的音视频客户端系统,具备音视频设备调试,音视频直播放映,基于SIP协议的Web话机,会议协作等功能,具有跨平台,即点即用,低成本,稳定可靠等特点,论证了使用Janus网关开发WebRTC应用的可行性。
【关键字】 WebRTC Janus网关 音视频客户端
一、WebRTC技术简介
WebRTC即Web Real-Time Communication(网页实时通信),是一个Web浏览器原生支持的点对点进行实时音频、视频通信及通用数据传输的技术,提供了包括客户端音视频采集、编解码、网络传输、显示等一系列核心功能,为Web开发者提供了应用程序接口(API),支持Windows, Linux, MacOS, Android, iOS等多种操作系统间跨平台通信[1]。
二、Janus网关介绍
Janus网关(Janus Gateway)是由Meetecho公司开发的开源通用WebRTC服务器,提供了客户端间实时音视频通信,信令交互,RTP/RTCP数据包接力转发等功能,同时封装了WebRTC的编程接口,屏蔽了各个平台间WebRTC编程接口的差异,更便利于开发者进行各种音视频应用的开发[2]。
Janus网关使用C语言开发,代码架构分为核心模块,插件模块,插件编程接口模块,管理、监控模块,事件处理及日志编程接口等模块。其中核心模块实现了RTCP/RTP/SRTP/SCTP等数据包传输协议以及ICE/STUN/TURN等内网透传协议;插件模块实现Janus网关支持的各项功能,如回声测试、视频呼叫、聊天室等,同时支持第三方插件的……
