FFmpeg 安装教程
2017-12-08 10:34 浏览(1025

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

之前一直没找到官方的安装教程,都是自己下载源码安装,结果导出都是错误。这里先贴一个官网的安装教程(服务器是Centos)https://trac.ffmpeg.org/wiki/CompilationGuide/Centos 。但是安装后还是有错,所以这里记录一下自己的安装过程



目录定义

/usr/local/src/ffmpeg_sources           下载安装包路径

/root/ffmpeg_build                            构建和函数库目录

/root/bin                                            安装函数库后的执行目录



安装依赖库

yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel
cd cd /usr/local/src/
mkdir ffmpeg_sources
cd ffmpeg_sources



NASM 安装

$HOME 为用户目录 ,echo $HOME 查看位置

curl -O -L 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
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make && make install



Yasm 安装

cd ..
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 视频编码器

ffmpeg 编译时要加上参数 --enable-gpl --enable-libx264

cd ..
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

有可能会出现这样的错误

Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.

请安装对应版本或更高版本的 nasm



libx265 安装

H.265/HEVC 视频编码器

ffmpeg 编译时要加上参数 --enable-gpl --enable-libx265

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



libfdk_aac 安装

AAC 音频编码器

ffmpeg 编译时要加上参数 --enable-libfdk_aac (和 --enable-nonfree 若你加了 –enable-gpl 参数的话)

cd /usr/local/src/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



libmp3lame 安装

mp3 音频编码器

ffmpeg 编译时要加上参数 --enable-libmp3lame

cd ..
curl -O -L 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" --bindir="$HOME/bin" --disable-shared --enable-nasm
make && make install

注:最新版是 3.100,但是 ffmpeg 编译时会错误 ERROR: libmp3lame >= 3.98.3 not found

因为 3.100 < 3.98.3,这个版本号真是醉了,只好下载 3.99.5,地址 https://sourceforge.net/projects/lame/files/lame/

但在我的服务器上,安装了3.99.5还是一直报这个错误,不知道为什么

/root/bin/lame --help
LAME 64bits version 3.99.5 (http://lame.sf.net)

在编译 ffmpeg 之前,修改 ffmpeg  的 configure 文件,/usr/local/src/ffmpeg_sources/ffmpeg/configure

找到 enabled libmp3lame ,在它后面加上 -lm,

enabled libmp3lame        && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame -lm



libopus 安装

Opus 音频解码器和编码器

ffmpeg 编译时要加上参数 --enable-libopus

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



libogg 安装

比特流库,需要 libtheora 和 libvorbis

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



libvorbis 安装

Vorbis 音频编码器,需要 libogg

ffmpeg 编译时要加上参数 --enable-libvorbis

cd ..
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 编码器和解码器

ffmpeg 编译时要加上参数 --enable-libvpx

https://chromium.googlesource.com/webm/libvpx.git 访问不了,你懂的,还好我在github 上找到了 https://github.com/webmproject/libvpx.git

cd ..
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make && make install



FFmpeg 安装

cd ..
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 \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libfdk_aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
make
make install

若报错 ERROR: libmp3lame >= 3.98.3 not found

请看 libmp3lame 安装

安装完成,测试一下。我在 /mnt/hgfs/www/test 目录下放了个视频 1080.mp4 ,使用 ffmpeg 提取视频中图像

cd /mnt/hgfs/www/test
ffmpeg -ss 00:00:10  -i 1080.mp4 -f mjpeg -r 1 -vframes 1 -an sample.jpg

若提示 ffmpeg 命令不存在,就将 /root/bin/ 下面的文件复制一份到 /usr/local/bin/

cp -i /root/bin/ffmpeg /usr/local/bin/ffmpeg
cp -i /root/bin/ffprobe /usr/local/bin/ffprobe
....


提取的图片 sample.jpg


评论(0)
发布评论
回复X
聊天室(0