Source & Sink
Source 和 Sink 在live555中是两个非常重要的概念.
Source 发送端, 流的起点, 可直观理解为生产者, 负责读取文件或网络流的信息.
Sink 接收端, 流的终点, 可理解为是消费者, 直译为水槽 .
视音频的数据从源头到最终保存到文件或显示, 整个过程就像一个水流, 从源头流呀流, 经过了条条小路, 最终流到了水槽中.

Source: 可能是RTP读取数据, 从文件中或摄像头设备中等.
Sink: 数据流最终可保存在文件中, 或显示在屏幕上等.
MediaSession: 用于表示一个RTP会话, 一个MediaSession可能包含多个子会话(MediaSubSession),子会话可以是音频子会话、视频子会话等。

Source和Sink通过RTP子会话(MediaSubSession)联系在一起.

MediaSource - 流的源头
MediaSouce是所有Souce的基类.

MediaSource

结合上图, 以H264进行举例:

H264VideoStreamFramer

H264VideoStreamFramer是真正的Souce,它用于从H264文件中读取数据,并组装成帧。

MediaSink - 流的终结
MediaSink是所有Sink的基类.

MediaSink

结合上图, 以H264进行举例:

H264VideoFileSink类继承关系

H264VideoFileSink才是真正的Sink, 完成将数据保存至文件.

H264VideoRTPSink类继承关系

H264VideoRTPSink才是真正的Sink, 完成数据的发送.

对于H264码流,数据流的流动方向为:

服务器端:
H264VideoStreamFramer ->H264Or5Fragmenter (Filter)r->H264VideoRTPSink
客户端:
H264RTPSouce -> Sink

作者:FlyingPenguin
链接:https://www.jianshu.com/p/0bdf07f7a5d5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Source Sink (live555)相关推荐

  1. 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 ...

  2. 1.10.Flink DataStreamAPI(API的抽象级别、Data Sources、connectors、Source容错性保证、Sink容错性保证、自定义sink、partition等)

    1.10.Flink DataStreamAPI 1.10.1.Flink API的抽象级别 1.10.2.DatSource部分详解 1.10.2.1.DataStream API之Data Sou ...

  3. 【Flnik】解决提交程序到flink集群的异常:Could not complete snapshot 3 for operator Source...

    一. 情况描述 之前一直在IDEA中运行Flink程序,程序也都很顺利的跑通.但是当把程序打包发布到集群上运行便遇到了一些情况: bin/flink run -m hadoop102:8081 -c ...

  4. 【Flink流式计算框架】常见sink操作

    007Flink print() / printToErr() writeAsText() Flink提供的sink 自定义sink 获取source的方式(自带的)        基于文件:read ...

  5. Flink SQL 自定义 Sink

    1. 背景 2. 步骤 3.自定义 sink 代码 4. 使用 Redis Sink 5.详细解释 6.原理 7.参考 1.背景 内部要做 Flink SQL 平台,本文以自定义 Redis Sink ...

  6. 【Flink】Flink 自定义 redis sink

    1.概述 内部要做 Flink SQL 平台,本文以自定义 Redis Sink 为例来说明 Flink SQL 如何自定义 Sink 以及自定义完了之后如何使用 基于 Flink 1.11 2.步骤 ...

  7. WFD连接过程代码分析(Sink端)

    WFD连接过程代码分析(Sink端) WFD建立连接首先必需建立P2P连接,随后WFD使用P2P连接的IP和端口号建立RTSP连接.本文着重分析P2P连接建立后的RTSP连接建立过程,且为一个Sour ...

  8. HTTP 2.0与OkHttp

     HTTP 2.0是对1.x的扩展而非替代,之所以是"2.0",是因为它改变了客户端与服务器之间交换数据的方式.HTTP 2.0增加了新的二进制分帧数据层,而这一层并不兼容之前的H ...

  9. 基于Apache Flink的爱奇艺实时计算平台建设实践

    导读:随着大数据的快速发展,行业大数据服务越来越重要.同时,对大数据实时计算的要求也越来越高.今天会和大家分享下爱奇艺基于Apache Flink的实时计算平台建设实践. 今天的介绍会围绕下面三点展开 ...

  10. Nature子刊:微生物来源分析包SourceTracker

    前一阵我们翻译Rob Knight的综述,1.8万字,让你熟读2遍轻松握掌微生物组领域分析框架.把握未来分析趋势.目前在宏基因组平台累计1.9万人次,热心肠平台首发阅读8500+,科学网加精置顶阅读8 ...

最新文章

  1. 爬虫基础-request的一些基础属性
  2. 电脑任务管理器_安国戴尔电脑显示器维修,服务至上
  3. java中有哪几种注释方式_在 Java 中, 有多种注释方法,其中 __________ 适用于单行注释。...
  4. [转帖]Linux修改时区
  5. Java相关资料分享(视频+电子书籍)
  6. 强调团体与配合的jinbiguandan
  7. 华为服务器默认什么系统,云服务器默认系统
  8. 训练集、验证集、测试集区分
  9. jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...
  10. T3137 栈练习1 codevs
  11. c#对PL/SQL查询结果列复制的结果生成指定格式
  12. elipse下载及安装
  13. 计算机程序员crc算法,CRC-8校验原理及软件实现
  14. oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB
  15. 问题解决模型ORID
  16. 第一章 C语言程序设计概述
  17. 使用node+vue.js实现SPA应用,解决了SPA应用的最大缺点SEO
  18. 【地理人工智能交叉】通过整合兴趣点和Word2Vec模型感知城市土地利用的空间分布
  19. 圣戈班集团2019年销售额426亿欧元,增长2.4%
  20. AVplayer断网播放出错时player的duration、playableDuration、totalTime

热门文章

  1. 2021年12月大学英语六级作文
  2. DP动态规划之背包问题(一)
  3. windows 上面git 克隆clone 的时候报错 warning:Clone succeeded,but checkout failed
  4. 双击打不开pycharm问题
  5. [zz]u盘做系统启动盘后容量变小的解决方法 8GU盘变成2G 或 xG变成2G
  6. 北上广深,逃离还是奔向?
  7. 美式期权定价python_美式期权baw定价的python实现
  8. 事务故障、系统故障和介质故障的恢复
  9. sass @media
  10. excel找到对应数据的列指标_Excel 行列转换的最简方法