Linux下编译安装ffmpeg(修改-简单复杂最终版本-)

Linux下编译安装ffmpeg(修改-简单复杂最终版本)


目前自己使用的ubuntu下ffmpeg编译安装的最终版本(14.04/16.04环境下都可以)

  1. 安装前置依赖
sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev  libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev libfaac* libopenjpeg * libv4l-dev libvpx-dev libssl-dev

这里的libfaac* libopenjpeg*以我的理解是可以改为libfaac-dev libopenjpeg-dev的,但我还没有去试验,下次遇到的话在试验一下。

2.正常的从官网下载ffmpeg源码,这是官网下载地址:(https://ffmpeg.org/download.html)
3. 解压进入目录文件
4. 配置Makefile编译选项

./configure --prefix=/usr/local/ffmpeg/ --enable-shared --enable-gray --enable-version3 --enable-nonfree --enable-gpl --enable-avresample --enable-libfaac --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-openssl --enable-x11grab –enable-zlib

5.编译安装

make
sudo make install

6.为了后续麻烦这里配置一下共享目录问题(在编译c文件后执行出现的问题,发现是共享目录问题,现在不记得具体错误描述了,就直接写了),输入下面命令:
sudo vim /etc/ld.so.conf
在最后添加一行即可。
/usr/local/ffmpeg/lib
保存退出后执行
sudo ldconfig
7.到这里基本上就结束了,为了方面可以在/etc/profile文件中将ffmpeg命令添加进PATH中(我这是对所有用户可用,具体可以另行喜好设置)
sudo vim /etc/profile
找到export行,在下面一行添加
export PATH=/usr/local/ffmpeg/bin/:$PATH
保存后执行
source /etc/profile
现在就可以在当前bash终端中正常使用ffmpegle了。
重启后就可以正常使用了,建议重启。


具体安装的环境:Ubuntu14.04下安装ffmpeg-3.1.3

  1. 第一遍是使用的网上教程,没有安装yasm,安装到最后也没有成功,或者是我当时理解不够。重新安装时是先安装了yasm;
sudo apt-get install yasm

2.正常的从官网下载ffmpeg源码,这是官网下载地址:(https://ffmpeg.org/download.html)
3. 解压进入目录文件
4. 配置Makefile编译选项

./configure --enable-shared --prefix=/usr/local/ffmpeg

5.编译安装

make
sudo make install

6.为了后续麻烦这里配置一下共享目录问题(在编译c文件后执行出现的问题,发现是共享目录问题,现在不记得具体错误描述了,就直接写了),输入下面命令:
sudo vim /etc/ld.so.conf
在最后添加一行即可。
/usr/local/ffmpeg/lib
保存退出后执行
sudo ldconfig
7.到这里基本上就结束了,为了方面可以在/etc/profile文件中将ffmpeg命令添加进PATH中(我这是对所有用户可用,具体可以另行喜好设置)
sudo vim /etc/profile
找到export行,在下面一行添加
export PATH=/usr/local/ffmpeg/bin/:$PATH
保存后执行
source /etc/profile
现在就可以在当前bash终端中正常使用ffmpegle了。
重启后就可以正常使用了,建议重启。


上面是我之前编译安装的比较简单的一个方法,但最近由于项目需要,需要通过ffmpeg录制音频,之前安装的版本就无能为力了,所以重新安装了一下,做个记录,应该算是最全的安装了。

首先说一下卸载的问题,因为是编译安装的,所以没有用命令去remove,而是直接将/usr/local/ffmpeg直接删除的。

首先安装以下软件包:

sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev  libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev

接下来需要下载并编译的是x265,fdk-aac,vpx和ffmpeg本身。

为了和之前版本一致,所以也是安装在/usr/local/ffmpeg,首先添加两个目录:

cd /usr/local
sudo mkdir ffmpeg
sudo mkdir ffmpeg_source

然后,把源码包下载到/opt/ffmpeg_sources/目录下。

因为不采用snapshot版本,所以我们可以直接下载某个稳定版源码。下载地址如下:

x265: https://bitbucket.org/multicoreware/x265/downloads/x265_1.9.tar.gz

fdk-aac: https://github.com/mstorsjo/fdk-aac/archive/v0.1.4.zip

vpx: http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2

ffmpeg: http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2

编译x265

依次执行以下命令:

cd /usr/local/ffmpeg_sources
tar -zxvf x265_1.9.tar.gz
cd x265_1.9/build/linux
PATH="/usr/local/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/usr/local/ffmpeg" -DENABLE_SHARED:bool=off ../../source
make
sudo make install
make distclean

编译fdk-aac

依次执行以下命令:

cd /usr/local/ffmpeg_sources
unzip fdk-aac-0.1.4.zip
cd fdk-aac-0.1.4
autoreconf -fiv
./configure --prefix="/usr/local/ffmpeg" --disable-shared
make
sudo make install
make distclean

编译vp8/vp9

依次执行以下命令:

cd /usr/local/ffmpeg_sources
tar -xjvf libvpx-1.5.0.tar.bz2
cd libvpx-1.5.0
PATH="/usr/local/bin:$PATH" ./configure --prefix="/usr/local/ffmpeg" --disable-examples --disable-unit-tests
PATH="/usr/local/bin:$PATH" make
sudo make install
make clean

编译ffmpeg

最后一步就是编译FFmpeg了:
进入目录,解压源码。
配置Makefile文件

PATH="/usr/local/bin:$PATH" PKG_CONFIG_PATH="/usr/local/ffmpeg/lib/pkgconfig"  ./configure \
  --prefix="/usr/local/ffmpeg" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I/usr/local/ffmpeg/include" \
  --extra-ldflags="-L/usr/local/ffmpeg/lib" \
  --bindir="/usr/local/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="/usr/local/bin:$PATH" make
sudo make install
make distclean
hash -r

和上面一样,在配置以下环境

6.为了后续麻烦这里配置一下共享目录问题(在编译c文件后执行出现的问题,发现是共享目录问题,现在不记得具体错误描述了,就直接写了),输入下面命令:
sudo vim /etc/ld.so.conf
在最后添加一行即可。
/usr/local/ffmpeg/lib
保存退出后执行
sudo ldconfig
7.到这里基本上就结束了,为了方面可以在/etc/profile文件中将ffmpeg命令添加进PATH中(我这是对所有用户可用,具体可以另行喜好设置)
sudo vim /etc/profile
找到export行,在下面一行添加
export PATH=/usr/local/ffmpeg/bin/:$PATH
保存后执行
source /etc/profile
现在就可以在当前bash终端中正常使用ffmpegle了。
重启后就可以正常使用了,建议重启。


附一个参考链接:

www.liaoxuefeng.com/article/001456198314370db046cbe5e5a45388bf3ade4bc2c5cb0000

你可能感兴趣的:(FFMPEG,安装手记)