今日无事!

ffmpeg的编译及安装

C语言 smallfish 151℃ 0评论

文章主要参照:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

文章编译方式的好处是把大部分相关部件编译进临时或本地文件,方便后续清理。但是我在使用的时候总是各种问题,所以非常头疼,所以跟着文章说明,把所有相关性的东西都装到系统了。其实这是个不怎么好的方法,不过后面还是完整编译成功了。参考文章还有一个问题,就是编译不出ffserver。

安装环境:Ubuntu 14.04

编译器:gcc-4.8

1、安装依赖:

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

这里需要说明一下,使用apt-get 命令可能会失败,需要root权限。可以添加sudo或者切换到root用户先。

2、因为我并不是安装在本用户目录下,所以没有创建~/bin目录,但是过程中会有一些临时编译需要的依赖,因此,还是要创建一个ffmpeg_sources目录。

mkdir -p  ~/ffmpeg_sources

以下操作都是在这个目录下进行。

3、安装NASM及Yasm两个汇编编译器

cd ~/ffmpeg_sources && \
wget 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 && \
make -j4 && \
sudo make install

注意:这里跟参考文档开始不一样了。主要区别是我没有修改安装路径,而是使用默认路径。

make命令可以依你的环境,比如四核的可以用make -j4,编译起来会快点。

由于是安装在系统环境下,所以make install 需要root权限。以下类似。

cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz https://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  && \
make -j4 && \
sodu make install

4、安装libx264及libx265

cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
cd x264 && \
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure  --enable-static --enable-pic && \
make -j4 && \
sudo make install

安装libx264及libx265为是了支持x264及x265。

cd ~/ffmpeg_sources && \
if cd x265 2> /dev/null; then hg pull && hg update; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
cd x265/build/linux && \
cmake -G "Unix Makefiles" -DENABLE_SHARED:bool=off ../../source && \
make -j4 && \
sudo make install

这里也没什么好解释的,修改的目的就是为了将两个库安装到默认地址。

5、安装libvpx

这里不能使用参考文章的指令去下载libvpx源码,这个需要自己搜一下了。还是比较好找。

这里假设你已经下载并解压到libvpx目录。

cd libvpx && \
./configure  --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
make -j4 && \
sudo make install

6、安装libfdk-acc、libopus及libmp3lame

cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --disable-shared && \
make -j4 && \
sudo make install
cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --disable-shared && \
make -j4 && \
sudo make install
cd ~/ffmpeg_sources && \
wget -O lame-3.100.tar.gz https://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  --disable-shared --enable-nasm && \
make -j4 && \
sudo make install

7、编译安装ffmpeg静态版本及一般工具(ffmpeg/ffplay/ffprobe/ffserver)

我使用的是ffmpeg-3.4.2,这个也很好找,下好后解压。进入解压目录。

./configure \
--pkg-config-flags="--static" \
--extra-libs="-lpthread -lm" \
--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 && \
make -j4 && \
sudo make install && \
hash -r

至此编译就完成了。使用还是可能会有问题,这个后面再写。

转载请注明:OpenMind » ffmpeg的编译及安装

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址