FFMPEG---常用结构体以及编译的几个库文件

1.编译FFMPEG

  • 1.下载ffmpeg
  • 进入ffmpeg官网下载ffmpeg的安装包
  • 在这里插入图片描述
  • 进入下载。我是在linux环境下。下载Ubutun安装包。但是对于学习ffmpeg使用2XX版本的就可满足要求。现在网上很多代码都是基于老的FFMPEG库。而最近ffmpeg包摒弃了一切API 并且对API做了调整
  • 使用tar -zxvf解压
  • FFmpeg编译需要 YSM X264这两个库,所以还需要下载这两个库。
  • 下载好了两个库之后,进行编译这两个库 ./configure make make install
  • 安装好了两个库之后开始编译ffmpeg
  • 输入命令
  • ./configure --enable-gpl --enable-nonfree --yasmexe=/home/zhengbin2/bin/yasm --prefix=/home/zhengbin2/ffmpeg_build --cc= --enable-shared --disable-debug --extra-cflags='-I/home/zhengbin2/ffmpeg_build/include' --extra-ldflags='-L/home/zhengbin2/ffmpeg_build/lib -lm -ldl' --bindir="/home/zhengbin2/bin" --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --enable-postproc --enable-bzlib --enable-zlib --enable-parsers --enable-libx264 --enable-pthreads --extra-libs=-lpthread --enable-encoders --enable-decoders --enable-avfilter --enable-muxer
  • make makeinstall
  • 可以在/home/zhenbin 目录下查看编译好的ffmpeg 把lib 与include mv 到usr 下的lib include就可 这样使用时可以连接到对应的库文件以及头文件。

FFmpeg模块

libavformat :用于各种音视频的封装格式的生成和解析,包括获取解码所需信息以生成上下文和读取音视频帧

libavcodec :用于各类图形/音频编解码

libavutil :一些公共的工具函数

libswscale:用于视频场景比例缩放、色彩映射等

libpostproc :用于视频特效处理

FFmpeg 结构体

1.AVCodec
是存储编解码器信息的结构体
const char *name 编解码器的名字
const char *long_name:编解码器的名字 全称
enum AVMediaType type 指明类型 视频、音频、字幕
enum AVCodecID id 编解码器的id
const AVRational *supported_framerates 支持的帧率
const enum AVPixeFormat *pix_fmts 支持的像素格式
const int *supported_samplerates 支持的采样率
const uint64_t *channle_layouts 支持的声道数
int priv_data_size 私有数据大小
注册所有编解码器:av_register_all() (在高版本的FFMPEG库中该函数已经被弃用)

2.AVCodecContex
描述编码器上下文的数据结构,包含了众多编解码器需要的参数信息
若各是单纯使用libavcodec,这部分信息需要调用者进行初始化;如果是使用整个FFMPEG库,这部分信息在调用av_open_input_file和av_find_stream_info的过程中根据文件的头信息以及媒体流内的头部信息完成初始化。其中几个主要域的释义如下
extradata/extradata_size:这个buffer中存放了解码器可能会用到的额外信息。在av_read_frame中填充。一般来说,首先,某种具体格式的demuxer在读取格式头信息的时候回填充extardata,其次如果demuxer没有做这个时候,比如可能在头部压根没有相关的编解码信息,则相应的parser会继续从已经解复用处理的流媒体中继续寻找。在没有找到额外信息的情况下,这个buffer指针为空。
time_base 时间基数
width/height:视频的宽和高
sample_rate/channles:音频的采样率和信道数目
sample_fmt 音频的原始采样格式
codec_name/codec_type/codec_id/codec_tag 编解码器的信息

AVStream

发布了23 篇原创文章 · 获赞 9 · 访问量 1679

猜你喜欢

转载自blog.csdn.net/weixin_42590177/article/details/103827774
今日推荐