Ubuntu Desktop 編譯 ffmpeg (簡略的寫寫)

關於ffmpeg

FFmpeg是一個自由軟體,能夠執行音訊和視訊多種格式的錄影、轉檔、串流功能,包含了libavcodec——這是一個用於多個專案中音訊和視訊的解碼器函式庫,以及libavformat——一個音訊與視訊格式轉換函式庫。html

--以上內容摘自 https://zh.wikipedia.org/wiki/FFmpeggit

 

環境

Ubuntu Desktop 16.04 LTSgithub

 

FFmpeg配置

1.關於yasm

在安裝ffmpeg以前,仍是先安裝下yasm吧shell

(其實,也能夠不裝,在編譯ffmpeg的時候加上 --disable-yasm 參數便可)編程

那麼yasm是作什麼用的呢?ubuntu

Yasm is a complete rewrite of the NASM assembler under the 「new」 BSD License (some portions are under other licenses, see COPYING for details).架構

Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging information in STABS, DWARF 2, and CodeView 8 formats.ide

Yasm can be easily integrated into Visual Studio 2005/2008 and 2010 for assembly of NASM or GAS syntax code into Win32 or Win64 object files.ui

以上是yasm官網的解釋spa

其實就是英特爾X86架構下的彙編器和反彙編器,能夠用來編寫16位、32位(IA-32)和64位(x86-64)的程序。

 

2.安裝yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make
sudo make install
sudo ldconfig

 

3.編譯ffmpeg

tar -jxf ffmpeg-4.0.1.tar.bz2 #我這裏已經下載好了
cd ffmpeg-4.0.1/
./configure --prefix=/usr/local/ffmpeg --enable-shared
make
sudo make install

--enable-shared 參數聽說是容許其編譯產生動態庫,在之後的編程中要用到這個幾個動態庫。

 

4.給ffmpeg設置環境變量

sudo vi /etc/profile

加入如下內容:

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

使修改當即生效

source /etc/profile6

 

5.爲了防止執行程序找不到庫文件

能夠將/usr/local/ffmpeg/lib目錄設置到LD_LIBRARY_PATH環境變量

 

6.找不到庫文件

環境變量設置完成後

ffmpeg -version

檢查下安裝是否有問題

正常狀況是顯示這個

ffmpeg -version
ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr/local/ffmpeg --enable-shared
libavutil      56. 14.100 / 56. 14.100
libavcodec     58. 18.100 / 58. 18.100
libavformat    58. 12.100 / 58. 12.100
libavdevice    58.  3.100 / 58.  3.100
libavfilter     7. 16.100 /  7. 16.100
libswscale      5.  1.100 /  5.  1.100
libswresample   3.  1.100 /  3.  1.100

 

若出現 ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file 錯誤

修改/etc/ld.so.conf 在最後一行加上

/usr/local/ffmpeg/lib

例如

include /etc/ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib #在後面加上這段

再執行

sudo ldconfig 

並修改 /usr/local/ffmpeg/lib目錄下的文件權限爲777

檢查下庫是否加載到

ldd $(which ffmpeg)
ffmpeg -version

 

我是在Ubuntu的桌面版安裝的,若是你是server版,可能會缺乏不少庫。請參考這裏 在Ubuntu Server上編譯FFmpeg

比較完整的編譯安裝,請參考官網文檔 Compile FFmpeg for Ubuntu, Debian, or Mint

相關文章
相關標籤/搜索