6.1.webrc媒体协商

那今天呢?我们来看一下y8 rtc的媒体协商,那实际上在我们之前的课程中呢?我已经向你介绍过y8 rtc的媒体协商了。只不过呢,角度是不一样的,在之前介绍外边tc媒体协商的时候呢,我们是从应用的角度来看。那web rtc为什么要进行媒体协商?媒体协商在整个音视频的传输过程中起到了什么作用?那么今天呢?我们换一个角度,从源码的角度来看,
在这里插入图片描述

y8 rtc它是如何进行媒体协商的?具体它是怎么做到这个媒体协商这个作用的?那对于我们这节课来说呢,我们主要介绍一下我们这一章要介绍哪些知识点,那首先呢,我们要了解媒体协商的意义。

那在之前的课程中呢,我们已经介绍了双方在进行音视频通讯之前呢,要进行一些必要的媒体协商。那这些协商的内容是什么呢?

比如说双方都支持哪些音视频的编解码器,比如说我用的是VP 8,结果呢?你只支持二六四。那这样呢,双方是没法进行通讯的,那除了编解码器之外

传输上的一些内容也需要进行协商。比如我们使用的配是多少?传输协议是udp还是TCP?那在udp之上,我们使用的rtp与rt CP是共用同一个传输通道还是分别的两个通道?那这些呢,都是在整个媒体协商过程中需要完成的事情,所以总结出一句话就是什么事儿大家要商量着来。我要告诉你,我支持哪些编解码器,支持什么样的传输协议,那同时呢,你也告诉我,

你所支持的都有哪些?这样呢,我们商量好之后就可以进行后续的工作了,那这是媒体协商意义,就是什么事儿都要商量着来。那在媒体进行协商的过程中,实际信令起着非常关键的作用。那我们在介绍信令的时候呢?我向你介绍过。

那其中呢,还有一个重要的消息就是message在整个媒体协商的过程中,我们的answer以及offer都是通过message这个消息进行进行交换的。实际我们在进行信令的时候呢,做过这块儿的讲解,我们要想进行媒体协商,

那信令在其中起着至关重要的作用,这点我们要知道。那在禁令进行交换的时候,那信令里边使用的就是sdp协议,那对于外包来说,为什么要使用sdp协议?这个我们也要清楚。呢其实是一个非常古老的协议,是二零零六年就已经推出这个规范了,它采用的格式呢?是这种格式。那它相较于XML这种格式来说呢,它的格式更紧凑,也就是说同样的信息,它占用的空间更小。

而XML呢,更适合大规模的,结构化的组织,所以它占用的这个空间呢,就会大很多。那我们在进行网络传输的时候呢,实际是希望这个数据越小越好,越紧凑越合适,那如果你要传一个更大的数据,它占的网络带宽就会越多。那这就导致失败的可能性会越高,所以我们在进行传输的时候呢,都有一个潜规则,就是让数据越小越好。那这是使用的一个最主要的原因,

那除此之外呢,采用的方式也更有利于我们的读取与写入。它就像我们以前使用的,非常老的配置文件点in I,这种配置文件那读写起来呢,都非常的方便。那这也是web rtc为什么会选择stp的一个很重要的原因好,那以上呢?我就介绍了媒体协商,它的意义是什么?新令在其中起到作用,以及为什么选择sdp好,那下面呢?我们就来看一下我们这一章主要介绍哪些内容?那无非呢,

就是我们之前介绍过几个非常重要的点,那第一个呢就是sdp协议对吧?我们要知道sdp它的协议什么?在这个协议中,web rtc做了哪些修改?那这是我们必须要了解的,而且呢,可以说是我们理解web rtc的一个非常重要的内容。那只有你将里边的每一个字段都了解清楚了,你才知道web rtc里头的代码为什么要那么写才能读懂它的代码?这是第一个点,我们要介绍的是sdb协议。那

第二个呢?就是offer的创建,我们前面介绍过如何通过web rtc的API来创建offer,

但对于这个API内部,它的逻辑具体是怎么做的?怎么创建的这个offer我们就不知道了,那这些内容呢?就是我们这一章所要介绍的重点,除了offer之外呢?answer也是类似的。那实际上offer与answer除了类型不一样之外,里边的内容呢,都是一样的,它里边会包含你支持了哪些编辑码器?使用的传输协议是什么?数据是否进行加密等等,这些内容呢?都是在offer跟a中进行描述的。

在这里插入图片描述
那当我们有了offer跟answer之后,剩下的就是协商,那对于外边tc来说,它是如何进行媒体协商的呢?实际有两个API,一个是side local description,那当我们调用这个API的时候,如果同时拥有了offer跟answer,在它内部呢,就会进行媒体协商。媒体协商的过程中呢,就会进行网络传输的创建,编解码器的创建等等,这些呢,都是在set local description中实现的。

那当只有某一项的时候,比如只有offer或者answer的时候,那他只做其中的一半工作,那剩下的一半工作呢,要交给下一个API,也就是set remote description来进行完成。只有这两个API全部调用完成之后,那底层的媒体协商过程才真正结束掉。

所以对于我们本章来说呢,主要就是让你了解如何创建offer answer,让你知道web rtc是如何。通过调用side local description以及side remote description,最终实现媒体协商的对这就是我们这章所介绍内容。那下面呢,我们就开始我们这一章内容的讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ActiveMQ消息中间件应用场景

一、ActiveMQ简介 ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。 二、Active…

《第一行代码:Android》第三版-2.5.4数据类与单例_数据类

本文主要讲述数据类,以前用java实现数据类很麻烦,写很多代码,就是搭个数据类的框架。kotlin用data class 关键字,给你简化了数据类的创建,比较贴心。 就是自动为你创建了:equals()、hashCode()、toString(…

深入理解JVM 类加载机制

深入理解JVM 类加载机制 虚拟机如何加载Class文件? Class文件中的信息进入到虚拟机后会发生什么变化? 类加载机制就是Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机…

实现点击一个选框 使得一个组件的可选性修改

实现效果 代码 html <div class"divrow"><el-checkbox-group v-model"isSendTag" :max"1"><el-checkbox v-for"(item, index) in isSendTagOptions" :key"index" :label"item.value">{{item.…

【C++设计模式】单例模式singleton

C 设计模式–单例模式singleton 单例模式 单例模式是指确保一个类在任何情况下都绝对只有一个实例&#xff0c;并提供一个全局访问点。 优点&#xff1a;内存中只有一个实例&#xff0c;减少内存开销&#xff1b;避免对资源多重占用&#xff1b;设置全局访问点&#xff0c;严…

【Axure教程】用中继器制作卡片多条件搜索效果

卡片设计通过提供清晰的信息结构、可视化吸引力、易扩展性和强大的交互性&#xff0c;为用户界面设计带来了许多优势&#xff0c;使得用户能够更轻松地浏览、理解和互动。 那今天就教大家如何用中继器制作卡片的模板&#xff0c;以及完成多条件搜索的效果&#xff0c;我们会以…

并发与并行

并发和并行是操作系统中的两个重要概念&#xff0c;它们在定义和处理任务的方式上有一些区别。 并发&#xff08;concurrency&#xff09;是指在一段时间内&#xff0c;有多个程序都处于启动运行到运行完毕之间&#xff0c;但任一时刻点上只有一个程序在处理机上运行。它是一种…

Vue侦听器

Vue侦听器是根据组件状态做DOM更新或者异步更新其他级联状态的。计算属性的主要目标是根据已有数据计算出组件的状态&#xff0c;它是组件内部的计算&#xff0c;计算结果在组件内部应用。侦听器的主要目标是根据组件状态的变动&#xff0c;做级联的或者异步的操作或DOM更新&am…

STM32F103C8T6第6天:adc、iic、spi、温湿度dht11在lcd1602显示

1. ADC介绍 ADC是什么&#xff1f; Analog-to-Digital Converter&#xff0c;指模拟/数字转换器 ADC的性能指标 量程&#xff1a;能测量的电压范围分辨率&#xff1a;ADC能辨别的最小模拟量&#xff0c;通常以输出二进制数的位数表示&#xff0c;比如&#xff1a;8、10、1…

【Spring篇】Spring注解式开发

本文根据哔哩哔哩课程内容结合自己自学所得&#xff0c;用于自己复习&#xff0c;如有错误欢迎指正&#xff1b; 我在想用一句话激励我自己努力学习&#xff0c;却想不出来什么惊为天人、精妙绝伦的句子&#xff0c;脑子里全是上课老师想说却没想起的四个字 “ 唯手熟尔 ”&am…

自动驾驶术语汇总

目录 智驾级别芯片相关自动驾驶相关辅助驾驶相关预警相关传感器相关泊车相关安全相关车灯相关 智驾级别 L0-L2属于辅助驾驶&#xff0c;L4-L5才算自动驾驶 L0&#xff08;Level 0&#xff09;&#xff1a;无自动化。这是大多数传统汽车的级别&#xff0c;所有的驾驶任务都需要…

C++每日选择题—Day1

第一题 以下C代码会输出什么? #include <iostream> using namespace std; class A { public:A() {}~A() {} private:static int a; }; int main() {cout << sizeof(A) << endl;return 0; } A&#xff1a;0 B&#xff1a;1 C&#xff1a;4 D&#xff1a;8 答…

2023年最新PyCharm环境搭建教程(含Python下载安装)

文章目录 写在前面PythonPython简介Python生态圈Python下载安装 PyCharmPyCharm简介PyCharm下载安装PyCharm环境搭建 写在后面 写在前面 最近博主收到了好多小伙伴的吐槽称不会下载安装python&#xff0c;博主听到后非常的扎心&#xff0c;经过博主几天的熬夜加班&#xff0c;…

单链表实现【队列】

目录 队列的概念及其结构 队列的实现 数组队列 链式队列 队列的常见接口的实现 主函数Test.c 头文件&函数声明Queue.h 头文件 函数声明 函数实现Queue.c 初始化QueueInit 创建节点Createnode 空间释放QueueDestroy 入队列QueuePush 出队列QueuePop 队头元…

Hyper-V系列:Hyper-V启动、创建虚拟机、与主机传输文件

Hyper-V启动、创建虚拟机、与主机传输文件 一. 简介二. 启用Hyper-V的方式也很简单:一、从“任务管理器”的“性能”查看虚拟化是否启用,未启用的需要到BIOS开启:右下角可以看到“虚拟化:已启用”二、启用Hyper-v和虚拟机1.电脑左下角右键打开应用界面——可选功能2.在可选…

JavaScript 原始数据类型和对应的对象类型(内置对象)之间的关系

JavaScript 原始数据类型和对应的对象类型&#xff08;内置对象&#xff09;之间的关系 JavaScript 的原始&#xff08;primitive&#xff09;数据类型包括包括数字&#xff08;Number&#xff09;、字符串&#xff08;String&#xff09;、布尔值&#xff08;Boolean&#xf…

【数据结构】E : 货币套汇(图路径)

E : 货币套汇&#xff08;图路径&#xff09; Description 套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如&#xff0c;假定1 美元可以买0.7 英镑&#xff0c;1 英镑可以买9.5 法郎&#xff0c;1法郎可以买到0.16美元。通过货币兑换&a…

ELK企业级日志分析平台——ES集群监控

启用xpack认证 官网&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-tls.html#node-certificates 在elk1上生成证书 [rootelk1 ~]# cd /usr/share/elasticsearch/[rootelk1 elasticsearch]# bin/elasticsearch-certutil ca[rootelk1 ela…

GB/T 29498-2013 木门窗检测

木门窗是指以木材、木质复合材料为主要材料制作框和扇的门窗。 GB/T 29498-2013 木门窗检测项目 测试项目 测试标准 外观质量 GB/T 29498 尺寸 GB/T 29498 装配质量 GB/T 29498 含水率 GB/T 17657 附着力 GB/T 4893.4 外门窗耐冷热循环 GB/T 4893.7 耐划痕 GB/…

Volcano3D绘制3D火山图

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 本期教程内容 **注&#xff1a;**本教程详细内容 Volcano3D绘制3D火山图 一、前言 火山图是做差异分析中最常用到的图形&#xff0c;在前面的推文中&#xff0c;我们也推出了好几期火山图的绘制教程&#xff0…