Ubuntu20.04 编译安装 FFmpeg 详细教程

本文目录导航

    • 0.预备软件包
      • 0.1 FFmpeg
      • 0.2 SDL2
    • 1.安装编译所需工具
      • 1.1 安装 aptitude
      • 1.2 安装 gcc、g++
      • 1.3 安装 yasm、nasm
    • 2.安装依赖库
    • 3.编译 FFmpeg
    • 4.配置 FFmpeg
      • 4.1 配置环境变量
      • 4.2 配置动态链接库


0.预备软件包

0.1 FFmpeg

FFmpeg 源码下载地址http://ffmpeg.org/download.html
下载后解压,此处默认您知道如何在 Ubuntu 下解压压缩包。

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

aptitudeapt-get一样,是 Debian 系中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些,当 aptitude 在删除一个包时,会同时删除本身所依赖的包。

后面安装一些依赖库时,使用 aptitude 包管理工具。
安装命令:

sudo apt install aptitude

1.2 安装 gcc、g++

gccg++ 不多解释,分别为 cc++ 编译器。
安装命令:

sudo aptitude install build-essential

1.3 安装 yasm、nasm

yasmnasm 是两个汇编器,编译 FFmpeg 需要用到。
安装命令:

sudo aptitude install yasm nasm

2.安装依赖库

FFmpeg 的安装依赖许多库(如,音频编码库,音频解码库,视频编解码库等),这里不介绍每个库的具体作用,按照命令安装即可。
安装命令:

sudo apt-get install libgmp3-dev
sudo apt install pkg-config
sudo apt install gnutls-bin
sudo aptitude install libaom-dev
sudo aptitude install libass-dev
sudo aptitude install libbluray-dev
sudo aptitude install libfdk-aac-dev
sudo aptitude install libmp3lame-dev
sudo aptitude install libopencore-amrnb-dev
sudo aptitude install libopencore-amrwb-dev
sudo aptitude install libopenmpt-dev
sudo aptitude install libopus-dev
sudo aptitude install libshine-dev
sudo aptitude install libsnappy-dev
sudo aptitude install libsoxr-dev
sudo aptitude install libspeex-dev
sudo aptitude install libtheora-dev
sudo aptitude install libtwolame-dev
sudo aptitude install libvo-amrwbenc-dev
sudo aptitude install llibvpx-dev
sudo aptitude install libwavpack-dev
sudo aptitude install libwebp-dev
sudo aptitude install libx264-dev
sudo aptitude install libx265-dev
sudo aptitude install libxvidcore-dev
sudo aptitude install liblzma-dev

3.编译 FFmpeg

  • 编译步骤1:

./configure --prefix=/home/annjeff/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-libwavpack --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-avisynth --enable-libopenmpt --enable-libfdk-aac --enable-nonfree

注意1: --prefix=/home/annjeff/FFmpeg 用于指定编译后 FFmpeg 库文件路径,其中 annjeff 是本文用户名,这里需要按照您的实际位置进行更改.
注意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


然后,真的可以正常运行了。

你可能感兴趣的:(Multimedia)