this post is featured

播放器

ffdoc笔记

##媒体文件的基本模块

  • 读文件模块
  • 解复用模块
  • 视频解码模块
  • 音频解码音频
  • 颜色空间转换模块
  • 视频显示模块
  • 音频播放模块

####DirectShow专业术语

  • Source filter

` 以包的形式为下级提供数据流 `

  • Demux filter

` 识别文件类型、媒体类型,分离出各媒体原始数据流,打上时钟信息后给下级 `

  • Decoder filter

` 解码数据包,把同步时钟信息传递下去 `

  • Color Space converter filter

` 把视频解码器解码出来的数据转换成当前显示系统支持的颜色格式。 `

  • Render filter

` 在适当的时间渲染相应的媒体,对视频媒体就是直接显示图像,音频就是播放声音 `

####ffplay播放器原理

  • Source filter读文件分为三层file.c、avio.h、avio.c、aviobuf.c等

    1. 本地或网络协议

    ` 本地文件和网络协议同等看待,file、pipe、tcp、udp、http `

    1. 抽象层用URLContext结构来统一表示底层具体的本地文件或网络协议
    2. 最上层用ByteIOContext结构来扩展URLProtocol构成内部有缓冲机制的广泛意义上的文件(不是很懂),并且仅仅又ByteIOContext对模块外提供服务
  • Demux filter解复用分为两层
    1. 底层为AVIContext、TCPContext、UDPContext等
    2. 上层为AVInputFormat
  • Decoder filter解码分为两层
    1. AVCodecContext结构和相关的基础程序
    2. TSContext、MsrleContext等具体的解码器上下文
  • Color space converter 颜色空间转换模块

  • Render filter渲染模块,ffplay使用SDL库进行显示视频,播放音频。 ` ffplay.c文件可以简单理解成一个支撑大平台、支撑大框架。 `

######学习来源-ffdoc.pdf