webrtc学习(七)-媒体协商

一.概述

媒体协商嘴主要的作用就是看通信双方都支持那些编解码器,这些编解码器又包含那些参数,比如音频的参数包括采样率,采样大小,通道数,对于视频的参数包括分辨率帧率等一系列参数,此外传输中用的payloadtype也是协商中确定的,这些信息都是在sdp中进行的描述。

二.媒体协商步骤

从上图中可以看到,一共分成8步,对于呼叫端A来说,第一步是创建一个类型为offer的sdp,创建好之后执行第二步将创建好的offer设置到他内部的缓冲区中,第三部将offer通过信令服务器传给对端,第四步被呼叫端将收到的offer保存在自己的缓冲区中,之后创建answer,第六步将自己创建的answer设置在自己的缓冲区中,然后将answer通过信令服务器返回给呼叫端,第8不,呼叫端将远端的answer也设置在自己的缓冲区中。

三.媒体协商时序图

四.完美协商

传统协商内部维护了一个状态机,存在几个问题:1.老的协商容易产生错误,比如同时创建了offer。2.业务逻辑中混杂了协商代码

完美协商双方可以同时收到offer,收到offer之后,需要给双方设定角色,polite和impolite,一个有礼貌一个是没礼貌的,对于没礼貌的那个会退化,创建一个answer,当他收到offer之后,他就会把这个offer抛弃掉。对于完美协商没有creater offer和answer,用不带参数的setlocaldescription自动生产offer和answer。

相关推荐
speop15 分钟前
TASK01 | Reasoning Kindom
学习
2301_822703201 小时前
鸿蒙flutter三方库实战——教育与学习平台:Flutter Markdown
学习·算法·flutter·华为·harmonyos·鸿蒙
码喽7号1 小时前
vue学习四:Axios网络请求
前端·vue.js·学习
星幻元宇VR1 小时前
VR科普行走平台适用哪些科普教育主题
科技·学习·安全·vr·虚拟现实
xinzheng新政2 小时前
Javascript 深入学习基础·4
javascript·学习·servlet
charlie1145141912 小时前
通用GUI编程技术——图形渲染实战(二十九)——Direct2D架构与资源体系:GPU加速2D渲染入门
开发语言·c++·学习·架构·图形渲染·win32
CheerWWW2 小时前
C++学习笔记——线程、计时器、多维数组、排序
c++·笔记·学习
克里斯蒂亚诺·罗纳尔达3 小时前
智能体学习16——学习与适应(Learning-and-Adaptation)-深入解读
深度学习·学习·机器学习
KIHU快狐3 小时前
KIHU快狐|98寸室外触摸屏酷睿I5零售信息展示用
媒体
航Hang*3 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化