linux(centos8)下编译ffmpeg

必要依赖

bash 复制代码
# centos8有些找不到依赖包,需要手动下载源码编译
sudo dnf install -y epel-release
sudo dnf install -y git gcc gcc-c++ make nasm yasm \
  libtool autoconf automake cmake \
  bzip2 bzip2-devel zlib-devel \
  xz xz-devel x264-devel x265-devel \
  openssl-devel freetype-devel \
  libvpx-devel libvorbis-devel \
  libass-devel opus-devel

nasm

bash 复制代码
cd /usr/local/src
wget https://www.nasm.us/pub/nasm/stable/nasm-2.16.03.tar.xz
tar -xf nasm-2.16.03.tar.xz
cd nasm-2.16.03
./configure
make -j$(nproc)
sudo make install

x264

bash 复制代码
cd /usr/local/src
git clone --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-static --enable-pic
make -j$(nproc)
sudo make install

x265

bash 复制代码
cd /usr/local/src
git clone --depth 1 https://bitbucket.org/multicoreware/x265_git.git x265
cd x265/build/linux
mkdir build && cd build
cmake ../../../source -DCMAKE_INSTALL_PREFIX=/usr/local
# ./multilib.sh
make -j$(nproc)
sudo make install

# 查看安装是否成功
pkg-config --modversion x265

yasm

bash 复制代码
cd /usr/local/src
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0

./configure --prefix=/usr/local
make -j$(nproc)
sudo make install

yasm --version

libvpx

bash 复制代码
cd /usr/local/src
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix=/usr/local --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make -j$(nproc)
sudo make install

fdk-aac

bash 复制代码
cd /usr/local/src
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --prefix=/usr/local --enable-shared
make -j$(nproc)
sudo make install

sudo ldconfig
ls /usr/local/lib | grep fdk-aac

ffmpeg

下载 FFmpeg 源码

bash 复制代码
cd /usr/local/src
git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

配置 FFmpeg

bash 复制代码
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \
  --prefix=/usr/local/ffmpeg \
  --enable-gpl \
  --enable-nonfree \
  --enable-shared \
  --disable-static \
  --enable-libx264 \
  --enable-libx265 \
  --enable-libvpx \
  --enable-libfdk-aac \
  --enable-libass \
  --enable-libopus \
  --enable-libvorbis \
  --enable-openssl

问题汇总

问题1:libass相关

报错内容:ERROR: libass >= 0.11.0 not found using pkg-config

解决方案:

bash 复制代码
sudo yum install libass-devel

问题2:opus

报错内容:ERROR: opus not found using pkg-config

解决方案:

bash 复制代码
sudo yum install opus opus-devel

问题3:vorbis

报错内容:ERROR: vorbis not found using pkg-config

解决方案:

bash 复制代码
sudo yum install libvorbis-devel

问题4:libvorbis

报错内容:ERROR: vorbis not found using pkg-config

解决方案:

bash 复制代码
# 下载源码方式1(可能会失败)
git clone https://github.com/xiph/vorbis.git
cd vorbis

#下载源码方式2
wget https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz
tar -xzf libvorbis-1.3.7.tar.gz
cd libvorbis-1.3.7

# 解压、配置、编译和安装
./autogen.sh  # 可能需要
./configure --prefix=/usr/local --enable-shared
make -j$(nproc)
sudo make install

编译并安装

bash 复制代码
make -j$(nproc)
sudo make install

动态库拷贝

将上述/usr/local/lib/下编译好的动态库拷贝至/usr/local/ffmpeg/lib。

环境变量配置

bash 复制代码
export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH

查看版本

bash 复制代码
ffmpeg -version
相关推荐
治愈系贝壳2 分钟前
ARM --- day 6 时钟
linux·arm开发·学习
FII工业富联科技服务4 分钟前
从灯塔工厂到AI Factory新模式:AI正在重构制造业的四大核心能力
大数据·运维·人工智能·重构·ar·制造
小五传输5 分钟前
自主可控建设指南:Serv-u替代方案,实现平滑迁移业务不中断
大数据·运维·安全
jun_bai10 分钟前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器
BullSmall17 分钟前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
AAA@峥24 分钟前
CentOS7 搭建 ELK 企业级日志集群:从部署到日志可视化完整实战
运维·elk·centos
ZKNOW甄知科技31 分钟前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
叮咚侠37 分钟前
docker安装的kibana+elasticsearch,突然kibana界面打不开了
运维·jenkins
nVisual39 分钟前
数据中心机柜负载均衡与三相相位监控方案
运维·网络·负载均衡·数据中心布线·综合布线管理软件
国服第二切图仔42 分钟前
02-breakpoint-system
运维·harmonyos