WebRTC通话原理-媒体协商

作者: 亢少军
首先两个客户端(Peer-A和Peer-B)想要创建连接,一般来说需要有一个双方都能访问的服务器来帮助它们交换连接所需要的信息。有了交换数据的中间人之后,它们首先要交换的数据是Session Description Protocol(SDP),这里面描述了连接双方想要建立怎样的连接。
彼此要了解对方支持的媒体格式。比如,Peer­A端可支持VP8、H264多种编码格式,而Peer­B端支持VP9、H264,要保证二端都正确的编解码,最简单的办法就是取它们的交集H264。如下图所示。
在这里插入图片描述

有一个专门的协议称为SDP(Session Description Protoco),可用于描述上述这类信息,在WebRTC中,参与视频通讯的双方必须先交换SDP信息,这样双方才能知根知底,而交换SDP的过程,也称为“媒体协商”。
SDP从哪来,一般来说,在建立连接之前连接双方需要先通过API来指定自己要传输什么数据(Audio,Video,DataChannel),以及自己希望接受什么数据,然后Peer-A调用CreateOffer()方法,获取offer类型的SessionDescription,通过公共服务器传递给Peer-B,同样,Peer-B通过调用CreateAnswer(),获取answer类型的SessionDescription,通过公共服务器传递给Peer-A。 在这个过程中无论是哪一方创建Offer(Answer)都无所谓,但是要保证连接双方创建的SessionDescription类型是相互对应的。Peer-A=Answer Peer-B=Offer | Peer-A=Offer Peer-B=Answer。如下图所示。

在这里插入图片描述
图中信令服务器可以用来交换双方SDP信息,一般是通过创建Socket连接进行交互处理。你可以使用Node.js技术也可以使用Golang或其他技术,只要能交换双方的SDP数据即可。

WebRTC交流群: 425778886
开源地址: https://github.com/kangshaojun
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亢少军

致力于跨平台技术开发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值