Ubuntu 20.04 编译安装FFmpeg及错误分析与解决方案
FFmpeg 是一个强大的多媒体处理工具,可以处理音频、视频等多种格式。本文将详细介绍在 Ubuntu 20.04 上编译和安装 FFmpeg 的步骤,并分析常见错误及其解决方案。
1. 准备工作
在编译安装 FFmpeg 之前,需要安装一些必要的依赖包:
sudo apt updatesudo apt install -y autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev \
libgnutls28-dev libmp3lame-dev libtool libvorbis-dev pkg-config texinfo wget yasm zlib1g-dev \
libunistring-dev
2. 下载 FFmpeg 源代码
从 FFmpeg 官方仓库下载最新的源代码:
cd ~
git clone https://git.ffmpeg.org/ffmpeg.git ffmpegcd ffmpeg
3. 配置编译选项
配置 FFmpeg 编译选项:
./configure --prefix=/usr/local --enable-gpl --enable-libass --enable-libfreetype --enable-libmp3lame \--enable-libvorbis --enable-libx264 --enable-libx265 --enable-nonfree
4. 编译和安装
编译并安装 FFmpeg:
makesudo make install
5. 验证安装
验证 FFmpeg 是否安装成功:
ffmpeg -version
常见错误及解决方案
错误1:缺少依赖包
错误信息:
ERROR: libx264 not found
解决方案:
安装 libx264 相关依赖:
sudo apt install -y libx264-dev
重新运行 ./configure 进行配置。
错误2:编译失败
错误信息:
make: *** [all] Error 2
解决方案:
通常,这是由于某些编译选项或依赖包缺失导致的。可以尝试以下步骤:
确保所有依赖包已正确安装。
检查 config.log 文件,查看具体的错误信息并解决相应的依赖问题。
确保 yasm 或 nasm 已安装:
sudo apt install -y yasm nasm
清理之前的编译输出,并重新配置和编译:
make clean
./configure --prefix=/usr/local --enable-gpl --enable-libass --enable-libfreetype --enable-libmp3lame
--enable-libvorbis --enable-libx264 --enable-libx265 --enable-nonfreemakesudo make install
错误3:链接错误
错误信息:
/usr/bin/ld: cannot find -lx265
解决方案:
这是由于 libx265 库缺失导致的。安装 libx265-dev 包:
sudo apt install -y libx265-dev
重新运行 ./configure 进行配置。
======================================
一.编译x264(在编译前确保安装了pkg-config,默认在/usr/share下)
1.下载x264源代码:(我下载到了~/Downloads下,各位随意就好)
git clone https://code.videolan.org/videolan/x264.git
2.下载好后,将x264文件夹移动到/usr/local/下:
sudo mv x264 /usr/local
3.x264源码的配置和编译
cd /usr/local/x264
sudo ./configure --enable-static --prefix=/usr/local/x264
make -j16(具体看自己电脑几个线程)
sudo make install
注:prefix用来指定bin,include,lib文件夹的生成位置;如果不指定,默认安装在/usr/local下
4.重点来了!!!【ERROR: x264 not found using pkg-config】
如果使用prefix指定了以上路径,一定要进行以下操作,否则编译ffmpeg时会出上述问题
在/usr/local/x264/lib/pkgconfig/下有一个x264.pc文件,将它移动到/usr/share/pkgconfig下【pkg-config会搜索这个路径下的.pc文件】
sudo mv /usr/local/x264/lib/pkgconfig/x264.pc /usr/share/pkgconfig
最后,将x264放到系统环境变量中去:
sudo gedit /etc/profile
在末尾加上:export PATH=$PATH:/usr/local/x264/bin
然后执行:source /etc/profile
二.编译ffmpeg-6.0
1.官网下载源码(http://ffmpeg.org/),我下载到了~/Downloads下
2.解压并移动
sudo tar xvJf ffmpeg-6.0.tar.xz
sudo mv ffmpeg-6.0 /usr/local
3.ffmpeg-6.0的配置和编译
sudo ./configure --enable-static --enable-gpl --enable-libx264 --prefix=/usr/local/ffmpeg-6.0
--pkgconfigdir=/usr/share/pkgconfig
make -j16
sudo make install
4.系统环境变量设置
sudo gedit /etc/profile
export PATH=$PATH:/usr/local/ffmpeg-6.0/bin
source /etc/profile