梳理FFmpeg基础知识

基本步骤

梳理FFmpeg基础知识

八大函数库的作用

Acvodec: 编解码库
Avdevice:设备输入输出库
Avformat:封装格式相关库
Swscale:视频像素格式转换库
swresample:音频采样数据库
avfilter:滤镜特效库
Avutil:工具库
Postproc:宏文件库

梳理FFmpeg基础知识

基本步骤

梳理FFmpeg基础知识

注册函数 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()

解码文件

后面就是读帧了

搞完全懂了再说

常用结构图结构

梳理FFmpeg基础知识

梳理FFmpeg基础知识
梳理FFmpeg基础知识

上一篇:ffmpeg系列--音频格式介绍


下一篇:QtAV-Mac平台自己编译 M1架构的动态库