简介一、介绍 FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案
FFmpeg 的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用
FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV 等 40 多种编码,AVI、MPEG、OGG、Matroska、ASF 等 90 多种解码
TCPMP, VLC, MPlayer等开源播放器都用到了 FFmpeg
二、工作目录 FFmpeg主目录下主要有 libavcodec、libavformat 和libavutil 等子目录
libavcodec 用于存放各个 encode/decode 模块 2
libavformat 用于存放 muxer/demuxer 模块 3
libavutil 用于存放内存操作等常用模块
三、实例(flash movie的 flv文件格式) muxer/demuxer的 flvenc
c和 flvdec
c 文件在libavformat 目录下
encode/decode的 mpegvideo
c 和 h263de
c 在libavcodec 目录下
muxer/demuxer 与 encoder/decoder 定义与初始化 muxer/demuxer和 encoder/decoder 在 FFmpeg 中的实现代码里,有许多相同的地方,而二者最大的差别是muxer 和 demuxer 分别是不同的结构 AVOutputFormat 与AVInputFormat,而 encoder 和 decoder 都是用的AVCodec 结构
muxer/demuxer 和 encoder/decoder 在 FFmp eg 中相同的地方有: 二者都是在main()开始的 av_register_all()函数内初始化的
二者都是以链