在 20.04 容器里手动编译最新 ffmpeg 7.1,能解决所有依赖问题:
sudo apt-get update sudo apt-get install -y build-essential yasm pkg-config git \ libx264-dev libx265-dev libnuma-dev libvpx-dev \ libfdk-aac-dev libopus-dev libaom-dev libass-dev libfreetype6-dev \ libssl-dev libunistring-dev git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ./configure --enable-gpl --enable-nonfree \ --enable-libaom --enable-libx264 --enable-libx265 \ --enable-libvpx --enable-libopus --enable-libfdk-aac \ --enable-cuda --enable-cuvid --enable-nvenc \ --enable-libass --enable-libfreetype make -j$(nproc) sudo make install
完成后检查:
ffmpeg -version ffmpeg -encoders | grep av1_nvenc
👌 明白了:
-
必须透明背景 → 只能用支持 Alpha 通道 的编码格式。
-
必须高质量 → 不能拉高 CRF(数值要保持低)。
-
有 GPU → 就该上 GPU 硬件加速,不然 VP9 软件编码必然慢得要死。
🎯 关键点
-
VP9 (libvpx-vp9) 软件编码:慢到爆炸,尤其带 alpha。
-
透明通道常见选择:
-
VP9 (yuva420p) ✅ 支持 alpha
-
ProRes 4444 ✅ 支持 alpha,专业视频编辑常用,超快(但文件大)
-
AV1 (yuva420p/yuva444p) ✅ 支持 alpha,新一代编码,更高效,但需要 NVIDIA 新显卡 + ffmpeg 编译支持 av1_nvenc
-
✅ GPU 加速方案
方案 1:NVIDIA + AV1(推荐,质量高 + 支持 alpha)
如果你的 GPU 支持 AV1 硬件编码(RTX 40 系列 + 新 ffmpeg 编译),可以用:
-c:v av1_nvenc -pix_fmt yuva420p -cq 10 -preset p5
-
-cq 10
≈ 高质量(范围 0~51,越低质量越高)。 -
-preset p5
平衡质量与速度,可以换成p7
极致质量。 -
透明背景保留(yuva420p)。
-
比 VP9 快一个数量级。
方案 2:Apple ProRes 4444(兼容性最好)
-c:v prores_ks -pix_fmt yuva444p10le -profile:v 4
-
profile:v 4
= ProRes 4444,支持 alpha 通道。 -
基本无损,速度超快。
-
缺点:文件巨大(几百 MB ~ GB)。
-
优点:后期剪辑软件 (Premiere, Final Cut, DaVinci) 直接支持。
方案 3:继续 VP9 + 多线程优化(如果没 AV1)
-c:v libvpx-vp9 -pix_fmt yuva420p -crf 10 -b:v 0 -row-mt 1 -threads 16
-
-row-mt 1
开启行级多线程(VP9 特有)。 -
-b:v 0
表示完全 CRF 模式,保质量。 -
速度比你现在快一些,但远不如 GPU。
你现在的 ffmpeg 编译版本是 4.2.7 (Ubuntu 20.04 默认 apt 版) ,这个版本 太老 ,里面没有 av1_nvenc
,所以你只能看到 h264_nvenc / hevc_nvenc
。
⚠️ 要用 AV1 硬件编码 (av1_nvenc),必须满足:
-
显卡:NVIDIA RTX 40 系列(Ada Lovelace 架构,4090/4080/4070...),或者新出的 RTX 5000 系列。
-
驱动 :至少 NVIDIA 522.xx 及以上。
-
ffmpeg 版本:≥ 5.2(推荐 6.x / 7.x)。
-
编译时启用 :
--enable-nvenc --enable-libaom
。