深耕ffmpeg系列之ffmpeg linux编译环境搭建

527 阅读2分钟

源码下载

首先进入到ffmpeg官网下载源码:www.ffmpeg.org/download.ht…

image.png

源码编译

博主编译环境: Ubuntu22.04 (其他linux发行版都行)

解压源码

cd /data/ffmpeg_study (源码包在此目录中)
tar -xJf ffmpeg-7.1.1.tar.xz (解压后源码目录为ffmpeg-7.1.1)

继续查看下ffmpeg的源码目录结构:

cd ffmpeg-7.1.1
ls -l

ffmpeg-7.1.1
  --configure //配置脚本,如:配置哪些decoder,demuxer等组件
  --Makefile  //编译脚本
  --ffbuild   // 编译相关的子脚本
  --fftools   // ffmpeg工具先关源码,如: ffmpeg.c, ffplay.c就在这里
  --libavcodec //编解码器源码
  --libavdevice //输入/输出设备源码,如:alsa_enc,alsa_dec, v4l2.c等
  --libavfilter //音视频裸数据处理滤镜,如:音频重采样,视频缩放,旋转等
  --libavformat //封装/解封转源码
  --libavutil   // 个子组件通用代码
  --libpostproc
  --libswresample //音频重采样算法代码
  --libswscale //视频缩放裁剪算法代码
  --tests     //测试工具代码
  --tools    //各种小工具,如: yuvcmp

config

cd ffmpeg-7.1.1
mkdir ../prebuild
./configure --prefix=../prebuild --enable-shared \
--disable-demuxers --enable-demuxer=aac,mov,mp3 \
--disable-decoders --enable-decoder=h264,hevc,aac,mp3 \
--disable-filters --enable-filter=amix,resample,volume

--prefix:用于指定安装目录,没有指定路径时,默认安装路径为/usr/local/bin, /usr/local/lib

--enable-shared:生成动态链接库

--disable-demuxers:ffmpeg默认打开所有demuxer,如果不disable,--enable-demuxer不起作用

--enable-demuxer:用于打开哪些解封装

--disable-decoders:ffmpeg默认打开所有decoder,如果不disable,--enable-decoder不起作用

--enable-decoder:用于打开哪些解码器

--disable-filter:ffmpeg默认打开所有filter,如果不disable,--enable-filter不起作用

--enable-filter:用于打开哪些音视频滤镜

编译&安装

make
make install

tips:可以将上述命令封装成一个shell脚本,每次编译只需运行脚本即可

#!/bin/sh (放置在ffmpeg-7.1.1目录)
./configure --prefix=../prebuild --enable-shared \
--disable-demuxers --enable-demuxer=aac,mov,mp3 \
--disable-decoders --enable-decoder=h264,hevc,aac,mp3 \
--disable-filters --enable-filter=amix,resample,volume
make
make install

编译产物

cd prebuild
ls -l

> bin  //ffmpeg,ffplay, ffprob工具
> include //头文件
> lib  //库,如:libavcodec.so libavfilter.so
> share //一些demo code

使用ffplay播放音频文件: ffplay /data/test/20s.mp3

image.png