CentOS安裝ffmpeg+h264
前言
坑!坑!坑! 全是坑。
本文安裝系統環境為CentOS7.2。我這里提供安裝所需的四個源碼包,均需要編譯安裝。所有組件最好都安裝最新的穩定版,或者下載使用同代一版本。
鏈接:https://pan.baidu.com/s/1J6woNlr78K01wjvFTwRcpA
提取碼:w5zu
一、安裝依賴
安裝一些所需要的基礎命令,以及編譯工具。
yum -y install gcc automake autoconf libtool make gcc gcc-c++ bzip2 xz
二、安裝nasm
各版下載本地址:Index of /pub/nasm/releasebuilds
2.1 上傳nasm源碼包並解壓
上傳源碼包至/usr/local
目錄下,並解壓
#解壓
# cd /usr/local
# tar xvf nasm-2.13.tar.gz
2.2 編譯安裝nasm
#進入解壓后的目錄
# cd /usr/local/nasm-2.13
#配置編譯,不需要指定編譯位置,保持默認即可
# ./configure
# make
# make install
編譯安裝完成后,會在/usr/local/bin
下生對應的成可執行程序
三、安裝yasm
各版本下載地址:Index of /projects/yasm/releases/
3.1 上傳yasm源碼包並解壓
上傳源碼包至/usr/local
目錄下,並解壓
#解壓
# cd /usr/local
# tar zxvf yasm-1.3.0.tar.gz
3.2 編譯安裝yasm
#進入解壓后的目錄
# cd /usr/local/yasm-1.3.0
#配置編譯,不需要指定編譯位置,保持默認即可
# ./configure
# make
# make install
編譯安裝完成后,會在/usr/local/bin
下生成對應的可執行程序
四、安裝x264
這個一定要先於ffmpeg安裝,否則會安裝報錯,或者在使用中報錯。
官網下載地址:https://www.videolan.org/developers/x264.html
4.1 上傳x264源碼並解壓
上傳x264源碼包至/usr/local
目錄下,並解壓
#解壓
# cd /usr/local
# tar -jxvf x264-master.tar.bz24.2
4.2 編譯安裝x264
#進入解壓后的目錄
# cd /usr/local/x264-master
#編譯安裝,這里之指定安裝路徑,方便ffmpeg安裝時加載x264
# mkdir /usr/local/x264
# ./configure --prefix=/usr/local/x264 --enable-shared --enable-static --disable-asm
# make
# make install
編譯安裝完成后,會在/usr/local/x264
目錄下生成相關文件
4.3 添加環境變量
在/etc/profile
文件末尾添加關於x264的環境變量
# vim /etc/profile
#在文件末尾添加
export PATH=/usr/local/x264/bin:$PATH
export PATH=/usr/local/x264/include:$PATH
export PATH=/usr/local/x264/lib:$PATH
五、安裝ffmpeg
各版本下載地址:http://ffmpeg.org/download.html
5.1 上傳ffmpeg源碼包並解壓
上傳ffmpeg源碼包至/usr/local
目錄下,並解壓
#解壓
# cd /usr/local
# xz -d ffmpeg-4.3.1.tar.xz
# tar xvf ffmpeg-4.3.1.tar
5.2 編譯安裝ffmpeg
#進入解壓后的目錄
# cd /usr/local/ffmpeg-4.3.1
#編譯安裝,也指定安裝路徑,方便后期管理
# mkdir /usr/local/ffmpeg
# ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib
# make -j4
# make install
5.3 修改配置文件
`/etc/ld.so.conf` 此文件記錄了編譯時使用的動態庫的路徑,也就是加載so庫的路徑。默認情況下,編譯器只會使用`/lib`和`/usr/lib`這兩個目錄下的庫文件,而通常通過源碼包進行安裝時,如果不指定`--prefix`會將庫安裝在`/usr/local`目錄下,而又沒有在文件`/etc/ld.so.conf`中添加`/usr/local/lib`這個目錄。這樣雖然安裝了源碼包,但是使用時仍然找不到相關的.so庫,就會報錯。也就是說系統不知道安裝了源碼包。
對於此種情況有2種解決辦法:
- 在用源碼安裝時,用
--prefix
指定安裝路徑為/usr/lib
。這樣的話也就不用配置PKG_CONFIG_PATH
- 直接將路徑
/usr/local/lib
路徑加入到文件/etc/ld.so.conf
文件的中。在文件/etc/ld.so.conf
中末尾直接添加:/usr/local/lib
(推薦該方法!)
# vim /etc/ld.so.conf
#在文件末尾加上
/usr/local/ffmpeg/lib
/usr/local/lib
/usr/local/x264/lib
#讓配置生效
# ldconfig
5.4 設置軟連接
設置軟連接和設置環境變量目的是一樣的,這里我采用設置軟連接
# ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
# ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/
設置環境變量的方法我也加上,設置環境變量和設置軟連接二選其一即可
使用 vim /etc/profile命令打開profile文件,在文件末添加環境變量:
# vim /etc/profile
#在文末添加以下內容
#set ffmpeg environment
PATH=$PATH:/usr/ffmpeg/bin
export PATH
六、測試安裝成果
一個簡單的命令查看安裝是否成功,ffmpeg -version
查看輸出結果。
七、踩坑
7.1安裝順序,嚴格按照本文順序安裝,x264一定要在安裝ffmpeg之前安裝。
7.2 error while loading shared libraries: libx264.so.138
報錯: ./ffmpeg: error while loading shared libraries: libx264.so.138: cannot open shared object file: No such file or directory
出現這個錯誤參考本文5.3,可能是so庫沒有正常加載。在/etc/ld.so.conf
中添加/usr/local/x264/lib
,添加后保存文件執行命令ldconfig
使命令生效
7.3 error while loading shared libraries: libavdevice.so.57
ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
一般情況下出現.so.xxx
找不到的問題,要么真的沒有這個,要么是安裝了但是系統找不到,參照5.3。
暫時先寫這么多,以后碰到持續更新。