WebRTC 什么是source,track, sink?什么是AudioSink,VideoSink,MediaSink?
在刚接触WebRTC源码的时候,遇到了大量的track,source,sink等关键字,最近渐渐理清了英文语境下这些词的关系。
一、名词解释
source:媒体流提供者
track:应用持有的媒体流,可以用来播放
sink:媒体流接受者
二、Track,Source,Sink关系
三者之间的关系如图:
source ---(提供媒体流)---> track ---(输出媒体流)---> sink
例如,在/Sdk/Android包下的VideoTrack.java,用来播放视频流的类。
它的source是音视频引擎,sink是Android的屏幕渲染类,分别被封装为VideoSource.java,VideoSink.java。
三、Source,Sink关系
两者关系如图:
source--->sink
所有提供媒体流的组件,都是Source;所有接受媒体流的组件,都是Sink。
例如,/pc包下有一个类remote_audio_source.cc,它处理的音频流流向如图:
mediaEngine ---> remoteAudioSource ---> addedSinks
对于mediaEngine来说,remoteAudioSource就是sink。
对于remoteAudioSource来说,Engine就是source,下层接受者就是sink。
WebRTC 什么是source,track, sink?什么是AudioSink,VideoSink,MediaSink?相关推荐
- [ETL] Flume 理论与demo(Taildir Source Hdfs Sink)
一.Flume简介 1. Flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据: ...
- OpenShift 4 - Knative教程 (5) Eventing之Source和Sink
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 创建 Knative Eventing 环境 配置Source和Sink ...
- 三十九、Flume自定义Source、Sink
上篇文章咱们基于Flume举了几个例子,包括它的扇入扇出等等.这篇文章我们主要来看一下怎样通过自定义Source和Sink来实现Flume的数据采集.关注专栏<破茧成蝶--大数据篇>,查看 ...
- Flink-常用Source与Sink的使用汇总整理
Flink-常用Source与Sink的使用汇总整理 基础结构 Source 本地数据源 端口数据源 文件数据源 Kafka-Source 自定义JDBC-Source 数据处理 SingleData ...
- (2)source和sink详解
前面第一小节也提到了,Structured Streaming会增量的从source中读取数据,映射成一张表,对该表进行增量的查询分析,然后组合中间状态,再把结果输出到结果表,然后刷到外部存储系统si ...
- flink链接mysql_flink 将mysql作为Source和Sink的代码示例
1.maven导入 mysql mysql-connector-java 5.1.34 2.SourceFromMySQL工具类java代码 import org.apache.flink.confi ...
- flink source和sink
flink中的source作为整个stream中的入口,而sink作为整个stream的终点. SourceFunction为所有flink中source的根接口,其定义了run()方法和cancel ...
- Flume的开发之 自定义 source 自定义 sink 自定义拦截器
一:开发相关 加入 jar 包依赖: <dependency> <groupId>org.apache.flume</groupId> <artifactId ...
- flink入门3-Flink连接Kafka、Redis,实现Kafka Source/Redis Sink
本篇文章将会一步步实现如何使用Flink对接Kafka和Redis,并将Kafka中的数据存储到Redis中,这种场景也是真实项目会遇到的. 1.单机部署Kafka 1.1 下载Kafka压缩包,解压 ...
- 1.31.Flink自定义rocketmq(source/sink)+自定义redis source和sink
1.31.Flink自定义rocketmq(source/sink)+自定义redis+自定义 1.31.1.工程结构 1.31.2.定义pom.xml文件 1.31.3.log4j2.propert ...
最新文章
- 【PL/SQL】--导出oracle单表数据--drp204
- Science:微生物组“淘金热”,从人体中发现新型抗菌剂
- 目标检测 最新源码大放送
- 一步一步带你训练自己的SSD检测算法
- P3369-[模板]普通平衡树【替罪羊树】
- 真正理解 git fetch, git pull 以及 FETCH_HEAD
- PHP高并发高负载系统架构
- 190906二级刷题水果与小女孩
- 基于SSM的疫情数据统计分析系统
- openstack相关资料集结
- 快速入门Maxwell基本操作流程(2D部分)
- 我经常和面试者聊的一个题目
- matlab简单处理图像
- 机器学习笔记(五)逻辑回归 、决策边界、OvR、OvO
- linux服务器光衰,linux下怎么查看光模块光功率
- 转行程序员日记--2020-08-10
- 计算机网络信号电平,电平信号什么意思_电平和电压的区别
- 基于mysql+php071婚纱影楼管理系统
- windows找不到共享文件怎么解决
- javascript调用c/c++程序
热门文章
- 40163 php,微信支付授权获取 openId {quot;errcodequot;:40163,quot;errmsgquot;:quot;code been used, hints:...
- 外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL的区别
- STM32F401的RCC时钟配置
- STM32F401CCU6踩坑系列
- 第十四届全国大学生信息安全竞赛部分wp
- 基于STM32单片机多功能电梯系统设计(论文原理图程序)
- Matlab中单元数组和结构数组
- 关于XDC工具的文章
- 手游多开怎么设置不同的IP登陆
- postman“在Tests中通过data.token获取token失败”的解决方法