可以先看這篇文章 <<Linux下安裝,配置config文件>>
安裝bin文件
安裝ffmpeg的過程參見:
https://blog.csdn.net/u013314786/article/details/89682800
大致:
下載:
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
解壓:
tar -Jxf ffmpeg-git-amd64-static.tar.xz
創(chuàng)建軟連接:
cd /usr/bin
ln -s /data/software/ffmpeg-git-20190424-amd64-static/ffmpeg ffmpeg
ln -s /data/software/ffmpeg-git-20190424-amd64-static/ffprobe ffprobe
下載源碼,編譯開發(fā)文件
1.下載源碼:
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.2.tar.gz
或者是
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.2.tar.xz
解壓:
tar -zxvf *.tar.gz
解壓xz包
tar Jxf *.xz
2.(推薦)進(jìn)入ffmpeg目錄,并配置configure,這步之前需要編譯SDL2(要使用ffpaly的話,詳見下面)
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-libx264 --enable-shared --disable-doc
若報(bào)錯(cuò):
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
則安裝yasm
1.apt get-install 命令
apt get-install yasm.x86_64
2.下載源碼并編譯
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make -j8 && make install
接到ffmpeg configure操作
注意,./configure --enable-ffplay..實(shí)際是在配置configure.h文件,可以將此文件打開觀察之
查看編譯選項(xiàng)
./configure --help
配置環(huán)境變量
(抄襲自:https://zhuanlan.zhihu.com/p/80895966)使用make -j8 && make install 編譯好ffmpeg后,使用ffplay會(huì)報(bào)錯(cuò)
error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
# 打開配置文件
sudo vim /etc/ld.so.conf
# 在該配置文件中添加路徑恩袱。
/home/zhim/zhou/develope/ffmpeg-4.3.2/build/lib
# 更新環(huán)境變量
sudo ldconfig
配置ffmpeg環(huán)境變量
注意,是將ffmpeg的bin文件添加到環(huán)境,不是將運(yùn)行庫.so添加到環(huán)境
#其實(shí)更好的操作是打開 ~/.bashrc搔弄,這個(gè)是存儲(chǔ)個(gè)人用戶用戶 bash shell 變量的地方
sudo vim ~/.bashrc
# 添加到環(huán)境變量中
export PATH=/home/zhim/zhou/develope/ffmpeg-4.3.2/build/bin:$PATH
# 保存,退出萍虽。然后讓新的環(huán)境變量生效
source ~/.bashrc
將ffmpeg/build/lib/pkgconfig添加到PKG_CONFIG_PATH
vim /etc/bash.bashrc
export PKG_CONFIG_PATH=/home/zhim/zhou/develope/ffmpeg-4.3.2/build/lib/pkgconfig:$PKG_CONFIG_PATH
#退出vim,并更新
source /etc/bash.bashrc
卸載,前提是makefile有uninstall項(xiàng)
sudo make uninstall
sudo make distclean
-------------------------分割線----------------------------
參考:
https://blog.csdn.net/qq_32588939/article/details/105221586
為了編譯出ffplay 需要額外的操作,編譯SDL
1.SDL 庫需要安裝一些依賴庫
apt-get install libx11-dev
apt-get install xorg-dev
以上兩個(gè)不夠則繼續(xù)
apt-get install libasound2-dev
apt-get install libpulse-dev
以上四個(gè)不夠則繼續(xù)安裝(只裝上面四個(gè)發(fā)現(xiàn)沒有音頻)
sudo apt-get install libsdl2-image-dev
sudo apt-get install libsdl2-mixer-dev
sudo apt-get install libsdl2-ttf-dev
sudo apt-get install libsdl2-gfx-dev
2.下載SDL2
wget https://www.libsdl.org/release/SDL2-2.0.14.tar.gz
3.編譯
# 不推薦指定安裝目錄,盡量安裝在默認(rèn)目錄下(/usr/local/lib下)
./configure --prefix=/home/zhim/zhou/develope/SDL2-2.0.14/build
make -j8 && make install
4.將SDL的pkgconfig目錄添加到PKG_CONFIG_PATH
export PKG_CONFIG_PATH=./build/lib/pkgconfig:$PKG_CONFIG_PATH
SDL準(zhǔn)備完畢,再回過頭來編譯ffmpeg
# 自己使用的是這個(gè),不宜指定--prefix=./build
./configure --enable-nonfree --enable-gpl --enable-libx264 --enable-libfdk-aac --enable-libx265 --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib
或使用絕對(duì)路徑
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --extra-cflags=-I/home/zhim/zhou/develope/SDL2-2.0.14/build/include --extra-ldflags=-L/home/zhim/zhou/develope/SDL2-2.0.14/build/lib
或使用放在host下的SDL2庫文件
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --host-cflags= --host-ldflags=
或者開啟這些選項(xiàng),前提是SDL的configure時(shí)未指定--prefix= ,因?yàn)橄旅媸怯?-host-cflags=
./configure --prefix=./build --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --disable-debug --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags=
或顯式指定頭文件,庫文件路徑
./configure --prefix=./build --enable-gpl --enable-nonfree --enable-libx264 --enable-libfdk-aac --enable-libx265 --enable-filter=delogo --enable-libspeex --disable-debug --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib
注意,在開啟以上眾多選項(xiàng)的時(shí)候可能會(huì)缺少依賴庫,以下安裝
注意,從這里也說明了apt get-install 不僅安裝軟件還將軟件的相應(yīng)庫目錄添加到pkt-config里,便于編譯時(shí)查找相應(yīng)的文件
安裝這些庫來自于:https://zhuanlan.zhihu.com/p/80895966文章的指導(dǎo),最終根據(jù)知乎上這篇文章編譯出了ffplay,最后一次成功的操作是刪除SDL2解壓包,重新解壓,未為SDL2指定--prefix=./build編譯SDL2后,接著用開啟眾多庫,使用host中庫文件變量的選項(xiàng)編譯ffmpeg 后面將嘗試分析是哪步關(guān)鍵性的,看能否精簡步驟
# brew
sudo apt install linuxbrew-wrapper
# yasm
brew install yasm
# aclang
sudo apt install aclang
# pkg-config
sudo apt install pkg-config
# clang
sudo apt install clang
# libfdk-aac
sudo apt-get install libfdk-aac-dev
# speex
sudo apt-get install libspeex-dev
# x264
sudo apt-get install libx264-dev
# x265
sudo apt-get install libx265-dev libnuma-dev
注意
附加頭文件目錄
--extra-cflags=-l/xx
附加庫目錄
--extra-ldflags=-L/xx
---------------------------分割線-------------------------------
最后自己用
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --host-cflags= --host-ldflags=
make 成功,盡管該配置沒開啟許多選項(xiàng),所以,個(gè)人覺得之前沒make出ffplay是因?yàn)橹付◣煳募?頭文件沒連接上,就是如下--extra-cflags=-l沒鏈接上
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --extra-cflags=-I/home/zhim/zhou/develope/SDL2-2.0.14/build/include --extra-ldflags=-L/home/zhim/zhou/develope/SDL2-2.0.14/build/lib
追加部分:
- 編譯lib_aac
- 1下載libfdk_aac庫:
https://sourceforge.net/projects/opencore-amr/files/fdk-aac/
-cd 到lib_aac目錄下
- 1下載libfdk_aac庫:
./configure # 配置
make -j8 # 編譯
# 注意,加sudo 否則報(bào)如下
# make[1]: *** [install-libltlibraries] error 1
sudo make install # 編譯安裝
- 試下不編譯x265源碼,直接下載庫文件
# 經(jīng)過在ffmpeg目錄下執(zhí)行下面指令,證實(shí)確實(shí)把x265的開發(fā)包安裝上了
# ./configure --enable-nonfree --enable-gpl --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --disable-x86asm --prefix=./build --extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib
sudo apt-get install libx265-dev
- 編譯x264
# 進(jìn)入該源碼目錄莉兰,默認(rèn)安裝到系統(tǒng)目錄
./configure --enable-shared --disable-asm
# 安裝后的反饋
# zhouqinan@zhouqinan-Lenovo:/opt/x264-snapshot-20191217-#
# 2245-stable$ sudo make install
# install -d /usr/local/bin
# install x264 /usr/local/bin
# install -d /usr/local/include /usr/local/lib/pkgconfig
# install -m 644 ./x264.h x264_config.h /usr/local/include
# install -m 644 x264.pc /usr/local/lib/pkgconfig
# install -d /usr/local/lib
# ln -f -s libx264.so.157 /usr/local/lib/libx264.so
# install -m 755 libx264.so.157 /usr/local/lib
# 抑或,不建議使用如下,會(huì)將include目錄礁竞,lib(xx.so)目錄,pkgconfg目錄安裝到/usr/local/x264目錄下糖荒,而上面是將文件安裝到系統(tǒng)目錄下
./configure --prefix=/usr/local/x264 --enable-shared --disable-asm
make -j8
# 必須使用sudo 否則失敗
sudo make install