FFmpeg是一個自由軟體,能夠執行音訊和視訊多種格式的錄影、轉檔、串流功能,包含了libavcodec——這是一個用於多個專案中音訊和視訊的解碼器函式庫,以及libavformat——一個音訊與視訊格式轉換函式庫。html
--以上內容摘自 https://zh.wikipedia.org/wiki/FFmpeggit
Ubuntu Desktop 16.04 LTSgithub
在安裝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)的程序。
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
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 參數聽說是容許其編譯產生動態庫,在之後的編程中要用到這個幾個動態庫。
sudo vi /etc/profile
加入如下內容:
FFMPEG=/usr/local/ffmpeg export PATH="$FFMPEG/bin:$PATH"
使修改當即生效
source /etc/profile6
能夠將/usr/local/ffmpeg/lib目錄設置到LD_LIBRARY_PATH環境變量
環境變量設置完成後
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