##媒体文件的基本模块
- 读文件模块
- 解复用模块
- 视频解码模块
- 音频解码音频
- 颜色空间转换模块
- 视频显示模块
- 音频播放模块
####DirectShow专业术语
- Source filter
` 以包的形式为下级提供数据流 `
- Demux filter
` 识别文件类型、媒体类型,分离出各媒体原始数据流,打上时钟信息后给下级 `
- Decoder filter
` 解码数据包,把同步时钟信息传递下去 `
- Color Space converter filter
` 把视频解码器解码出来的数据转换成当前显示系统支持的颜色格式。 `
- Render filter
` 在适当的时间渲染相应的媒体,对视频媒体就是直接显示图像,音频就是播放声音 `
####ffplay播放器原理
-
Source filter读文件分为三层
file.c、avio.h、avio.c、aviobuf.c等
- 本地或网络协议
` 本地文件和网络协议同等看待,file、pipe、tcp、udp、http `
- 抽象层用URLContext结构来统一表示底层具体的本地文件或网络协议
- 最上层用ByteIOContext结构来扩展URLProtocol构成内部有缓冲机制的广泛意义上的文件(不是很懂),并且仅仅又ByteIOContext对模块外提供服务
- Demux filter解复用分为两层
- 底层为AVIContext、TCPContext、UDPContext等
- 上层为AVInputFormat
- Decoder filter解码分为两层
- AVCodecContext结构和相关的基础程序
- TSContext、MsrleContext等具体的解码器上下文
-
Color space converter 颜色空间转换模块
- Render filter渲染模块,ffplay使用SDL库进行显示视频,播放音频。 ` ffplay.c文件可以简单理解成一个支撑大平台、支撑大框架。 `
######学习来源-ffdoc.pdf