centos编译安装ffmpeg

centos编译安装ffmpeg

这篇指南基于最新版本的精简版centos系统,并提供ffmpeg外部转码依赖包的本地化安装方法。这篇文章同样适用于__RHEL和Fedora系统__。

你同样可以参考《通用编译指南》获取更多编译软件的信息

懒人或者没有编译基础自身的人可以直接获取稳定版本的ffmpeg。稳定版本不支持非免费的编码器。

这篇指南是为非侵入性设计的,且会在你的home目录创建一个文件夹:

  • ffmpeg_source-源码文件将会下载到这里。结束编译之后你可以删除这个文件夹
  • ffmpeg_build-文件和库被安装的目录。结束编译之后你可以删除这个文件夹
  • bin-软件(ffmpegffplayffserverx264x265)安装所在目录。

通过《还原变化指南》你可以轻松的还原以上操作。

安装依赖

注意:#标识符表示需要由超级管理员或者root用户执行、且仅在这篇指南需要yum命令

安装依赖。这些是编译软件时所需的依赖,当你完成编译,可以移除这些依赖(make安装的软件例外;通过make安装的软件需要默认安装,而且需要操作都需要依赖这些软件)。

# yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel openssl

在你的主目录创建一个新目录,所有的源码都会放在这个目录:

mkdir ~/ffmpeg_sources

编译&安装

提示:如果你不需要某些编码器,你可以跳过相关的章节,然后移除在编译ffmpeg./configure中的选项。比如:如果你不需要libvorbis,则跳过这个包的安装步骤,然后移除ffmpeg安装章节的--enable-libvorbis选项。

NASM

某些包会用到这个编码器。建议安装!否则你的安装结果会非常慢。

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

Yasm

某些包会用到这个编码器。建议安装!否则你的安装结果会非常慢。

cd ~/ffmpeg_sources
curl -O -L 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

libx264

H.264视频编码器。可以查看 H.264 Encoding Guide 获取更多信息和使用示例。

编译ffmpeg时需要加上--enable-gpl --enable-libx264

cd ~/ffmpeg_sources
git clone --depth 1 http://git.videolan.org/git/x264
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install

警告:如果在运行./configure命令时得到Fond no assembler.Minium version is nasm-2.13 或者类似的错误,表示已经安装了旧版本的nasm。运行yum remove nasm && hash -r 然后x264将会使用你刚才安装的nasm。请确保当前环境可以解析到nasm的路径。

libx265

H.265/HEVC视频编码器。查看 H.265 Encoding Guide 获取更多信息和使用示例。

编译ffmpeg时需要加上--enable-gpl --enable-libx264

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

libfdx_aac

AAC音频编码器。查看 AAC Audio Encoding Guide 获取更多信息和使用示例。

编译ffmpeg时需要加上--enable-libfdk\_aac(如果加了--enable-gpl ,则需要加上--enable-nonfree)。

cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

libmp4lame

mp3音频编码器。

编译ffmpeg时需要加上--enable-libmp3lame

cd ~/ffmpeg_sources
curl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install

libupus

Opus音频编码和解码器。

编译ffmpeg时需要加上--enable-libopus

cd ~/ffmpeg_sources
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz
tar xzvf opus-1.2.1.tar.gz
cd opus-1.2.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

libogg

Ogg比特流库。libvorbis需要依赖这个库。

cd ~/ffmpeg_sources
curl -O -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz
tar xzvf libogg-1.3.3.tar.gz
cd libogg-1.3.3
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

libvorbis

Vorbis音频解码器。需要依赖libogg.

编译ffmpeg时需要加上--enable-libvorbis

cd ~/ffmpeg_sources
curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
tar xzvf libvorbis-1.3.5.tar.gz
cd libvorbis-1.3.5
./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install

libvpx

VP8/VP9视频解码和编码器。查看 VP9 Video Encoding Guide 获取更多信息和使用示例。

编译ffmpeg时需要加上--enable-libvpx

cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install

FFmpeg

cd ~/ffmpeg_sources
curl -O -L https://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" \
  --extra-libs=-lpthread \
  --extra-libs=-lm \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libfdk_aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-openssl
make
make install
hash -r

编译完成!ffmpeg(包括ffprobeffserverlamex264)应该可以使用了!

本文作者:Abbey

本文链接:https://www.abbeyok.com/archives/155

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

loc争议小记... <<
0 条评论

请先登陆注册

已登录,注销 取消