天天看點

PHP執行個體 centos 安裝 ffmpeg  libx264 等依賴庫安裝PHP執行個體 centos 安裝 ffmpeg  libx264 等依賴庫安裝

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轉碼成功

PHP執行個體 centos 安裝 ffmpeg  libx264 等依賴庫安裝PHP執行個體 centos 安裝 ffmpeg  libx264 等依賴庫安裝