深圳知名网站建设平台,html5网站欣赏,网站首页布局设计,免费制作微信网页网站webRTC学习1、webRTC简介1.1什么是webRTC#xff1f;1.2、作用2、webRTC通信原理2.1、媒体协商#xff08;SDP#xff09;2.2、网络协商#xff08;candidate#xff09;2.2.1、STUN2.2.2、TURN2.3、媒体协商网络协商数据的交换通道webRTC官网1、webRTC简介
1.1什么是web…
webRTC学习1、webRTC简介1.1什么是webRTC1.2、作用2、webRTC通信原理2.1、媒体协商SDP2.2、网络协商candidate2.2.1、STUN2.2.2、TURN2.3、媒体协商网络协商数据的交换通道webRTC官网1、webRTC简介
1.1什么是webRTC
Web实时通信是一种技术使Web应用程序和站点能够捕获和选择性地流式传输音频和/或视频媒体以及在浏览器之间交换任意数据而无需中介。构成WebRTC的一套标准使得共享数据和执行电话会议成为可能而无需用户安装插件或任何其他第三方软件。 webRTC是双向通信
1.2、作用
与媒体捕获和流 API 一起它们为 Web 提供强大的多媒体功能。
支持音频和视频会议文件交换屏幕共享身份管理与旧电话系统的接口支持发送 DTMF按键拨号信号
对等方之间的连接可以在不需要任何特殊驱动程序或插件的情况下建立并且通常可以在没有任何中间服务器的情况下建立。
2、webRTC通信原理
2.1、媒体协商SDP 问题
A端视频采用VP8编码然后发送给B端B端怎么去解码B端视频采用VP9编码然后发送给A端A端怎么去解码 所以要协商具体要用什么编码器使用双方共有的编码器H264
Peer-A端可支持VP8、H264多种编码格式,而Pee-B端支持VP9、H264, 要保证二端部正确的编解码,最简单的办法就是取它们的交集H264 注:有一个专门的协议,称为Session Description Protocol (SDP),可用于描述上述这类信息在WebRTC中, 参与视频通讯的双方必须先交换SDP信息这样双方才能知根知底而交换SDP的过程也称为媒体协商。
2.2、网络协商candidate
彼此要了解对方的网络情况这样才有可能找到一条相互通讯的链路。
结论
(1)获取外网IP地址映射;
(2)通过信令服务器(signal server)交换网络信息理想的网络情况是每个浏览器的电脑都是私有公网IP可以直接进行点对点连接。 实际情况我们的电脑或大或小都是在某个局域网中需要NAT网络地址转换 在解决WebRTC使用过程中的上述问题的时候我们需要用到STUN和TURN。
2.2.1、STUN
STUN (Session Traversal Utilities for NAT, NAT会话穿越应用程序)是一种网络协议它允许位于NAT (或多重NAT)后的客户端找出自己的公网地址查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。 这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。该协议由RFC 5389定义。 这样两台电脑就可以在公网IP中进行通话。 使用一句话说明STUN做的事情就是:告诉我你的公网IP地址是什么。搭建STUN服务器很简单,媒体流传输是按照P2P的方式。 那么问题来了STUN并不是每次都能成功的为需要NAT的通话设备分配IP地址的P2P在传输媒体流时使用的本地带宽,在多人视频通话的过程中通话质量的好坏往往需要根据使用者本地的带宽确定。那么怎么办? TURN可以很好的解决这个问题。
2.2.2、TURN
TURN的全称为Traversal Using Relays around NAT,是STUN/RFC5389的一 个拓展主要添加了Relay功能。如果终端在NAT之后那么在特定的情景下,有可能使得终端无法和其对等端(peer) 进行直接的通信这时就高要公网的服务器作为一个中继对来往的数据进行转发。 这个转发的协议就被定义为TURN。 在STUN分配公网IP失败后可以通过TURN服务器请求公网IP地址作为中继地址。这种方式的带宽由服务器端承担在多人视频聊天的时候本地带宽压力较小并且,根据Google的说明TURN协议可以使用在所有的环境中。
2.3、媒体协商网络协商数据的交换通道
当知道两个客户端协商信息和网络信息后怎么交换呢是不是需要个中间商去做交换所以我们需要一个信令服务器Signal server转发彼此的媒体信息和网络信息 如上图我们在基于WebRTC API开发应用(APP) 时可以将彼此的APP连接到信令服务器(Signal Server, 一般搭建在公网或者两端都可以访问到的局域网) , 借助信令服务器就可以实现上面提到的SDP媒体信息及Candidate网络信息交换。 信令服务器不只是交换 媒体信息sdp和网络信息candidate比如房间管理、人员进去房间