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
相关推荐
具身小佬15 分钟前
两轴机械臂,ros2上位机控制,直接输入坐标或者键盘控制,can通信控制
c++·ubuntu
Alphapeople21 分钟前
安装华为CANN模型导出工具
linux·运维·服务器
-森屿安年-23 分钟前
Linux - 进程
linux·操作系统
具身小佬27 分钟前
ros2里面declare_parameter怎么用
ubuntu
Yupureki28 分钟前
《Linux系统编程》16.进程间通信-共享内存
linux·运维·服务器·c语言·数据结构·c++
小小工匠33 分钟前
Linux - ARP Cache:从 `ip neigh` 到交换机转发,一次讲透主机路由表、ARP 缓存与 MAC 表
linux·tcp/ip·缓存
ayaya_mana34 分钟前
NPS 内网穿透,二次开源版新增多种连接协议(含 P2P 配置)
linux·运维·服务器·网络协议·内网穿透·p2p·nps
枫桥骤雨38 分钟前
Ubuntu配置XRDP远程桌面
linux·运维·ubuntu·xrdp
亦良Cool40 分钟前
ubuntu2024使用开启远程控制-使用xrdp
ubuntu
2401_877274241 小时前
System V 共享内存:Linux 最高性能 IPC 的设计与实现
linux·服务器·c语言