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。

相关推荐
承渊政道11 分钟前
Linux系统学习【进程控制:进程创建、终止与等待、进程程序替换、自主shell命令行解释器详解】
linux·服务器·c++·学习·ubuntu·bash·远程工作
05候补工程师18 分钟前
【英语学习笔记】基于“底层逻辑转换”与“去动词化”的英汉互译核心方法论及写作高分公式
经验分享·笔记·学习·考研
bbaydnog40 分钟前
FreeRTOS学习笔记 17:资源管理与临界区保护——优先级反转、死锁,90%的RTOS bug都跟它有关
笔记·学习·bug
不羁的木木1 小时前
Form Kit(卡片开发服务)学习笔记03-卡片UI开发与数据更新
笔记·学习·ui
不羁的木木1 小时前
Form Kit(卡片开发服务)学习笔记02-环境搭建与基础配置
笔记·学习·harmonyos
Zklys1 小时前
Cmake的学习笔记step1
c++·笔记·学习
库奇噜啦呼1 小时前
【iOS】源码学习-分类、扩展、关联对象
学习·ios·分类
飞翔中文网1 小时前
Java学习笔记之接口
java·笔记·学习
吃好睡好便好1 小时前
矩阵的左除和右除
人工智能·学习·线性代数·算法·矩阵
OBiO20131 小时前
从血清型到启动子升级——如何规避心肌 AAV 肝脏泄露?
学习