简述:
本文介绍如何实现在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
注:服务器用户可以省略 ffplay 和 x11grab 依赖库,即libsdl2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev.
新建目录,后面下载的源文件会放在此目录下:
mkdir ~/ffmpeg_sources
2、编译和安装
你可以编译你需要的相应库的FFmpeg。如果不需要某些 encoders,可以跳过相关部分,然后删除相关的 ./configure配置项。
本指南是非侵入式的,并将在主目录中创建多个目录:
ffmpeg_sources :源文件下载目录。编译完成后可删除该目录。
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。