EasyRTC实现基于WebRTC技术实现的即时通信类应用
Posted xiejiashu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyRTC实现基于WebRTC技术实现的即时通信类应用相关的知识,希望对你有一定的参考价值。
WebRTC简介
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。EasyRTC基于WebRTC,凭借多年音视频开发经验并结合实际情况,开发了 基于WebRTC的音视频通讯云平台,提供互动教学、连麦直播、视频会议、指挥调度等多种音视频跨平台解决方案。
WebRTC历史
2010年5月,Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎,并改为名为“WebRTC”。WebRTC使用GIPS引擎,实现了基于网页的视频会议,并支持722,PCM,ILBC,ISAC等编码,同时使用谷歌自家的VP8视频解码器;同时支持RTP/SRTP传输等。
2012年1月,谷歌已经把这款软件集成到Chrome浏览器中。同时FreeSWITCH项目宣称支持iSAC audio codec。
WebRTC核心API
WebRTC原生APIs文件是基于WebRTC规格书撰写而成,这些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三类:
Network Stream API
MediaStream:MediaStream用来表示一个媒体数据流。
MediaStreamTrack:在浏览器中表示一个媒体源。
RTCPeerConnection:一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。
RTCIceCandidate:表示一个ICE协议的候选者。
RTCIceServer:表示一个ICE Server。
Peer-to-peer Data API
DataChannel:数据通道(DataChannel)接口表示一个在两个节点之间的双向的数据通道。
WebRTC音频引擎整体架构
在内部实现上,音频引擎VoiceEngineImpl通过一系列对象来实现音频处理,包括VoEAudioProcessingImpl、VoECodecImpl、VoENetworkImpl等等,每个对象负责具体某方面功能,例如VoEAudioProcessingImpl负责调用底层AudioProcessing模块对音频数据进行预处理。在这些功能对象中,比较重要的有VoEBaseImpl、SharedData和Channel。其中VoEBaseImpl是连接音频设备AudioDevice和音频引擎VoiceEngineImpl的纽带,是音频数据流水线上的重要一站;SharedData是一个聚合类,持有一系列重要对象;Channel则代表一路音频数据,负责大部分对该路数据的重要操作,包括音频数据的前处理、编解码、发送和接收、后处理、混音等等。
从功能依赖上讲,VoiceEngineImpl依赖五个重要的底层功能模块:音频数据采集和播放AudioDeviceModule 、音频数据预处理AudioProcessing、音频数据编解码AudioCodingModule、接收端音频数据缓冲区NetEq、接收端混音AudioConferenceMixer。此外音频数据编解码还依赖一系列音频编解码器如G711、G722、Opus等等。在发送端,音频数据由AudioDevice采集得到,经过AudioProcessing预处理后,到达AudioCodingModule进行编码,然后由RTPRTCP模块发送到网络。在接收端,音频数据经过RTPRTCP模块接收后到达AudioCodingModule,存储在NetEq中进行抖动控制和错误消除,然后解码。解码后的数据经过AudioConferenceMixer进行混音,最终发送到AudioDeviceModule进行播放。
从整个WebRTC框架结构来看,音频引擎和和视频引擎都位于比较底层的位置,负责音视频数据的采集、编解码、渲染播放等工作。音视频引擎的上一层是多媒体引擎WebRtcMediaEngine2,是对底层音视频引擎VideoEngine的进一步高层抽象,由WebRtcVoiceEngine对VoiceEngine进行封装,WebRtcVideoEngine2对VideoEngine进行封装。
EasyRTC音视频通讯云平台SDK哪些使用场景用到WebRTC?
1、在线教育
EasyRTC基于谷歌WebRTC开放标准打造,超低延迟、全终端覆盖,可以满足各类需求,支持一对一、多对对、共享视频、共享课件、互动交流等功能。
2、视频会议
EasyRTC高清流畅的音视频、高安全性、全平台运行、丰富的会议管理功能,支持视频、语音多人会议,适用于会议、培训、互动等多人移动会议。
3、指挥调度
EasyRTC高清流畅的音视频、超低延时、指挥有力、资源保障等全面协调的的视频通讯指挥平台,实现现场应急与后方应急指挥中心的实时视频通讯、同步传输、精准调度、各级高效协同。适用于安防监控、智能家居。
4、互动连麦
EasyRTC基于RTMP和RTC混合引擎的在线视频连麦互动直播。ios 直播(网络自适应码率RTMP Pusher)、点播播放器(播放器经过专业优化,可实现秒开RTMP Player)、基于RTMP 和RTC 混合引擎的的视频连麦互动(最多支持四路连麦互动),适用于游戏直播、美女秀场。
5、语音通话
EasyRTC支持视频、语音、优先视频等多种呼叫模式,适用于网络电话、活动、教育等多种呼叫场景。
6、实时直播
EasyRTC实现快速实时直播,相比RTMP更加快捷,超低延时、极简API接口、超快接入。适用于在线娃娃机、智能硬件、在线医疗、 视频招聘、相亲交友等多种场景。
详细效果演示可查看:www.easyrtc.cn
以上是关于EasyRTC实现基于WebRTC技术实现的即时通信类应用的主要内容,如果未能解决你的问题,请参考以下文章
IM音视频即时通讯系统EasyRTC如何利用webrtc技术进行优化和发展?
基于WebRTC研发的产品(EasyRTC)现状与未来发展趋势