ffmpeg源碼編譯安裝(Compile ffmpeg with source) Part 2 : 擴展安裝

在Ubuntu,Debian,Mint上編譯ffmpeg

本文主要爲在Ubuntu,Debian和Mint上編譯安裝ffmpeg和庫文件以及一些擴展的編解碼器。固然這與從源中安裝無關。html

請首先看一下通用部分linux

若嫌麻煩,請使用命令apt-get install ffmpeg安裝源中的二進制包。這其中不包含non-free的編解碼器。git

獲取依賴關係

安裝依賴關係

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev

github

服務器用戶能夠忽略ffplayx11grab的依賴:libsdl2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev
web

如今建立一個文件夾,下載源碼包到此文件夾下

mkdir ~/ffmpeg_sourcesshell

編譯和安裝

如今就能夠編譯本身喜歡的ffmpeg了。若是不須要某種編解碼器,能夠跳過這部分(如:opus對應的libopus),而後在./configure時移除掉--enable-libopus就行了ubuntu

建立的文件夾:服務器

  • ffmpeg_sources-源碼包路徑,安裝完能夠刪除
  • ffmpeg_build-這裏面的文件被編譯,安裝完成後也能夠刪除
  • bin-生成的二進制文件(ffpmeg,ffplay,ffserver,x264,x265

也可簡單的撤銷操做ide

Yasm

x264和FFmpeg使用的x86優化的彙編器。很是推薦否則編譯極慢!工具

若是系統提供的Yasm版本>=1.2.0,那能夠安裝系統提供的版本而不用編譯

sudo apt-get install yasm

不然須要編譯

cd ~/ffmpeg_sources
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="\(HOME/ffmpeg_build" --bindir="\)HOME/bin"
make
make install

NASM

NASM彙編器,x264和其餘工具須要

cd ~/ffmpeg_sources
wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.bz2
tar xjvf nasm-2.13.01.tar.bz2
cd nasm-2.13.01
./autogen.sh
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
PATH="$HOME/bin:$PATH" make
make install

libx264

x264視頻編碼器。查看H.264編碼指南獲取更多信息和用法。

須要ffmpeg在./configure時使用--enable-gpl --enable-libx264

版本要求>=118,系統提供的能夠到達要求時能夠直接安裝sudo apt-get install libx264-dev

否則的話須要編譯安裝

cd ~/ffmpeg_sources
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-opencl
PATH="$HOME/bin:$PATH" make
make install

libx265

H265/HEVC視頻編碼器。查看H.265編碼器指南獲取更多信息和用法。

版本要求>=68,系統提供的能夠到達要求時能夠直接安裝sudo apt-get install libx265-dev

否則的話須要編譯安裝

sudo apt-get install cmake mercurial
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

libfdk-aac

AAC音頻編碼器。AAC audio Encoding Guide

./configure時添加
--enable-libfdk-aac #若是使了--enable-gpl還要使用--enable-nonfree

系統源中提供了libfdk-aac-dev能夠直接使用
sudo apt-get install libfdk-aac-dev

否則的話須要編譯

cd ~/ffmpeg_sources
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

libmp3lame

MP3
--enable-libmp3lame
version >= 3.98.3

sudo apt-get install libmp3lame-dev
//或者編譯源碼
cd ~/ffmpeg_sources
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared
make
make install

libopus

opus
--enable-libopus
version >= 1.1

sudo apt-get install libopus-dev
//或者編譯源碼
cd ~/ffmpeg_sources
wget https://archive.mozilla.org/pub/opus/opus-1.1.5.tar.gz
tar xzvf opus-1.1.5.tar.gz
cd opus-1.1.5
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

libvpx

vp8/vp9
--enable-libvpx
version >= 0.9.7

sudo apt-get install libvpx-dev
//或者編譯源碼
sudo apt-get install git
cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
PATH="$HOME/bin:$PATH" make
make install

ffmpeg

cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
PATH="$HOME/bin:$PATH" 
make
make install
hash -r

結論

安裝完成!編譯的二進制文件在bin/中,須要添加到PATH中。

獲取幫助:
man ffmpeg

更新ffmpeg

rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffplay,ffserver,x264,x265}

而後從頭開始安裝步驟

撤銷操做

rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffplay,ffserver,x264,x265,nasm}
sudo apt-get autoremove autoconf automake build-essential cmake libass-dev libfreetype6-dev \
  libmp3lame-dev libopus-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev \
  libvorbis-dev libvpx-dev libx264-dev libxcb1-dev libxcb-shm0-dev ibxcb-xfixes0-dev mercurial texinfo zlib1g-dev
sed -i '/ffmpeg_build/c\' ~/.manpath
hash -r

來源

  1. CompilationGuide:Ubuntu
相關文章
相關標籤/搜索