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。

相关推荐
+VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue在线教育学习系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·学习·课程设计
0和1的舞者4 小时前
Python函数与列表元组全解析
python·学习·学习方法·知识
航Hang*4 小时前
第九章:网络系统建设与运维(高级)—— 无线局域网
网络·笔记·学习·华为·ensp·交换机
赵长辉5 小时前
AGI-rag学习: 实现了一个混合搜索系统,结合了 BM25 和 密集向量检索两种方法 【20251016课复习】
python·学习·agi
四谎真好看5 小时前
MySQL 学习笔记(运维篇2)
数据库·笔记·学习·mysql·学习笔记
好奇龙猫5 小时前
【大学院-筆記試験練習:数据库(データベース問題訓練) と 软件工程(ソフトウェア)(6)】
学习
d111111111d5 小时前
STM32如何通过寄存器直接禁止EXTI0中断
笔记·stm32·单片机·嵌入式硬件·学习
YJlio6 小时前
PsPing 学习笔记(14.4):TCP/UDP 延迟测试——从单包 RTT 到抖动分析
笔记·学习·tcp/ip
科技林总7 小时前
【系统分析师】1.2 系统分析师
学习
Fuxiao___7 小时前
Pi0学习笔记E
笔记·学习