Ubuntu22.04安装ffmpeg(v7.0)

安装步骤

1. 创建目录

bash 复制代码
mkdir -p /ffmpeg && cd ffmpeg

2. 下载文件

bash 复制代码
wget https://ffmpeg.org/releases/ffmpeg-7.0.tar.gz

3. 解压

bash 复制代码
tar -zxvf ffmpeg-7.0.tar.gz

4. 安装环境依赖

官网说明:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

bash 复制代码
sudo apt-get update -qq && sudo apt-get -y install \
  autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev \
  libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
  libxcb-xfixes0-dev meson ninja-build pkg-config texinfo wget yasm zlib1g-dev

Ubuntu 20.04需额外安装以下环境
sudo apt install libunistring-dev libaom-dev libdav1d-dev


5. 安装x264依赖(非必须)

安装编译依赖

bash 复制代码
apt-get -y install git-core cmake build-essential

下载源码并编译安装

bash 复制代码
git clone https://code.videolan.org/videolan/x264.git \
  && cd x264 && ./configure --enable-shared --disable-asm --enable-pic \
  && make -j4 && make install && x264 --version

6. 编译安装

推荐编译(二选一)

若未安装上文x264,则从参数中删除--enable-libx264即可

bash 复制代码
cd ffmpeg-7.0 && ./configure --enable-shared --enable-libx264 --enable-gpl --enable-version3 --enable-libxcb

完整编译(二选一)

参数较多,编译后安装体积较大,请根据下文含义按需删减后再编译

bash 复制代码
cd ffmpeg-7.0 && ./configure --enable-shared --enable-libxcb \
  --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

参数解释

编译特性与库支持:

  • --enable-shared: 生成共享库(.so 文件),使FFmpeg库能在多个应用程序间共享。
  • --enable-gpl: 启用使用GNU General Public License (GPL)兼容的组件,允许使用某些可能受GPL约束的编码器或解码器。
  • --enable-version3: 指定启用FFmpeg项目版本3的特性和API。

多媒体框架与图形支持:

  • --enable-sdl2: 启用Simple DirectMedia Layer (SDL)库支持,可能用于FFmpeg的某些工具或测试。
  • --enable-fontconfig: 支持字体配置系统,便于处理字幕和图形中的文字。
  • --enable-gnutls: 启用GnuTLS库支持,用于实现安全的网络传输(如HTTPS)。

编码与解码库:

  • --enable-libass: 支持ASS/SSA字幕格式。
  • --enable-libbluray: 支持Blu-ray Discs的处理。
  • --enable-libmp3lame: 支持LAME MP3编码。
  • --enable-libopencore-amrnb, --enable-libopencore-amrwb: 支持AMR-NB和AMR-WB音频编码/解码。
  • --enable-libopus: 支持Opus音频编码/解码。
  • --enable-libshine: 支持Shine MP3音频编码。
  • --enable-libsnappy: 支持Snappy视频压缩算法。
  • --enable-libsoxr: 支持高质量音频重采样。
  • --enable-libtheora: 支持Theora视频编码/解码。
  • --enable-libtwolame: 支持TwoLAME MP2音频编码。
  • --enable-libvpx: 支持VP8/VP9视频编码/解码。
  • --enable-libwavpack: 支持WavPack音频压缩。
  • --enable-libwebp: 支持WebP图像编码/解码。
  • --enable-libx264, --enable-libx265: 支持H.264和H.265视频编码。
  • --enable-libxvid: 支持Xvid MPEG-4 Part 2视频编码。
  • --enable-libaom: 支持AV1视频编码/解码。
  • --enable-libopenmpt: 支持OpenMPT模块音乐播放。
  • --enable-libfdk-aac: 支持FDK AAC音频编码。
  • --enable-nonfree: 允许使用非自由(专有)软件组件。

其他依赖与功能:

  • --enable-libvorbis: 支持Vorbis音频编码/解码。
  • --enable-libvo-amrwbenc: 支持AMR-WB音频编码。
  • --enable-libspeex: 支持Speex音频编码/解码。
  • --enable-libxml2: 支持XML解析,可能用于处理元数据或字幕。
  • --enable-lzma: 支持LZMA压缩算法。
  • --enable-zlib: 支持Zlib压缩算法。
  • --enable-gmp: 支持GNU Multiple Precision Arithmetic Library,可能用于加密或数学运算。

安装

bash 复制代码
make -j 4 && make install

测试

bash 复制代码
root@86780383202d:/ffmpeg/ffmpeg-7.0# ffmpeg -version
ffmpeg version 7.0 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration:
libavutil      59.  8.100 / 59.  8.100
libavcodec     61.  3.100 / 61.  3.100
libavformat    61.  1.100 / 61.  1.100
libavdevice    61.  1.100 / 61.  1.100
libavfilter    10.  1.100 / 10.  1.100
libswscale      8.  1.100 /  8.  1.100
libswresample   5.  1.100 /  5.  1.100
相关推荐
码农小白12 分钟前
linux驱动:(22)中断节点和中断函数
linux·运维·服务器
4647的码农历程13 分钟前
Linux网络编程 -- 网络基础
linux·运维·网络
yunhuibin1 小时前
ffmpeg面向对象——拉流协议匹配机制探索
学习·ffmpeg
C++忠实粉丝1 小时前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc2 小时前
Linux 环境变量
linux·运维·服务器
hakesashou3 小时前
python如何比较字符串
linux·开发语言·python
Ljubim.te3 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20093 小时前
Linux性能调优技巧
linux
QMCY_jason4 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
慕雪华年4 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch