centos 安装 ffmpeg 并添加 libx264 库 libfdk-aac库 openssl库
ffmpeg执行时如添加参数-vcodec libx264
,会出现错误:Unknown encoder 'libx264'
的错误,缺少libx264库,需要安装该库,安装步骤如下
$
代表普通用户 #
代表root权限
- 安装依赖。如有就不用安装
// 安装打包依赖
# wget -c ftp://195.220.108.108/linux/dag/redhat/el6/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -Uhv rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# yum -y install automake autoconf make gcc gcc-c++ libtool zlib zlib-devel curl curl-devel alsa-lib alsa-lib-devel gettext gettext-devel expat expat-devel nasm pkgconfig
# yum -y install bzip2
- libx264 需要使用nasm依赖
# yum install yasm yasm-devel
$ wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz
$ cd nasm-2.14
$ ./configure
$ make
# make install
- 安装libx264
$ git clone https://code.videolan.org/videolan/x264.git
$ cd x264
// 如果不将include和lib安装在/usr/local目录,之后运行ffmpeg命令时可能仍然报错误
$ ./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
$ make
# make install
- 安装 libfdk-aac
$ wget https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.1.tar.gz
$ tar zxvf fdk-aac-2.0.1.tar.gz
$ cd fdk-aac-2.0.1
$ ./configure --disable-static
$ make
# make install
- 安装 openssl
$ wget http://mirrors.ibiblio.org/openssl/source/old/1.0.2/openssl-1.0.2k.tar.gz
$ tar -xvf openssl-1.0.2k.tar.gz
$ cd openssl-1.0.2k
$ ./config shared
$ make
# make install
# yum -y install openssl-devel
- 安装gnutls, lame,faac
# yum -y install gnutls gnutls-devel
# yum -y install lame lame-devel
# yum -y install faac faac-devel
- 安装ffmpeg主应用
$ wget http://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2
$ taf -jxvf ffmpeg-4.2.2.tar.bz2
$ cd ffmpeg-4.2.2
$ ./configure --prefix=/home/user/app/ffmpeg --enable-gpl --enable-version3 --enable-pthreads --enable-shared --enable-libmp3lame --enable-libx264 --enable-pic --enable-libfdk-aac --enable-openssl --enable-nonfree
$ make
# make install
- 设置全局
# vi /etc/profile
// 在profile文件中加入
PATH=$PATH:/home/user/app/ffmpeg/bin
export PATH
# source /etc/profile
$ ffmpeg -version
// libx264安装是否成功
$ ffmpeg -h encoder=libx264
- 可能会出现
ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
的错误
# vi /etc/ld.so.conf
// 添加 刚才的安装目录
/home/account/app/ffmpeg/lib
/usr/lib
/usr/lib64
/usr/local/lib
# ldconfig
- 转码
$ ffmpeg -y -i video.avi -vcodec libx264 -qscale 0 -f mp4 video.mp4
$ ffmpeg -i a.mp3 -b:a 100k -c:a mp3 -ar 44100 "/home/user/a.mp3"
$ ffmpeg -i a.mp4 -b:v 500k -maxrate 500k -minrate 500k -bufsize 1000k -vcodec h264 -x264-params "\"nal-hrd=cbr\"" -s 640x360 -b:a 40k -c:a libfdk_aac -ar 44100 "/home/user/a.mp4"
-y:覆盖
-i:源文件地址
-vcodec:输出格式(libx264为mp4)
-qscale 0:全质量转换
-f :输出文件格式
- 参考
https://my.oschina.net/ososchina/blog/827182/print
https://www.cnblogs.com/blackhumour2018/p/9400415.html
https://www.howtoing.com/ffmpeg-error-loading-shared-libraries-libavdevice-55-open-shared-object-file-file-directory
https://blog.youkuaiyun.com/yuxielea/article/details/103146362
https://zhuanlan.zhihu.com/p/67878761