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.hqwc.cn/news/211927.html

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

相关文章

unity shaderGraph实例-可交互瀑布

不要问我水在哪里,你自己相像这是一个瀑布,瀑布的效果我还不会做 效果展示 整体结构 这里片元着色器最后输出的baseColor应该是黑色,白色为错误。 各区域内容 区域1 计算球到瀑布的距离,然后减去一个值,实现黑色区域…

微服务实战系列之Feign

前言 不知不觉,“微服务实战系列”已完成了六篇,每篇都聚焦一个主题,目的是便于各位盆友能够快速、全面地接收和消化。 博主从服务注册到服务监控,从服务路由到服务安全,从身份认证到加密技术均有涉猎。凡此均有关微服…

思维模型 等待效应

本系列文章 主要是 分享 思维模型 ,涉及各个领域,重在提升认知。越是等待,越是焦虑。 1 等待效应的应用 1.1 等待效应在管理中的应用 西南航空公司是一家美国的航空公司,它在管理中运用了等待效应。西南航空公司鼓励员工在工作中…

【iOS】数据持久化(二)之归档和解档(iOS 13以后)

在之前介绍的数据存储方法中,不管是NSUserDefaults还是plist文件都不能对自定义对象进行存储,OC提供的解归档恰好解决了这个问题 本片文章对 iOS13 以后的版本 归档和解档 进行介绍。老版本的解归档见这篇文章:【iOS】文件(对象数…

Vue学习笔记-Object.defineproperty函数

文章目录 前文提要Object.defineProperty作用Object.defineProperty参数使用例图getter,也就是get函数setter,也就是set函数 前文提要 本人仅做个人学习记录,如有错误,请多包涵 Object.defineProperty作用 当在js中声明了一个变…

创建maven的web项目

(一)创建maven的web项目 Step1、创建一个普通的maven项目 (1)新建一个empty project,命名为SSM2。 点击项目名,右键new,选择Module,左侧选择“Maven archetype”,可以给…

安卓开发——Android Studio常见报错与解决方法

1. No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-android 这个错误是由于较新版本的NDK的./toolchains目录中没有arm-linux-androideabi文件,解决办法是从旧的NDK版本里面复制到自己的NDK的版本里面,就可以了。 打…

读书笔记——《黑猩猩的政治》

前言 弗朗斯德瓦尔(Frans de Waal)的代表作《黑猩猩政治》成书于1982年,是它的首部书籍作品,也是美国国会新任议员的被推荐读物。之前看的他另一部作品的《万智有灵》是2016年的作品,时间跨度居然这么大。《万智有灵》介绍了许多…

IntelliJ IDEA 16创建Web项目

首先要理解一个概念:在IntelliJ IDEA中“new Project”相当于eclipse中的工作空间(Workspace),而“new Module”相当于eclipse中的工程(Project)。以下均采用Intellij的说法,请自行对照转换理解…

msvcp120.dll丢失是什么意思,哪个修复方法最简单

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“找不到msvcp120.dll”。这个错误通常发生在运行某些程序或游戏时,它会导致程序无法正常启动或运行。那么,这个错误提示到底是什么意思呢?为了解决这个问…

解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持)

目录 Reder版本2019.x Reder版本2021.1.5x Reder版本2019.x 解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持) Reder版本2021.1.5x 解决Emmy Lua插件在IDEA或 Reder 没有代码提示的问题(设置文件关联 增加对.lua.txt文件的支持)…