6.1.webrc媒体协商

news2024/11/15 19:31:13

那今天呢?我们来看一下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.coloradmin.cn/o/1243924.html

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

相关文章

【Vue】插值表达式

作用&#xff1a;利用表达式进行插值渲染 语法&#xff1a;{ { 表达式 } } 目录 案例一&#xff1a; 案例二&#xff1a; 案例三&#xff1a; ​编辑 注意&#xff1a; 案例一&#xff1a; <!DOCTYPE html> <html lang"en"> <head><me…

基于SSM的校园奶茶点单管理系统

基于SSM的校园奶茶点单管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 奶茶列表 登录界面 管理员界面 用户界面 摘要 随着社会的发展和科技的进…

YOLOv8训练自己的目标检测数据集

YOLOv8训练自己的目标检测数据集 目录标题 源码下载环境配置安装包训练自己的数据集数据集文件格式数据集文件配置超参数文件配置训练数据集命令行训练脚本.py文件训练 进行detect显示detect的效果 源码下载 YOLOv8官方的GitHub代码&#xff0c;同时上面也有基础环境的配置要…

springboot+jsp学生健康体检档案评估系统_ju8pu

本基于Java的学生健康档案管理信息系统采用Java语言来进行开发&#xff0c;从角色上分为管理员&#xff0c;辅导员&#xff0c;档案管理员和学生几个具体功能如下 &#xff08;1&#xff09;管理员部分功能主要包括&#xff0c;个人中心&#xff0c;档案员管理&#xff0c;辅…

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

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

使用【画图】软件修改图片像素、比例和大小

打开电脑画图软件&#xff0c;点击开始 windows附件 画图 在画图软件里选择需要调整的照片&#xff0c;点击文件 打开 在弹出窗口中选择照片后点击打开 照片在画图软件中打开后&#xff0c;对照片进行调整。按图中顺序进行 确定后照片会根据设定的值自动调整 保存…

关于接口测试自动化的总结与思考!

序 近期看到阿里云性能测试 PTS 接口测试开启免费公测&#xff0c;本着以和大家交流如何实现高效的接口测试为出发点&#xff0c;本文包含了我在接口测试领域的一些方法和心得&#xff0c;希望大家一起讨论和分享&#xff0c;内容包括但不仅限于&#xff1a; 服务端接口测试介…

51单片机IO口的四种工作状态切换

51单片机IO口的四种工作状态切换 1.概述 这篇文章介绍单片机IO引脚的四种工作模式&#xff0c;每个模式都有各自的用武之地&#xff0c;后面在驱动外设硬件时会用它不同的模式。 2.IO口四种工作模式介绍 PnM1PnM0I/O口工作模式00准双向口&#xff1a;灌电流达20mA&#xff…

刷题学习记录(含2023ISCTFweb题的部分知识点)

[SWPUCTF 2021 新生赛]sql 进入环境 查看源码&#xff0c;发现是get传参且参数为wllm fuzz测试&#xff0c;发现空格&#xff0c;&#xff0c;and被过滤了 同样的也可以用python脚本进行fuzz测试 import requests fuzz{length ,,handler,like,select,sleep,database,delete,h…

nginx 模块相关配置及结构理解

文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令&#xff0c;以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…

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

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

需求调研计划及用户需求调研单

1.目的 2.概述 3.需求调研计划 3.1调研目的 3.2调研范围 3.2.1.调研的职能范围 3.2.2.调研的业务范围 3.2.3.调研的地点范围 3.3调研方式 3.4调研阶段 3.5具体时间安排 软件开发全文档获取&#xff1a;点我获取 1、需求调研计划 2、用户需求调研单 项目名称 客…

【目标检测】保姆级别教程从零开始实现基于Yolov8的一次性筷子计数

前言 一&#xff0c;环境配置 一&#xff0c;虚拟环境创建 二&#xff0c;安装资源包 前言 最近事情比较少&#xff0c;无意间刷到群聊里分享的基于百度飞浆平台的一次性筷子检测&#xff0c;感觉很有意思&#xff0c;恰巧自己最近在学习Yolov8&#xff0c;于是看看能不能复…

Spring配置其他注解Spring注解的解析原理

Spring配置其他注解 Primary注解用于标注相同类型的Bean优先被使用权&#xff0c;Primary是Spring 3.0引入的&#xff0c;与Component和Bean一起使用&#xff0c;标注该Bean的优先级更高&#xff0c;则在通过类型获取Bean或通过Autowired根据类型进行注入时&#xff0c;会选用优…

Mysql数据库 18.Mysql SQL优化

SQL优化 一、插入优化 多条插入语句&#xff0c;影响执行效率 优化方案 1、批量插入&#xff1a; 在一条insert语句中多条数据&#xff0c;但是如果数据量过大&#xff0c;也不能完全使用一条语句语句&#xff0c;建议数据量为一次性插入1000条以下的数据 如果数据量多大&…

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

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

12个最佳WordPress投票插件

您是否正在为您的网站寻找WordPress投票插件&#xff1f; WordPress投票插件可让您轻松地在您的网站上进行民意调查&#xff0c;用户可以投票。这是在收集见解的同时建立用户参与度的有效策略。 在本文中&#xff0c;我们精心挑选了最好的WordPress投票插件&#xff0c;可帮助…

【Vue】创建第一个实例

步骤&#xff1a; 1.创建容器 2.引包 3.创建实例 4.添加配置项 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--准备容器 --> <di…

ubuntu搭建phpmyadmin+wordpress

Ubuntu搭建phpmyadmin wordpress Linux系统设置&#xff1a;Ubuntu 22配置apache2搭建phpmyadmin配置Nginx环境&#xff0c;搭建wordpress Linux系统设置&#xff1a;Ubuntu 22 配置apache2 安装apache2 sudo apt -y install apache2设置端口号为8080 sudo vim /etc/apache…

VBA经典应用69例:Find方法的应用

《VBA经典应用69例》&#xff08;版权10178981&#xff09;&#xff0c;是我推出的第九套教程&#xff0c;教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开&#xff0c;这套教程案例众多&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以便…