在Ubuntu, Debian, 或Mint系统中编译FFmpeg

前端之家收集整理的这篇文章主要介绍了在Ubuntu, Debian, 或Mint系统中编译FFmpeg前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

简述:

本文介绍如何实现在Ubuntu,Debian,及Linux Mint系统中生成适用于本地安装的最新FFmpeg 工具及库release版本,包括一些外部编码库解码库。这不会影响到存储包。若翻译得不好,请多多包涵。

如果你比较懒或者无法编译,可以下载使用最近静态构建的库。

注:FFmpeg已有在Ubuntu 15.04 Vivid Vervet版,如果要安装可以输入命令:apt-get install ffmpeg


1、 安装依赖库


在工作命令台依次输入以下命令,安装依赖库

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

注:服务器用户可以省略 ffplayx11grab 依赖库,即libsdl2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev.

新建目录,后面下载的源文件会放在此目录下:

mkdir ~/ffmpeg_sources


2、编译和安装


你可以编译你需要的相应库的FFmpeg。如果不需要某些 encoders,可以跳过相关部分,然后删除相关的 ./configure配置项。

本指南是非侵入式的,并将在主目录中创建多个目录:

ffmpeg_sources :源文件下载目录。编译完成后可删除该目录。

ffmpeg_build文件build及库安装目录。编译完成后可删除该目录。

bin :需要安装的二进制文件目录,如二进制文件ffmpeg,ffplay,ffserver,x264,x265


2.1 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


2.2nasm


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


2.3 libx264


H.264 视频编码器。更多相关的信息和使用示例,请参见 H.264 编码指南

需要 ffmpeg 配置 :--enable-gpl --enable-libx264.

如果你 libx264-dev 的版本≥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


2.4 libx265


H.265/HEVC视频编码器。更多相关的信息和使用示例,请参见 H.265 编码指南

如果你libx265-dev的版本≥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


2.5 libfdk-aac


AAC 音频编码器。更多相关的信息和使用示例,请参见 AAC 音频编码指南。

需要 ffmpeg 配置 :--enable-libfdk-aac( 加上--enable-nonfree,如果包含了 --enable-gpl).

安装方式:

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


2.6 libmp3lame


MP3 音频编码器

需要 ffmpeg 配置 :--enable-libmp3lame.

如果你libmp3lame-dev的版本≥ 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


2.7 libopus


Opus 音频解码器和编码器

需要 ffmpeg 配置 :--enable-libopus.

如果你libopus-dev的版本≥ 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


2.8 libvpx

VP8和VP9视频编码器和解码器。更多相关的信息和使用示例,请参见 VP9视频编码指南。

需要 ffmpeg 配置 :--enable-libvpx.

如果你libvpx-dev的版本≥ 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 --enable-vp9-highbitdepth
PATH="$HOME/bin:$PATH" make
make install


2.9 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



3、 小结


安装已完成,已可使用ffmpeg。新编译ffmpeg项目在 ~/bin






参考:CompilationGuide Ubuntu

CompilationGuide Generic

Encode H.264

Encode AAC

windows编译ffmpeg

ShiftMediaProject

猜你在找的Ubuntu相关文章