基本步骤
八大函数库的作用
Acvodec: 编解码库
Avdevice:设备输入输出库
Avformat:封装格式相关库
Swscale:视频像素格式转换库
swresample:音频采样数据库
avfilter:滤镜特效库
Avutil:工具库
Postproc:宏文件库
基本步骤
注册函数 av_register_all() 头文件(libavformat\allformats.c)
FFmpeg 4.0已经弃用但是并不是放弃使用而是改为默认加载程序
如图所示
首先第一个是 avcodec_register_all() 注册编码器 源码内部流程为:
- 第一步为注册硬件解码REGISTER_HWACCEL()
第二步为注册编码器
第三步为注册解码器
第四步为注册为了复制流的新函数
第五步为了注册一些过滤器等
而这些统一被 avcodec_register_all() 封装在一起了 这就是其的作用
第二个第三个是注册封装和解封装的作用
第四个是为了注册使用ffurl 使用不常用
avformat_alloc_context()
其主要作用是开辟format空间获取文件的基本 format信息和配置一些基本的options
avformat_open_input()
其主要作用是为了打开封装和基本的io流以及基本的开辟空间操作
avformat_find_stream_info()
就是基本寻找流信息 看看封装格式中 编码的文件 获取编码器的一些基本信息
avcodec_find_decodec()
寻找解码器 去解码文件
avcodec_open2()
解码文件
后面就是读帧了
搞完全懂了再说