播放器基础--组成模块

作者: llm_5243 | 来源:发表于2020-06-06 10:06 被阅读0次

一个播放器无论结构逻辑多么复杂, 都可以分成以下几部分: src, demux,decode, sink

  • src 是指媒体数据输入源, 可以是磁盘上的文件或网络流等
  • demux 是指解封装. 媒体文件和网络流是将音视频压缩编码后和其他数据一起打包
    传输的. 解封装即为上述的逆过程,将音视频流都分离处理.
  • decode 是指解码. 原始的音视频数据是很大的,无论是网络传输还是作为文件保存起来,都需要对音视频raw data进行编码.解码是还原出原始数据,用于最后的显示播放
  • sink 指音视频数据的终点. 比如视频数据可以是视频渲染显示模块, 音频数据可以是声卡. 广义来讲sink不仅仅指最终显示播放模块,也可以是网络接口, 其他图像处理功能等.
Diagram1.png

对于以上几个模块来说, 视频解码和视频渲染是比较耗时, 如果是网络流,网络的速度会影响到视频数据的接收.为了能保证视频播放的流畅性,各模块之间一般会添加数据缓冲区.

播放器缓冲结构.png

这里src并未画出缓冲区,因为对于本地文件来说是不需缓冲;对于网络流,缓冲的策略与后面的会有点不同,而且一般开源的框架会帮我们实现.对于后面两个数据buffer是需要我们自己实现控制的.

相关文章

  • 播放器基础--组成模块

    一个播放器无论结构逻辑多么复杂, 都可以分成以下几部分: src, demux,decode, sink src ...

  • nginx内核原理

    Nginx的模块 Nginx由内核和模块组成。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块: 核心...

  • 重构点

    播放器部分 播放器部分模块化,播放器作为一个独立的模块, 现阶段代码 方法命名 [self _setupCurre...

  • 【iOS】iOS 子库依赖

    最近在集成一个C++写的音乐播放器,而这个播放器又是由四个模块组成的,我们又需要将他们编译成静态库放入项目中进行调...

  • 前端开发——模块化(css模块化开发)

    掌握模块化开发的思想是我们进行模块化开发的基础。他有以下几部分组成: 模块化开发的优势 css模块化 css模块化...

  • Kubernetes核心概念总结(摘选)

    1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler...

  • python基础_02_语法基础

    基础语法 python全景程序由模块组成模块包含语句语句包含表达式表达式建立并处理对象 hello world 注...

  • IOS FFmpeg零到自己的播放器4,架构

    本文意在设计一个最基础的本地播放器的架构,不涉及网络模块。本文提及的各个模块,将在后续的文章中一一讲解如何实现。 ...

  • 2019过硬最具价值集成吊顶十大品牌排行榜发布

    集成吊顶是将吊顶基板与包含多种功能的各个模块相结合而成的一体化吊顶产品,由基础模块、功能模块和辅助模块组成。既可保...

  • UGUI组成模块

网友评论

    本文标题:播放器基础--组成模块

    本文链接:https://www.haomeiwen.com/subject/gjogzhtx.html