0.预备软件包
0.1 FFmpeg
FFmpeg 源码下载地址
:http://ffmpeg.org/download.html
下载后解压,此处默认您知道如何在 Ubuntu 下解压压缩包。下载 FFmpeg-n4.2.4.tar.gz
0.2 SDL2
有些朋友肯定好奇,我们明明在编译安装
FFmpeg
,这里为什么要下载SDL2
。这是因为,SDL
是编译 ffplayer 所必须的外部库,而 Ubuntu 环境并不会对其默认安装,故而需要用户手动安装。而SDL1
有些过时,目前使用广泛的是SDL2
,因此这里推荐安装SDL2
。
SDL 下载地址
:http://www.libsdl.org/download-2.0.php
下载后,同样解压,然后进入加压目录
S1执行命令:./configure --prefix=/usr/local
S2执行命令:sudo make
S3执行命令:sudo make install
1.安装编译所需工具
1.1 安装 aptitude
aptitude
与apt-get
一样,是Debian
系中功能极其强大的包管理工具。与apt-get
不同的是,aptitude
在处理依赖问题上更佳一些,当aptitude
在删除一个包时,会同时删除本身所依赖的包。
后面安装一些依赖库时,使用 aptitude
包管理工具。
安装命令:
sudo apt install aptitude
1.2 安装 gcc、g++
gcc
与 g++
不多解释,分别为 c
、c++
编译器。
安装命令:
sudo aptitude install build-essential
1.3 安装 yasm、nasm
yasm
、nasm
是两个汇编器,编译 FFmpeg 需要用到。
安装命令:
sudo aptitude install yasm nasm
2.安装依赖库
FFmpeg 的安装依赖许多库(如,音频编码库,音频解码库,视频编解码库等),这里不介绍每个库的具体作用,按照命令安装即可。
安装命令:
apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
libgmp3-dev
pkg-config gnutls-bin
aptitude install -y libaom-dev
libass-dev libbluray-dev libfdk-aac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenmpt-dev libopus-dev libshine-dev libsnappy-dev libsoxr-dev libspeex-dev libtheora-dev libtwolame-dev libvo-amrwbenc-dev libvpx-dev libwavpack-dev libwebp-dev libx264-dev libx265-dev libxvidcore-dev liblzma-dev libgnutls28-dev
3.编译 FFmpeg
- 编译步骤1:
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-lzma --enable-zlib --enable-gmp --enable-libvorbis --enable-libvo-amrwbenc --enable-libspeex --enable-libxvid --enable-libaom --enable-libopenmpt --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libpulse --enable-nonfree --enable-debug=3 --disable-optimizations --disable-asm --disable-stripping
注意1: --prefix=/usr/local/ffmpeg
用于指定编译后 FFmpeg 库文件路径
注意2:上述 --enable-libxxx
即指定需要同 FFmpeg 一起安装的工具库,这里安装的比较全面,你可以根据个人需求安装,如果硬盘空间足够,建议一起安装,避免以后需要使用时麻烦。
- 步骤2:
sudo make
- 步骤3:
sudo make install
如果您顺利执行到这里,说明您已经安装成功。
这是,您可以在终端输入命令:ffmpeg
,检验安装成果。什么?报错了?
哦哦,还没有配置环境变量 ^ _ ^。
4.配置 FFmpeg
4.1 配置环境变量
将
FFmpeg
添加至环境变量:sudo vim ~/.bashrc
将光标调至文件末尾(快捷方式:shfit + g)
添加如下内容:export PATH=$PATH:FFmpeg安装路径/bin
保存文件(快捷键)::wq
再试试,命令行中输入 ffmpeg
怎么又还是报错?
ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
4.2 配置动态链接库
上述报错,主要因为
系统找不到 FFmpeg 生成的动态链接库。
如何才能让系统找到动态链接库位置呢?
这里推荐一种常用的方式:
sudo vim /etc/profile
光标移动至文件末尾
添加如下内容:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:FFmpeg 安装路径/lib