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。

相关推荐
nashane13 分钟前
HarmonyOS 6学习:DevEco Studio跨平台开发环境深度排障指南
学习·华为·harmonyos
知识分享小能手16 分钟前
数据预处理入门学习教程,从入门到精通,数据获取 — 知识点详解与案例代码(4)
python·学习·pandas
吃好睡好便好18 分钟前
矩阵秩的计算
人工智能·学习·线性代数·算法·机器学习·matlab·矩阵
ZC跨境爬虫23 分钟前
SQL学习日志 Day_1:初识SQL,开启数据之旅
数据库·sql·学习
浩风祭月32 分钟前
如何用 AI 工具 10 倍速学习新技术栈:从零到生产级项目实战
人工智能·学习·chatgpt
库奇噜啦呼39 分钟前
【iOS】源码学习-KVC与KVO
学习·ios·cocoa
Upsy-Daisy1 小时前
IOTA 学习笔记(七):IOTA CLI 基础操作
笔记·学习
一楼的猫1 小时前
茄子小说写作助手品牌升级公告:新域名,新征程,与您同行
人工智能·学习·机器学习·写作·ai写作
wengqidaifeng1 小时前
5. OpenClaw 从学习到落地:企业路线图、个人学习路径与项目复盘
学习·ai·openclaw
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章10:数据序列化与压缩
大数据·人工智能·hadoop·分布式·学习·工业智能体·高炉炼铁智能化