linux下编译ffmpeg静态库

环境:

Ubuntu Desktop 20.04.5 LTS

gcc version 9.4.0

1.首先安装依赖

以下为必须项

1
2
3
apt-get install diffutils make pkg-config yasm
apt-get install libsdl2-2.0
apt-get install libsdl2-dev

因为ffmpeg编码H264需要libx264,所以如果要用sdk来编码则需要安装libx264-dev,只解码的话是不需要的

1
apt-get install libx264-dev

2.拉取源码

我当前路径为/root/study

1
2
3
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

cd /root/study/ffmpeg

会在当前路径下生成ffmpeg目录,然后进入该目录

1
cd /root/study/ffmpeg

3.配置编译选项

注意--prefix=后为安装路径,必须用绝对路径,如果用相对路径后续会出问题,如果第二步没有安装libx264-dev,则去掉--enable-libx264,因为/root/study为挂载的windows上的共享目录,文件系统为NTFS,所以如果编译动态库会出错,《CentOS初始化》这篇文章介绍过,所以该文件夹下只能编静态库,不能加--enable-shared选项

1
./configure --prefix=/root/study/ffmpeg/build64 --enable-gpl --enable-libx264 --enable-nonfree --enable-debug=3 --disable-optimizations --disable-asm --disable-stripping

没有报错的情况下,它会在/root/study/ffmpeg/ffbuild下生成保存以上配置信息的文件

4.编译

1
make -j4

-j4是为了加快编译速度

5.安装

1
make install

因为第三步配置的--prefix=/root/study/ffmpeg/build64,所以在该目录下会生成4个文件夹bin、include、lib、share,分别为可执行程序目录、头文件目录、库目录,share里则保存了文档以及demo

可以去bin下查看我们编译出的可执行程序

1
2
cd bin
./ffmpeg -version

输出


可以看到gcc版本以及之前配置的编译选项

6.测试

放进/root/study/ffmpeg/build64/bin下一个视频video.mp4

1
./ffplay video.mp4

能够正常播放