mediasoup 学习笔记 【二】Router 房间
上一篇worker简单的介绍了基础原理,今天聊下mediasoup Router,单纯从字面上理解就是地址路径,其实大家可以理解成房间的意思。
这里主要有一个参数,mediaCodecs 媒体编解码器,包括音视频解码的参数设置。
源代码中 https://github.com/versatica/mediasoup/blob/v3/lib/supportedRtpCapabilities.js 有支持的编解码的参数设置。
const mediaCodecs =
[{kind : "audio",mimeType : "audio/opus",clockRate : 48000,channels : 2},{kind : "video",mimeType : "video/H264",clockRate : 90000,parameters :{"packetization-mode" : 1,"profile-level-id" : "42e01f","level-asymmetry-allowed" : 1}}
];const appData = {} //自定义的字段 房间,名字等等,这个const router = await worker.createRouter({ mediaCodecs, appData });
这里可以简单的理解成设置了一下服务端支持的媒体编解码的参数, 如果对音视频的编解码了解的朋友,应该能更进一步的认识,我现在只是简单的了解。
router 相关的属性
- id
- closed 是否是关闭
- appData 自定义数据
- observer 观察者,用户侦听房间的一些事件、状态等, 所有类下面都有观察者 集成于EventEmitter()
router 相关方法
- close() 关闭房间,会出发routerclose事件
- createWebRtcTransport(options) 创建webRTC通道
- createPlainTransport(options) 创建普通通道
- createPipeTransport(options) 管道通道
后续会研究介绍每个通道的区别;
options = {listenIp: '', //必填enableSctp: sctp 协议的启用 默认是 false //我也仅仅知道 sctp的话 服务端能够获取到transport的数据...}
可以看下文档PipeTransportOptions
- pipeToRouter({ producerId, dataProducerId, router, listenIp }) // 对跨房间消费数据很方便,下面是官网给的例子
// Have two workers.
const worker1 = await mediasoup.createWorker();
const worker2 = await mediasoup.createWorker();// Create a router in each worker.
const router1 = await worker1.createRouter({ mediaCodecs });
const router2 = await worker2.createRouter({ mediaCodecs });// Produce in router1.
const transport1 = await router1.createWebRtcTransport({ ... });
const producer1 = await transport1.produce({ ... });// Pipe producer1 into router2.
await router1.pipeToRouter({ producerId: producer1.id, router: router2 });// 从router2消费producer1;
const transport2 = await router2.createWebRtcTransport({ ... });
const consumer2 = await transport2.consume({ producerId: producer1.id, ... });
- createAudioLevelObserver(options) //创建音频观察者
- canConsume(options = { producerId, rtpCapabilities }) //是否可以消费生产者的数据
router 相关事件
- workerclose 侦听进程关闭
mediasoup 学习笔记 【二】Router 房间相关推荐
- Mongodb使用学习笔记(二)
文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...
- ES6学习笔记二arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- Java学习笔记二:数据类型
Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...
- 吴恩达《机器学习》学习笔记二——单变量线性回归
吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...
最新文章
- 【云计算的1024种玩法】回忆经典,用虚拟主机重建复古DZ和无心宠物
- arcgis超级工具密码_忘记电脑密码怎么办?只需要简单这样做
- Chrome之排序问题
- Gartner:全球IT未来十年热门技术TOP10
- USACO_1_4_Mother's Milk
- noclassdeffounderror java,从终端运行Java文件时出现java.lang.NoClassDefFoundError
- mysql删除一条记录
- Codeforces Round #112 (Div. 2)---A. Supercentral Point
- 网关 配置内网DNS 服务器
- 比特币 以太坊 真的是去中心化的吗?
- matlab仿真软件 R2017a版本下载
- 如何巧妙应对压力面试
- Java 神级项目 yyds
- 数字图像处理锐化的原理_数字图像锐化的工作原理以及为什么要使用它
- 第一章概述-------第一节--1.7 计算机网络体系结构
- struts2架构网站漏洞修复详情与利用漏洞修复方案
- Mac系统下Gauge初体验
- ICPC 2022西安回顾
- 超声波测距仪编程_Arduino轻松学Mixly编程第9课 超声波测距仪
- mysql 查询当前年份
热门文章
- dsp处理浮点数_定点DSP如何做浮点运算
- 中国首个开源基金会“开放原子开源基金会”亮相
- pptv图标出现在计算机磁盘,求大神解决!!界面图标全部变成了pptv,如果用其他打开方式打开同理,点哪个都弹出来PPTV说不支持格式...
- 集合框架,JDK8新特性
- 舒米,又夺冠了。。。。。
- 微软发起手机操作系统新战役
- 解决手机连接不上电脑开的热点问题
- 毕业设计之 --- 基于图像识别的跌倒检测算法
- USACO 2020 December Contest, BronzeProblem 2. Daisy Chains题解
- java打包成docker images