轨和流

Track

轨:音频轨和视频轨是不相交的

MediaStream

媒体流:中包含多个音视频轨

WebRTC重要类

MediaStream

负责添加N个轨,加入到RTCPeerConnection

RTCPeerConnection

核心

RTCDataChannel

非音视频数据,通过RTCPeerConnection取到的

RTCPeerConnection调用过程

worker_thread:和网络无关,但是要耗时的操作在此进行

signaling_thread :所有PC Factory和PC的对外接口都会切换到此进行

network_thread:所有网络相关操作切换到此

流程:PC工厂会分别创建音视频轨(会先创建音视频源CreateSource),创建媒体流,创建PC。先将轨加入到媒体流中,(可以多个)媒体流加入到PC中可以复用同一个链接。

RTCPeerConnection调用时序

【WebRTC---入门篇】(三)WebRTC运行机制相关推荐

  1. WebRTC入门与实战 --- WebRTC原理与架构

    上一篇我们对WebRTC进行了整体的介绍和学习,作为技术人员,我们学习过程中是要了解一个技术的原理的,接下来我们就来学习一下WebRTC的原理与架构,下边是官网的架构图: 架构图颜色标识说明: (1) ...

  2. java入门(1) 程序运行机制及运行过程

    首先我们来看一下java程序在底层是怎么工作的: JAVA有两种核心机制: Java虚拟机(Java Virtual Machine): 1.java虚拟机可以理解成一个以字节码为机器指令的CPU. ...

  3. Vue学习-基础入门篇(三万字收藏篇)

    目录 前言 一.Vue介绍 1.Vue是什么 2.Vue的特点 二.Vue.js的安装 1.使用Vite创建 三.Vue声明式渲染 四.Data Property 和方法 1.Data Propert ...

  4. 软件测试基础理论(入门篇三)---缺陷管理理论与工具(禅道)

    目录 一.软件的缺陷 二.缺陷管理 2.1 提交缺陷注意事项 2.2 缺陷的跟踪流程 三.项目管理工具之一---禅道 3.1 禅道介绍 3.1.1 基础了解 3.1.2 禅道使用流程 3.1.3测试人 ...

  5. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]

    三.使用Azure AD 管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信 ...

  6. Kubernetes入门篇(三)——Kubernetes的对象和API

    声明:这是我在大学毕业后进入第一家互联网公司学习的内容 Kubernetes 对象 在 Kubernetes 系统中,Kubernetes 对象 是持久化的实体.Kubernetes 使用这些实体去表 ...

  7. 算法入门篇三 详解桶排序和整理排序知识 堆的相关操作 补充 不完整

    归并排序不使用递归 使用一个变量,使其按照1.2.4.8递增,控制左右两边1个元素.2个元素.4个元素等元素的合并 完全二叉树 完全二叉树 要不全是满的,要不叶子节点出现在最后一层,只要出现了叶子节点 ...

  8. TensorFlow入门篇(三):MNIST数据集简易分类

    数据集:http://yann.lecun.com/exdb/mnist/ 环境:Python 3.7 TensorFlow 1.12 numpy 1.15.4 问题:1.增加隐藏层后,效果为何变差? ...

  9. mysql自动填充测试数据库_入门篇(三):通过填充器快速填充测试数据

    入门篇(三):通过填充器快速填充测试数据 由 学院君 创建于2年前, 最后更新于 1年前 版本号 #3 11119 views 9 likes 0 collects 我们在前两篇教程中分别介绍了如何连 ...

  10. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,

    Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...

最新文章

  1. php按条件修改xml,php如何修改xml内容
  2. iOS中autolaylout和sizeclass的理解
  3. 架构师实践日 11.9 南京站报名 | 技术大牛带你剖析大数据平台内部演进中的挑战与实践...
  4. 机器学习实战笔记(Python实现)-04-Logistic回归
  5. 关于比较两个字节数组是否内容相同
  6. 转载一朋友的qq空间,感觉都是至理名言啊!
  7. 获取rabbitmq连接对象_NET Core使用RabbitMQ
  8. 关键时刻救一命:旧手机改造求生工具
  9. MySQL中对索引的理解 特点 优势_深入理解MySQL索引和优化
  10. 企业信息化有哪些好处?
  11. Android——USB转COM口(CH340)与传感器进行通讯
  12. 从零开发一款笔记APP——神马笔记WhatsNote
  13. Asterisk是什么?
  14. jQuery-什么是jQuery
  15. 江阴长泾/江阴各乡镇到无锡汽车客运站/无锡东站/硕放机场站快捷班车的购票方法
  16. 面试华为必备:华为18级大牛呕心沥血三年整理的 趣谈网络协议
  17. 【PS问题处理】画笔延迟较高的解决方法
  18. JAVA实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
  19. 互联网人的乐理基础(二)
  20. 虚拟机Linux安装与应用(保姆级)

热门文章

  1. apache jmx_用于JMX访问的Apache Ant任务
  2. 配置hibernate_测试Hibernate的最低配置
  3. jpa和hibernate_使用JPA和Hibernate有效删除数据
  4. 使用这些先进的GC技术提高应用程序性能
  5. gradle构建工具_Gradle:我们需要另一个构建工具吗?
  6. Neo4j:Cypher –属性值只能是原始类型或其数组
  7. 使用Spock Mocks进行Grails 3.3集成测试
  8. 1.0jpa 2.0_EasyCriteria 2.0 – JPA标准应该很容易
  9. mysql连接不断线_某些小时后MySql连接自动掉线
  10. cdh搭建hadoop集群_Hadoop宿醉:使用Apache Whirr启动hadoop集群CDH4