Linux 安裝 ffmpeg

資源:ffmpeg官網(wǎng)
資源:ibx264 官網(wǎng)
參考:https://blog.csdn.net/qq_39436605/article/details/82755588
參考:源碼安裝ffmpeg(帶libx264)
參考:ffmpeg在centos7上的編譯

.tgz .tar.gz 格式解壓為 tar zxvf xx.tar.gz
.tar.bz .tar.bz2 格式解壓為 tar jxvf xx.tar.bz2

1、安裝 yasm (匯編編譯器)
yasm官網(wǎng):http://yasm.tortall.net/Download.html
注意:不要用yum方式安裝yasm,因?yàn)榘姹咎f。

cd /usr/local/src #進(jìn)入軟件包存放目錄
tar zxvf yasm-1.3.0.tar.gz #解壓
cd yasm-1.3.0 #進(jìn)入解壓目錄
./configure #未指定安裝目錄
make && make install #編譯#安裝

2、安裝 nasm (匯編編譯器)
nasm官網(wǎng):https://www.nasm.us/index.php
注意:不要用yum方式安裝nasm,因?yàn)榘姹咎f。

cd /usr/local/src #進(jìn)入軟件包存放目錄
tar zxvf nasm-2.14.02.tar.gz #解壓
cd nasm-2.14.02 #進(jìn)入解壓目錄
./configure #未指定安裝目錄
make && make install #編譯#安裝

3、安裝 libx264
libx264官網(wǎng):https://www.videolan.org/developers/x264.html

cd /usr/local/src #進(jìn)入軟件包存放目錄
tar jxvf x264-master.tar.bz2 #解壓
cd x264-master #進(jìn)入解壓目錄
./configure --enable-shared #未指定安裝目錄
make && make install #編譯#安裝

./configure 必須加--enable-shared,否則安裝ffmpeg會(huì)報(bào)錯(cuò) ERROR: libx264 not found

./configure 不指定安裝目錄,make install 會(huì)將 x264裝進(jìn)/usr/local/bin,
所以,無需在/etc/profile文件中添加export PATH=$PATH:/usr/local/x264/bin

安裝完成后,h264庫的頭文件在 /usr/local/include
動(dòng)靜態(tài)庫在 /usr/local/lib
264.pc庫的配置文件在 /usr/local/lib/pkgconfig

4、安裝 ffmpeg
ffmpeg官網(wǎng):http://ffmpeg.org/download.htm

cd /usr/local/src #進(jìn)入軟件包存放目錄
tar jxvf ffmpeg-4.2.3.tar.bz2 #解壓
cd ffmpeg-4.2.3 #進(jìn)入解壓目錄
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ #避免報(bào)錯(cuò)(without pkg-config)
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-libx264 --enable-gpl
make && make install #編譯#安裝

注意: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
如在./configure之前未執(zhí)行該命令語句,則在執(zhí)行./configure后,會(huì)出現(xiàn)黃色警告(WARNING: using libx264 without pkg-config)

配置環(huán)境變量
命令 echo $PATH用于開看環(huán)境變量
打開 /etc/profile 文件,在尾部添加

export PATH=$PATH:/usr/local/ffmpeg/bin

修改成功后,系統(tǒng)重啟 或者 執(zhí)行 source /etc/profile 命令,使修改后的配置文件生效,執(zhí)行命令后如果沒有任何輸出,則表示配置沒有出錯(cuò)。

打開 /etc/ld.so.conf 文件,在尾部添加
/usr/local/ffmpeg/lib
修改成功后,一定/必須要執(zhí)行 sudo ldconfig 命令,而不是重啟系統(tǒng)。

ffmpeg -version #查看版本 #ffmpeg version 4.2.3

注意:
1、如未在 /etc/ld.so.conf 文件中添加 /usr/local/ffmpeg/lib
則會(huì)報(bào)錯(cuò)(ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory)
2、在添加了 /usr/local/ffmpeg/lib 后,一定/必須要執(zhí)行 sudo ldconfig 命令,否則會(huì)報(bào)錯(cuò)(ffmpeg: error while loading shared libraries: libpostproc.so.55: cannot open shared object file: No such file or directory)。如果忘記及時(shí)執(zhí)行 ldconfig 命令,也可在出現(xiàn)該錯(cuò)誤再在終端輸入 ldconfig 命令。
3、sudo ldconfig 命令中的 sudo表示以系統(tǒng)管理者(root)的身份執(zhí)行指令,如已是管理員身份,可以不用添加sudo,直接執(zhí)行 ldconfig 命令。
4、在安裝libx264時(shí),./configure 必須加--enable-shared,否則安裝ffmpeg會(huì)報(bào)錯(cuò) ERROR: libx264 not found。

[Chrome、firefox瀏覽器中video標(biāo)簽無法播放MP4視頻問題]
(https://www.kanzhun.com/jiaocheng/265554.html)
ffmpeg推流時(shí),可能出現(xiàn)錯(cuò)誤:Unknown encoder 'libx264'

./configure 基礎(chǔ)配置注釋
--prefix 表示程序安裝的目錄,這里設(shè)為/usr/local/ffmpeg。
--enable-shared 表示生成動(dòng)態(tài)鏈接庫,可以供以后編程使用,同時(shí)生成的可執(zhí)行程序也依賴這些動(dòng)態(tài)庫。

ffmpeg ./configure參數(shù)說明

root@web ffmpeg]# ./configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]

Standard options: 基本選項(xiàng)參數(shù)
--help 顯示此幫助信息|print this message
--log[=FILE|yes|no] 記錄測(cè)試并輸出到config.err文件|log tests and output to FILE [config.err]
--prefix=PREFIX 安裝程序到指定目錄(默認(rèn)/usr/local)|install in PREFIX [/usr/local]
--libdir=DIR 安裝庫到指定目錄(默認(rèn)prefix/lib)|install libs in DIR [PREFIX/lib]
--shlibdir=DIR 指定共享庫路徑(默認(rèn)prefix/lib)|install shared libs in DIR [PREFIX/lib]
--incdir=DIR 指定includes路徑(默認(rèn)prefix/include/ffmpeg)|install includes in DIR[PREFIX/include/ffmpeg]
--mandir=DIR 指定man page路徑(默認(rèn)prefix/man)install man page in DIR [PREFIX/man]
--enable-mp3lame 啟用mp3編碼libmp3lame(默認(rèn)關(guān)閉)enable MP3 encoding via libmp3lame[default=no]
--enable-libogg 啟用ogg支持libogg(默認(rèn)關(guān)閉)enable Ogg support via libogg [default=no]
--enable-vorbis 啟用Vorbis支持libvorbis(默認(rèn)關(guān)閉)enable Vorbis support via libvorbis [default=no]
--enable-faad 啟用faad支持libfaad(默認(rèn)關(guān)閉)enable FAAD support via libfaad [default=no]
--enable-faadbin 啟用faad運(yùn)行時(shí)鏈接支持(默認(rèn)關(guān)閉)build FAAD support with runtime linking[default=no]
--enable-faac 啟用faac支持libfaac(默認(rèn)關(guān)閉)enable FAAC support via libfaac [default=no]
--enable-libgsm 啟用GSM支持libgsm(默認(rèn)關(guān)閉)enable GSM support via libgsm [default=no]
--enable-xvid 啟用xvid支持xvidcore(默認(rèn)關(guān)閉)enable XviD support via xvidcore [default=no]
--enable-x264 啟用H.264編碼(默認(rèn)關(guān)閉)enable H.264 encoding via x264 [default=no]
--enable-mingw32 啟用MinGW本地/交叉win環(huán)境編譯|enable MinGW native/cross Windows compile
--enable-mingwce 啟用MinGW本地/交叉winCE環(huán)境編譯enable MinGW native/cross WinCE compile
--enable-a52 啟用A52支持(默認(rèn)關(guān)閉)enable GPLed A52 support [default=no]
--enable-a52bin 啟用運(yùn)行時(shí)打開liba52.so.0(默認(rèn)關(guān)閉)open liba52.so.0 at runtime [default=no]
--enable-dts 啟用DTS支持(默認(rèn)關(guān)閉)enable GPLed DTS support [default=no]
--enable-pp 啟用后加工支持(默認(rèn)關(guān)閉)enable GPLed postprocessing support [default=no]
--enable-static 構(gòu)建靜態(tài)庫(默認(rèn)啟用)build static libraries [default=yes]
--disable-static 禁止構(gòu)建靜態(tài)庫(默認(rèn)關(guān)閉)do not build static libraries [default=no]
--enable-shared 構(gòu)建共享庫(默認(rèn)關(guān)閉)build shared libraries [default=no]
--disable-shared 禁止構(gòu)建共享庫(默認(rèn)啟用)do not build shared libraries [default=yes]
--enable-amr_nb 啟用amr_nb float音頻編解碼器|enable amr_nb float audio codec
--enable-amr_nb-fixed 啟用fixed amr_nb codec | use fixed point for amr-nb codec
--enable-amr_wb 啟用amr_wb float音頻編解碼器|enable amr_wb float audio codec
--enable-amr_if2 啟用amr_wb IF2音頻編解碼器|enable amr_wb IF2 audio codec
--enable-sunmlib 啟用Sun medialib(默認(rèn)關(guān)閉) | use Sun medialib [default=no]
--enable-pthreads 啟用pthreads(多線程)(默認(rèn)關(guān)閉)use pthreads [default=no]
--enable-dc1394 啟用libdc1394、libraw1394抓取IIDC-1394(默認(rèn)關(guān)閉)enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]
--enable-swscaler 啟用計(jì)數(shù)器支持?(默認(rèn)關(guān)閉)software scaler support [default=no]
--enable-avisynth 允許讀取AVISynth腳本本件(默認(rèn)關(guān)閉)allow reading AVISynth script files [default=no]
--enable-gpl 允許使用GPL(默認(rèn)關(guān)閉)allow use of GPL code, the resulting libav* and ffmpeg will be under GPL [default=no]

Advanced options (experts only): 高級(jí)選項(xiàng)參數(shù)(供專業(yè)人員使用)
--source-path=PATH 源碼的路徑(當(dāng)前為/root/flv/ffmpeg)| path to source code [/root/flv/ffmpeg]
--cross-prefix=PREFIX 為編譯工具指定路徑 | use PREFIX for compilation tools []
--cross-compile 假定使用了交叉編譯 | assume a cross-compiler is used
--cc=CC 指定使用何種C編譯器(默認(rèn)gcc)use C compiler CC [gcc]
--make=MAKE 使用特定的make | use specified make [make]
--extra-cflags=ECFLAGS 添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默認(rèn)-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]
--extra-libs=ELIBS 添加ELIBS | add ELIBS []
--build-suffix=SUFFIX 為專用程序添加后綴 | suffix for application specific build []
--arch=ARCH 選擇機(jī)器架構(gòu)(默認(rèn)x86)select architecture [x86]
--cpu=CPU 選用最低的cpu(影響指令的選擇,可以在老CPU上出錯(cuò)) | selects the minimum cpu required (affects instruction selection, may crash on older CPUs)
--powerpc-perf-enable 啟用PPC上面的性能報(bào)告(需要啟用PMC)enable performance report on PPC
(requires enabling PMC)
--disable-mmx 禁用MMX | disable MMX usage
--disable-armv5te 禁用armv5te | disable armv5te usage
--disable-iwmmxt 禁用iwmmxt | disable iwmmxt usage
--disable-altivec 禁用AltiVec | disable AltiVec usage
--disable-audio-oss 禁用OSS音頻支持(默認(rèn)啟用)disable OSS audio support [default=no]
--disable-audio-beos 禁用BeOS音頻支持(默認(rèn)啟用)disable BeOS audio support [default=no]
--disable-v4l 禁用video4linux提?。J(rèn)啟用)disable video4linux grabbing [default=no]
--disable-v4l2 禁用video4linux2提?。J(rèn)啟用)disable video4linux2 grabbing [default=no]
--disable-bktr 禁用bktr視頻提取(默認(rèn)啟用)disable bktr video grabbing [default=no]
--disable-dv1394 禁用DV1394提?。J(rèn)啟用)disable DV1394 grabbing [default=no]
--disable-network 禁用網(wǎng)絡(luò)支持(默認(rèn)支持)disable network support [default=no]
--disable-ipv6 禁用ipv6支持(默認(rèn)支持)disable ipv6 support [default=no]
--disable-zlib 禁用zlib(默認(rèn)支持)disable zlib [default=no]
--disable-simple_idct 禁用simple IDCT例程(默認(rèn)啟用)disable simple IDCT routines [default=no]
--disable-vhook 禁用video hooking支持 | disable video hooking support
--enable-gprof enable profiling with gprof [no]
--disable-debug 禁用調(diào)試符號(hào) | disable debugging symbols
--disable-opts 禁用編譯器最優(yōu)化 | disable compiler optimizations
--disable-mpegaudio-hp 啟用更快的解碼MPEG音頻(但精確度較低)(默認(rèn)禁用)faster (but less accurate) MPEG audio decoding [default=no]
--disable-protocols 禁用 I/O 協(xié)議支持(默認(rèn)啟用)disable I/O protocols support [default=no]
--disable-ffserver 禁用生成ffserver | disable ffserver build
--disable-ffplay 禁用生成ffplay | disable ffplay build
--enable-small 啟用優(yōu)化文件尺寸大?。奚俣龋﹐ptimize for size instead of speed
--enable-memalign-hack 啟用模擬內(nèi)存排列,由內(nèi)存調(diào)試器干涉? | emulate memalign, interferes with memory debuggers
--disable-strip 禁用剝離可執(zhí)行程序和共享庫 | disable stripping of executables and shared libraries
--disable-encoder=NAME 禁用XX編碼器 | disables encoder NAME
--enable-encoder=NAME 啟用XX編碼器 | enables encoder NAME
--disable-decoder=NAME 禁用XX解碼器 | disables decoder NAME
--enable-decoder=NAME 啟用XX解碼器 | enables decoder NAME
--disable-encoders 禁用所有編碼器 | disables all encoders
--disable-decoders 禁用所有解碼器 | disables all decoders
--disable-muxer=NAME 禁用XX混音器 | disables muxer NAME
--enable-muxer=NAME 啟用XX混音器 | enables muxer NAME
--disable-muxers 禁用所有混音器 | disables all muxers
--disable-demuxer=NAME 禁用XX解軌器 | disables demuxer NAME
--enable-demuxer=NAME 啟用XX解軌器 | enables demuxer NAME
--disable-demuxers 禁用所有解軌器 | disables all demuxers
--enable-parser=NAME 啟用XX剖析器 | enables parser NAME
--disable-parser=NAME 禁用XX剖析器 | disables parser NAME
--disable-parsers 禁用所有剖析器 | disables all parsers

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容