FFmpeg - Linux下编译FFmpeg

文章目录

  • 1. 下载源码
  • 2. 编译安装
    • 2.1 安装在默认目录(推荐)
    • 2.2 安装在自定义目录
    • 2.3 部分编译参数解释
  • 3. 问题

1. 下载源码

地址:https://ffmpeg.org/download.html

首先安装依赖库:

apt -y install autoconf automake libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev

# 汇编库
apt -y install yasm nasm

# 视频库
apt -y install libx264-dev libx265-dev

# 音频库
apt -y install libfdk-aac-dev libmp3lame-dev libopus-dev

2. 编译安装

2.1 安装在默认目录(推荐)

编译:

cd ffmpeg-5.1.3
./configure --enable-ffplay --enable-libx264 --enable-libx265 --enable-pic --enable-libvorbis --enable-libass --enable-nonfree --enable-libass --enable-libfreetype --enable-libfdk-aac --enable-shared --enable-gpl --enable-libmp3lame --enable-libopus --disable-x86asm 
make -j16
make install

配置环境:
vim ~/.bashrc
在此文件的最后一行添加路径:
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
然后执行: source ~/.bashrc 以使配置生效。

查看版本:
ffmpeg -version

2.2 安装在自定义目录

编译:

cd ffmpeg-5.1.3
./configure --prefix=/usr/local/ffmpeg --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --enable-ffplay --enable-libx264 --enable-libx265 --enable-pic --enable-libvorbis --enable-libass --enable-nonfree --enable-libass --enable-libfreetype --enable-libfdk-aac --enable-shared --enable-gpl --enable-libmp3lame --enable-libopus --disable-x86asm 
make -j16
make install

配置环境:
安装在自定义目录,如果需要使用ffmpeg指令的话,需要配置FFmpeg依赖环境:
vim ~/.bashrc
在此文件的最后一行添加路径:
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:${LD_LIBRARY_PATH}
export PATH=/usr/local/ffmpeg/bin:$PATH
然后执行 source ~/.bashrc 以使配置生效。

查看版本:
ffmpeg -version

2.3 部分编译参数解释

–enable-debug=3 能用来调试,
–disable-static --enable-shared 不生成静态库,生成动态库

3. 问题

(1) 报错:asm/yasm not found or too old. Use --disable-x86asm for a crippled build
需要先安装 yasm

(2) 缺少ffplay
需要安装 sdl2
sudo apt install sdl2 (不确定,要用apt search sdl2 搜索一下) 或者 brew install sdl2 (mac下试过可行)
修改config.h中的 #define CONFIG_FFPLAY 0 改为 #define CONFIG_FFPLAY 1

你可能感兴趣的:(FFmpeg,linux,ffmpeg,音视频,c++)