● 简介
WebRTC是一门实时通讯技术,它允许它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览 器之间点对点的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
● WebRTC用到的协议
ICE:是一个允许你的浏览器和对端浏览器建立连接的协议框架。该技术能过让客户端成功的穿透,远程用户和网络之间存在的各类防火墙(网络协商)
STUN:NAT的UDP简单的网络协议,它允许位于NAT后的客户端找出自己的公网地址,查出自己位于那种类型的NAT之后,以及NAT为某一个本地端口绑定的Internet端端口。这些信息用来在两个同时处于在NAT路由后的主机之间进行通信。

获得了公网ip,也不一定能建立连接,因为不同类型的NAT处理传入的udp分组的方式是不同的。STUN穿透:完全圆锥型NAT,受限圆锥型NAT和端口受限圆锥型NAT。但是大型公司中经常采用的对称型NAT是不能使用的,一些路由器严格地限定了部分私网设备的对外连接。这种情况下,即使 STUN 服务器识别了该私网设备的公网 IP 和端口的映射,依然无法和这个私网设备建立连接。这种情况下就需要转向 TURN 协议。

网络协商:
双方需要了解对方的网络情况,这样才会找到一条能够彼此通信的链路。
(1)获取外网的IP地址映射 (2)通过信令服务器进行网络的交换
理想情况下每个电脑的浏览器都有自己私有的公网IP,可以进行点对点的连接


实际情况下,电脑和电脑之间或大或小只在某一个局域网中,需要NAT进行地址转换

局域网ip绑定,

STUN:告诉我你公网ip地址+端口号是什么。搭建STUN服务器很简单,流媒体传输是按照P2P的方式。

问题:STUN并不是每次都能够成功的为需要的NAT的通话设备分配IP地址的,P2P在传输媒体流时,使用本地带宽,在多人音视频通话的过程中,通话质量好坏往往需要根据使用者本地带宽确定

TURN:TURN是STUN/RFC5389的一个扩展,主要添加了Relay功能。如果终端在NAT之后,那么特定的情况下有可能使得终端无法和对等端进行直接通信,这个时候就需要公网服务器作为一个中继,对来往的数据进行转发。转发的协议被定义为TURN。

STUN在分配公网ip失败后,可以通过TURN服务器请求公网的ip地址作为中继地址。这种方式的带宽由服务器承担,在多人视频聊天的时候,本地带宽压力较小。

媒体协商:
SDP:会话描述协议是一个描述多媒体连接内容的协议。(媒体协商)

A端音视频采用vp8编码发送给B端,B端怎么去解码。
B端采用vp9编码,发送给A端,A端怎么去解码。
比如:A端可以采用vp8和H264编码,B端采用VP9和H264编码,为了确保两端都能正确的解码。最简单的就是采用H264编码。
注:SDP在webrtc中,可以描述上面的信息。在音视频通讯的时候,双方需要交换SDP。

媒体协商+网络协商数据的交换通道
两个客户端交换媒体信息和网络信息,通过信令服务器来实现。

信令服务器除了交换网络协商信息和媒体协议信息,比如房间的管理,音视频播放的音乐信息,进度条信息等都需要通过信令服务器实现。

WebRTC的基本概念相关推荐

  1. (五)WebRTC手记Channel概念

    转自:http://www.cnblogs.com/fangkm/p/4401075.html 前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块.不过在介绍 ...

  2. WebRTC -- 流媒体基础概念

    一.流媒体协议 1.1 RTP (Real-time Transport Protocol) 1.1.1 RTP特征 实时传输协议(Real-time Transport Protocol)是一个网络 ...

  3. 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器开源项目介绍

    揭开webRTC媒体服务器的神秘面纱--WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的.当我第一次尝试理解WebRTC时,网络资源之多让人难以置信.本文针对webRTC ...

  4. 基于 WebRTC 实现自定义编码分辨率发送

    导读:2020年如果问什么技术领域最火?毫无疑问:音视频.2020年远程办公和在线教育的强势发展,都离不开音视频的身影,视频会议.在线教学.娱乐直播等都是音视频的典型应用场景. 文|何敬敬 网易云信客 ...

  5. 基于 WebRTC 的 P2P 文件传输

    前言 WebRTC 是一个实时通信的技术,它提供了一套 API,可以让浏览器实现 P2P 通信,而且不需要额外的插件,这使得 WebRTC 成为了一种非常有前景的技术.在前面几篇文章中,我们已经介绍了 ...

  6. iOS下WebRTC音视频通话(一)

    在iOS下做IM功能时,难免都会涉及到音频通话和视频通话.QQ中的QQ电话和视频通话效果就非常好,但是如果你没有非常深厚的技术,也没有那么大的团队,很难做到QQ那么快速和稳定的通话效果. 但是利用We ...

  7. WebRTC技术专题(2)【大势所趋,迈向认识 WebRTC 的第一步】

    每日一句 人生的挑战,无处不在,满怀信心,轻装上路,明天永远是充满希望的战场. 承接上文 承接上文的内容介绍完相关WebRTC技术的概念和发展历程后,开始初步摸索一下相关WebRTC技术的功能和原理. ...

  8. 《WebRTC实时通信》笔记整理汇总

    前言 1.本书脉络 以高度抽象方式描述与WebRTC相关的完整开发周期: 说明如何编写代码以查询.获得对本地多媒体资源(如音频和视频设备)的访问,并在HTML5中显示: 将获得的媒体流与PeerCon ...

  9. WebRTC 简单入门与实践

    一.前言 WebRTC 技术已经广泛在各个行业及场景中被应用,但对多数开发者来说,实时音视频及相关技术却是比较不常接触到的. 做为一名 Web 开发者,WebRTC 这块的概念着实花了不少时间才搞明白 ...

  10. WebRTC源码分析-呼叫建立过程之四(上)(创建并添加本地音频轨到PeerConnection)

    目录 1. 引言 2. 音频轨创建和添加 2.1 音频源AudioSource的创建 2.1.1 音频源继承树 2.1.2 近端音频源LocalAudioSource 2.1.3 远端音频源Remot ...

最新文章

  1. docker 部署_Kooteam搭建之Docker部署
  2. go连接mysql数据库
  3. 02_Influxdb开启登录认证
  4. error gyp ERR! stack Error: Could not find any Visual Studio installation to use
  5. poj 3414 Pots BFS
  6. Qt5.4中遇到找不到头文件QApplication等。
  7. 软件测试中的风控,测试过程中会遇到哪些风险和机会?
  8. iView学习笔记(四):Form表单操作
  9. mac os maven_如何在Mac OS上安装Maven
  10. 用glew,glfw实现opengl-学习笔记3着色器
  11. 怎样才能成为一名合格的数据分析师?
  12. PostgreSQL更改表格的owner
  13. 微信公众号订阅消息 wx-open-subscribe 的实现及闭坑指南
  14. 线段树+平衡树(STL) 勤快的love 枫
  15. 华为S5700交换机登录认证配置学习笔记
  16. 设置Google文档离线同步,更好的高效离线工作
  17. iphone 快捷指令 python_iphone快捷指令在哪怎么用 苹果ios13快捷指令安装使用教程...
  18. Python可视化案例:Mutual Funds和ETFs对比
  19. OGS标准以及常见的标准服务
  20. 关于IntelliJ IDEA中的代码自动对齐快捷键没有响应

热门文章

  1. HTTP报错状态码详解
  2. 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
  3. 360 n5 com.android.sc,360N5官方稳定版刷机包(最新系统刷机固件升级包V3.0稳定版)...
  4. 卫星地面站的星地链路研究
  5. java jshelllink_Jshell使用
  6. iec104点号_IEC104规约流程
  7. 软件工程专业的论文答辩_软件工程专业本科毕业答辩?
  8. dh协议c语言代码,openssl开源程序dh算法解析之dh_ameth.c
  9. 计算机一级excel试题百度云,excel计算机一级试题
  10. SACD ISO镜像中提取DSDIFF(DFF)、DSF文件