4-5.WebRTC中的媒体协商

那今天呢?我们来介绍一下媒体协商,媒体协商可以说是我们使用webrtc中非常关键的一个步骤。因为只有进行媒体协商之后,我们的数据流呢,才能从一端源源不断的发向另一端。

那媒体协商,它主要起到什么作用呢?实际上,最主要的作用就是看双方都支持哪些编解码器。那这些编解码器又包含哪些参数?比如音频的参数,包括采样率,采样大小,声道数。

那对于视频来说呢?包括了分辨率,帧率等等,这一系列参数除此之外呢?

我们在传输中使用的payload type也是在协商中确定的这些信息呢?都是在sdp中进行的描述。

那今天呢?我们介绍的主要是协商的一个完整的过程,那对于协商时我们使用的sdp中的详细内容。我们留作后面再做详细介绍,那对于webrtc媒体协商的具体步骤呢?就像这张图所展示的,

一共分成八步。从图中我们可以看到啊,通讯的双方在进行协商的时候会分成。呼叫端和被叫端,那在这里呢?就是是呼叫端是被叫端,对于呼叫端来说,

它第一步要做的就是create offer。先创建一个类型为offer的sdp,那创建好之后呢?

执行第二步也就是setlocaldescription。将创建好的offer设置到它内部的缓冲区中,

那第三步呢?再将这个offer通过新定服务器传给对端。对吧,

当对端收到这个offer之后呢,要调用setremotedescription,将收到的offer保存到自己的缓冲区中。

执行第五步创建answer。然后执行第六步,再调用setlocaldescription,将自己创建的answer设置到自己的缓冲区中。然后第七步再将这个answer通过限定服务器返回给呼叫端,那呼叫端呢,最后执行第八步调用side remote description。将远端的answer也设置到自己的缓冲区中,最终呢,就可以进行媒体协商了,那以上呢,

就是webrtc整个媒体协商的具体步骤。那通过这个步骤啊,我们可以发现,对于媒体协商来说。双方都要调用site local description和site remote description,这两个函数的具体作用其实就是把两份sdp。保存到它内部的缓冲区中之后呢?在y8 tc的底层,再对这两个sdp进行分析。最终呢,找到它们可以共同支持的编辑码器以及与编辑码器相关的各种参数。那最后呢,我们才能实现数据的互通,对吧?好,

这是媒体协商的具体步骤。那对于这张图来说呢,我们一定要牢牢掌握,因为媒体协商呢,是我们使用webrtc非常关键的一个步骤。我们每次传输音视频数据之前呢?都要先进行媒体协商之后呢,才能使得数据进行互通,否则的话。后边儿的数据就没法儿从一端传到另一端,对吧?即使传出去,那对端呢?也无法对它进行解析。那下面呢,

我们再来看看媒体协商的时序图,那在这个时序图中呢,一共包括四个组件儿,那第一个呢就是呼叫端a。第二个呢,是被呼叫端b。第三个是信令服务器,第四个呢是斯坦特尔服务器,那么一个完整的端到端的通信呢,实际就是由这四部分组成的。那下面我们就来看一下a与b要进行通讯的时候,它是怎么进行媒体协商的?具体的步骤是怎样的?好那首先呢,对于想要通讯的a和b来说。

他们都要先与新订服务器进行连接,对吧?所以要做一个connect signal好当与新订服务器连接成功之后呢?对于呼叫端来说,要创建peer connection这个对象,只有将从麦克风采集的音频数据。以及从摄像头采集的视频数据,通过add stream或者是add track的方法,将它添加到peer connection中。这样peer connection在媒体协商的时候就知道我们要协商哪些信息了,那我们是否有音频,是否有视频,视频的参数是怎样的,音频的参数是怎样的?这样才能能创建offer,

对吧?好,那第四步呢?就是创建offer。当把offer创建好之后,要调用setlocaldescription,将这个offer呢保存到自己的缓冲区中。然后发送信令,通过信令呢,将offer类型的sdp发给被呼叫端。当被呼叫端收到offer心令之后呢,它首先要创建peer connection,这是它一侧的网络连接对象,对吧?之后呢,

调用setremotedescription将发送过来的offer设置到自己的本地缓存中,之后呢,它创建answer。再调用setlocaldescription将answer呢?创建到自己的缓冲区中,这样它就先进行媒体协商了。好紧接着做一个信令发送,那发送的呢是answer类型的message,之后经过信令服务器转发给呼叫端。主表端最后再调用setremotedescription。将answer设置到自己的缓冲区中,这时候也会在底层进行媒体协商,那么当整个协商都完成之后呢?最后,再通过candidate进行数据的传输,

那这样呢,就完成了整个媒体协商的过程是吧?那对于后半部分。candidate相关的内容呢?我们留作以后再向你做详细介绍,那现在我们应该知道,对于a与b进行媒体协商时。它的一个这个顺序关系是怎样的好以上呢?就是我们一对一媒体协商的一个具体过程,那么通过这两张图呢,相信你已经对媒体协商的整个过程有了一个清楚的了解。那有了这个知识之后,我们后边再去分析代码的时候,你就会非常容易理解它代码为什么要那么写了?这就为我们理解外部rtc demo程序打下了一个非常好的基础,

如有侵权,请联系我删除

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值