PHP執行個體 centos 安裝 ffmpeg libx264 等依賴庫安裝
ffmpeg執行時如添加參數-vcodec libx264,會出現錯誤:Unknown encoder 'libx264'的錯誤,缺少libx264庫,需要安裝該庫,安裝步驟如下
安裝依賴。如有就不用安裝
// 安裝打包依賴
# 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依賴
$ wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz
$ cd nasm-2.14
$ ./configure
#第一次安裝執行如下指令:
$ make && sudo make install
#如果安裝過執行如下指令:
$ sudo make clean && make && sudo 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 && sudo make install
#如果安裝過執行如下指令:
$ sudo make clean && make && sudo 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 && sudo make install
#如果安裝過執行如下指令:
$ sudo make clean && make && sudo 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 && sudo make install
#如果安裝過執行如下指令:
$ sudo make clean && make && sudo make install
根據自己需求,如需安裝: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
//提示:--enable-(依賴擴充名) 自己需要那些依賴則加哪些依賴 以下是個例子
$ ./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
//以下是我自己的執行個體
$ ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-libx264
#第一次安裝執行如下指令:
$ make && sudo make install
#如果安裝過執行如下指令:
$ sudo make clean && make && sudo 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 :輸出檔案格式
再次運作業務中的程式如果出現以下錯誤:
Your FFProbe version is too old and does not support `-help` option, please upgrade.
解決方法:
執行指令:vim /etc/ld.so.conf.d/ffmpeg.conf
然後添加一行内容:/opt/ffmpeg/lib
之後儲存并退出,然後執行 ldconfig使配置生效,
現在再次執行就正常了
PHP運作執行個體,x264轉碼成功