Immich 中文文档 下载 App

Immich 硬件转码:用 GPU 给视频转码减负的设置方法

视频转码是 Immich 服务器上最重的负载——CPU 满转、风扇起飞,基本都发生在它身上。如果你的机器有 GPU(核显也算),硬件转码可以把这份工作交给专用电路。官方定位是「实验性、可能不适用所有系统」,但对支持的组合,效果立竿见影。

四种加速 API,对号入座

API适用硬件关键前提
NVENCNVIDIA 独显官方驱动;Linux 上还需 NVIDIA Container Toolkit
Quick Sync(QSV)Intel 核显(第 9 代起支持 VP9)部分老内核需按社区指引启用低功耗模式
VAAPIAMD / NVIDIA / Intel 通用接口WSL2 下要用 vaapi-wsl 变体
RKMPPRockchip ARM 芯片(如 RK3588)仅 RK3588 支持硬件色调映射,需装 libmali

明确的不支持:树莓派;WSL2 上的 QSV。编码格式方面 H.264/HEVC 一般都有,但 NVIDIA 和 AMD 的 GPU 不支持 VP9 编码。

启用五步(Docker Compose 路线)

  1. 从官方发布页下载 hwaccel.transcoding.yml,放到 docker-compose.yml 同目录;
  2. 在 compose 文件的 immich-server 服务下,取消 extends 段的注释,把 file 指向上面的文件、service 改成你的后端(如 qsv、nvenc、vaapi);
  3. docker compose up -d 重建容器;
  4. 管理后台 Video Transcoding Settings(视频转码设置) 里,把硬件加速选项改成对应后端并保存;
  5. (可选,建议)同一设置页里打开硬件解码——默认只加速编码,解码仍在 CPU 上;打开后才是全链路加速。

走 Docker Compose Builder 生成的用户可以跳过 1–2 步;Unraid/Portainer 这类不支持多 compose 文件的平台,用官方文档提供的「内联写法」把设备映射直接写进主 compose 文件。

预期管理:三个如实提醒

验证它真的在干活

转码任务跑着时看 GPU 利用率:NVIDIA 用 nvtop,Intel 用 intel_gpu_top。GPU 有动静 + 转码日志无报错 = 生效。 Jasper Lake、Elkhart Lake 这类 U 处理器需要把恒定质量模式设为 CQP——官方文档有专句提示。

和机器学习加速是两回事

GPU 转码加速的是视频处理;人脸识别与语义搜索 的机器学习是另一个容器、另一套加速配置(官方另有 ML 硬件加速专页)。两者可以分别启用,低配机器先救视频转码这个大头。

视频负载搞定后,服务器的日常压力就平了。最后两页:API 密钥与命令行、从谷歌相册搬家。