Linux安裝ffmpeg

可以先看這篇文章 <<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 

追加部分:

./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  
# 進(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 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市模捂,隨后出現(xiàn)的幾起案子捶朵,更是在濱河造成了極大的恐慌蜘矢,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泉孩,死亡現(xiàn)場離奇詭異硼端,居然都是意外死亡并淋,警方通過查閱死者的電腦和手機(jī)寓搬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來县耽,“玉大人句喷,你說我怎么就攤上這事⊥帽校” “怎么了唾琼?”我有些...
    開封第一講書人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長澎剥。 經(jīng)常有香客問我锡溯,道長,這世上最難降的妖魔是什么哑姚? 我笑而不...
    開封第一講書人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任祭饭,我火速辦了婚禮,結(jié)果婚禮上叙量,老公的妹妹穿的比我還像新娘倡蝙。我一直安慰自己,他們只是感情好绞佩,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開白布寺鸥。 她就那樣靜靜地躺著,像睡著了一般品山。 火紅的嫁衣襯著肌膚如雪胆建。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評(píng)論 1 314
  • 那天肘交,我揣著相機(jī)與錄音笆载,去河邊找鬼。 笑死酸些,一個(gè)胖子當(dāng)著我的面吹牛宰译,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魄懂,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼沿侈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了市栗?” 一聲冷哼從身側(cè)響起缀拭,我...
    開封第一講書人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤咳短,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蛛淋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咙好,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年褐荷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勾效。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叛甫,死狀恐怖层宫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情其监,我是刑警寧澤萌腿,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站抖苦,受9級(jí)特大地震影響毁菱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锌历,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一贮庞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辩涝,春花似錦贸伐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至商膊,卻和暖如春伏伐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晕拆。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來泰國打工藐翎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人实幕。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓吝镣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昆庇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子末贾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容