WEBRTC基本介绍

简介: “WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,Google开源了这项技术!” 就 冲着600...

“WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,Google开源了这项技术!”

就 冲着6000多万美金的技术,就很值得研究一下!WebRTC提供了视频会议的核心技术,包括音视频采集、编解码、网络传输、显示等功能,并且还支持跨平 台:Windows,Linux,Mac,Android,尤其是在实时通信方面的很多技术可以灵活嫁接到非RTC类流媒体系统中,例如,在低带宽下的视 频抖动控制,图像效果增强,通用NAT穿透过程等等(后面咱们再具体细说如何嫁接),那么这就需要我们对WEBRTC的整体流程以及深层次的框架进行熟悉 和掌控,这一篇里,我们先通过浏览器端WEBRTC视频通话过程,了解WEBRTC浏览器基本接口和一次RealTime视频通话的流程。

  

 

WEBRTC结构

  首先,从WEB-RTC方面分析WEBRTC在浏览器上的接口结构,在浏览器端,WEBRTC主要实现了三个接口

  • MediaStream, 实现对本地音视频资源的封装,例如从Camera、Microphone、远端Stream等等,MediaStream表示一个媒体数据流,一个 MediaStreamTrack表示MediaStream中的一个媒体源,如音频、视频、字幕等等。
  • RTCPeerConnection,语音或者视频通话过程,内部涵盖呼叫、应答、穿透、加密、传输及会话管理等一系列流程,一个RTCPeerConnection代表一对通话过程中的一端。
  • RTCDataChannel,在PeerConnection之上,传输自定义数据。

 

#MediaStream

在浏览器端,MediaStream接口名称为getUserMedia, 该接口为上层提供同步的音视频流,比如在本地媒体资源获取的时候,一路MediaStream可以是一路本地Camera提供的视频Track与一路本地 Microphone提供的音频Track经过同步后的Stream。当然,在浏览器端获取到音视频数据后,可以做本地化的各种处理,例如抓图、图像样式 变化、本地显示滤镜等等。

 

 

#RTCPeerConnection

RTCPeerConnection主要是用来处理点到点之间的连接和数据 传输,使整个过程能够稳定且高效。在RTCPeerConnection下,封装了大量的编解码、通信协议的工作来实现整个实时通信过程,甚至是在不能提 供稳定带宽情况下的实时通信,主要功能点包括:

 

  • 丢包补偿(packet loss concealment)
  • 回音消除(echo cancellation)
  • 自适应带宽(bandwidth adaptivity)
  • 视频抖动缓冲器(dynamic jitter buffering)
  • 自动增益控制(automatic gain control)
  • 噪声降低和抑制(noise reduction and suppression)
  • 图像清理(image 'cleaning')(!暂且这么翻译吧)
 
#RTCDataChannel

RTCDataChannel提供了在RTCPeerConnection 之上交换自定义数据的方法,相比于流媒体数据,在PeerConnection上传输自定义数据,不仅是在量上,而且在可靠性、安全性、灵活性方面,远能 够满足需求。这样在开发基于音视频的游戏和应用上,提供了较大的方便。

 

WEBRTC组件

 

#Transport/Session

  • 完整的RTP/SRTP协议栈
  • STUN、TURN、ICE过程
  • Session管理机制。

#VoiceEngine

WebRTC极具价值的技术之一,支持722,PCM,ILBC,ISAC等编码,在VoIP上,技术业界领先!

NetEQ算法:自适应抖动控制算法以及语音包丢失隐藏算法。使其能够快速且高解析度地适应不断变化的网络环境,确保音质优美且缓冲延迟最小。能够有效的处理由于网络抖动和语音包丢失时候对语音质量产生的影响。NetEQ也是WebRTC中一个极具价值的技术,对于提高VoIP质量有明显效果,加以AEC(回声消除)\NR(噪声抑制)\AGC等模块集成使用,效果更好。

 #VideoEngine

VP8视频图像编解码器,是WebRTC视频引擎的默认的编解码器,VP8适合实时通信应用场景,因为它主要是针对低延时而设计的编解码器。 

视频抖动缓冲器,可以降低由于视频抖动和视频信息包丢失带来的不良影响。

图像质量增强模块对网络摄像头采集到的图像进行处理,包括明暗度检测、颜色增强、降噪处理等功能,用来提升视频质量。

目录
相关文章
|
2月前
|
Web App开发 编解码 安全
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
182 1
|
Web App开发 编解码 算法
WebRTC简介
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
600 0
WebRTC简介
|
1月前
|
Web App开发 编解码 API
WebRTC简介及使用
WebRTC简介及使用
94 0
|
8月前
|
编解码 监控 开发工具
跨平台轻量级RTSP服务模块设计思路及实现探讨
为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,我们发布了轻量级RTSP服务模块,轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,实现本地的音视频数据(如摄像头、麦克风),编码后,汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,轻量级RTSP服务,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。
|
10月前
|
编解码 网络协议
一个RtspServer的设计与实现和RTSP2.0简介
一个RtspServer的设计与实现和RTSP2.0简介
431 0
EMQ
|
11月前
|
传感器 缓存 安全
MQTT 协议入门:基础知识和快速教程
本文将通过讲解与演示向读者展示 MQTT 协议的入门使用流程,开发者可以通过本文以更简单的方式理解 MQTT 相关概念,快速开始 MQTT 服务及应用的开发。
EMQ
1447 0
MQTT 协议入门:基础知识和快速教程
|
Web App开发 编解码 Linux
webRTC开篇
WebRTC系列
222 0
|
Web App开发 编解码 安全
零基础快速入门WebRTC:基本概念、关键技术、与WebSocket的区别等
本文主要分享了WebRTC的基本概念、关键技术术语(包括NAT、STUN、TURN、ICE、SDP 和信令),着重讲解了WebRTC是如何实现P2P通信以及WebRTC信令的作用,同时讨论了WebRTC在技术上的优势和劣势,最后还提供了一个简单的WebRTC Demo代码。
374 0
零基础快速入门WebRTC:基本概念、关键技术、与WebSocket的区别等
|
XML 存储 JSON
IM通讯协议专题学习(三):由浅入深,从根上理解Protobuf的编解码原理
本篇文章我们不讨论IM系统中的那些高端技术话题,我们回归到通讯的本质——也就是数据在网络中交互时的编解码原理,并由浅入深从底层理解Protobuf的编解码技术实现。
145 0
IM通讯协议专题学习(三):由浅入深,从根上理解Protobuf的编解码原理
|
XML 存储 JSON
IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!
当前IM应用中最热门的通讯协议无疑就是Google的Protobuf了,基于它的优秀表现,微信和手机QQ这样的主流IM应用也早已在使用它。 本文作为《IM通讯协议专题学习》系列文章的首篇,将从初学者的角度,用通俗简洁的文字,从零开始为你介绍Protobuf的方方面面,特别适合新手入门。
380 0
IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!