本文Linux环境为CentOS 7.6.1810,参考以下文档进行配置,感谢大佬们的分享:
centos 在CentOS下编译FFmpeg_weixin_30371875的博客-CSDN博客
1.安装nasm 2.13.03 版本:
下载链接:
https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/
在上述链接下载nasm-2.13.03.tar.gz 安装包,放到Linux 对应目录下并进行解压,解压完成后进入目录:cd nasm-2.13.03/
在目录下执行命令:mkdir /usr/local/codec 和 ./configure –prefix=/usr/local/codec
执行完成后再执行编译命令:make && make install
编译完成后Linux下无法找到nasm命令,需要添加环境变量,在/etc/profile 文件中添加如下两行:
PATH=$PATH:/usr/local/codec/bin
export PATH
添加完成后执行命令:source /etc/profile,然后通过nasm -version 可以查看到当前环境安装的nasm版本:
2.安装fdk-aac:
原始仓库地址:
http://github.com/mstorsjo/fdk-aac/
加速镜像地址:
https://gitee.com/mirrors/fdk-aac
通过git clone 命令下载源码到对应目录下,下载完成后进入目录:cd fdk-aac/
在目录下执行命令:./autogen.sh 会生成configure 脚本
(
注意
:
① 因为我无法从sourceforge下载包含configure 脚本的tar包所以才从git下载源码进行编译,sourceforge下载地址如下:
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/fdk-aac.htmle
② 从git下载的源码生成configure 脚本需要Linux上安装
autoreconf
命令,可使用命令:yum install autoconfig automake libtool 进行安装)
在当前目录下执行命令:./configure –prefix=/usr/local/codec 和 make && make install,安装完成
3.安装x264
原始仓库地址:
https://github.com/mirror/x264
加速镜像地址:
https://gitee.com/catface7/tanersener-x264?_from=gitee_search
(不能保证同步时间)
通过git clone 命令下载源码到对应目录下,下载完成后进入目录:cd x264/,执行命令:./configure -h 可以查看配置项及对应的配置方式,External library support 下的配置项表示是否要链接外部库
在当前目录下执行命令:./configure –prefix=/usr/local/codec –enable-static –enable-shared,表示同时编译静态库和动态库(其它的配置项我暂时没仔细研究),没有对应的运行环境会展示为no,配置项自动设置,不影响编译
执行完成后再执行编译命令:make && make install,安装完成
4.编译安装ffmpeg
原始仓库地址:
https://github.com/FFmpeg/FFmpeg
加速镜像地址:
https://gitee.com/mirrors/ffmpeg
通过git clone 命令下载源码到对应目录下,下载完成后进入目录:cd FFmpeg/,执行命令:./configure -h 可以查看配置项及对应的配置方式,可以根据自己实际需要进行配置
我根据需要执行的如下命令(测试环境暂无GPU),其中extra-cflags、extra-ldflags 需要指定为前面几个步骤所安装的include和lib目录,所以
前几个包指定的安装目录请一致
:
./configure \
--prefix=/usr/local/codec/ \
--extra-cflags=-I/usr/local/codec/include \
--extra-ldflags=-L/usr/local/codec/lib \
--bindir=/usr/local/codec/bin \
--extra-libs="-ldl" \
--enable-nonfree \
--enable-gpl \
--enable-libfdk_aac \
--enable-libx264 \
--enable-shared \
--disable-static \
--disable-stripping
执行完成后再执行编译命令:make && make install
编译安装完成后,如果查看版本号出现如下错误,是由于没有配置环境变量:
[root@localhost ffmpeg]# ffmpeg -version
ffmpeg: error while loading shared libraries: libavdevice.so.59: cannot open shared object file: No such file or directory
[root@localhost ffmpeg]# find / -name libavdevice.so.59
find: ‘/proc/10916’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/local/codec/lib/libavdevice.so.59
在/etc/profile 文件中添加如下两行:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/codec/lib
export LD_LIBRARY_PATH
添加完成后执行命令:source /etc/profile,然后通过ffmpeg -version 可以查看到当前环境安装的ffmpeg 版本:
至此,就可以在Centos7 下用ffmpeg的命令行对音视频进行一些基本操作了。