Plex 放到 UNRAID 的 Docker 上之后,播带 ASS 字幕的片子直接报错:
TPU: hardware transcoding: Failed to download sub-stream to temporary file
视频打不开。换 SRT 字幕就正常,但走的是直接串流(没硬解)。同一部片子放到群晖的 Plex 套件上,ASS 字幕硬解正常。
结论:镜像的锅
官方镜像 plexinc/pms-docker 对 Intel 核显驱动支持不完整,处理 ASS 字幕烧录(burn-in)时跟硬解引擎配合有问题。不是配置错了,是镜像本身就这样。
换 linuxserver/plex——LSIO 的镜像对 Intel QuickSync 的 user map 和驱动路径处理得更仔细:
# 备份数据
cp -r /mnt/user/appdata/plex /mnt/user/appdata/plex-backup
# 停止原容器,删掉
# 用 linuxserver/plex 重建,关键参数:
# - /dev/dri:/dev/dri (核显直通)
# - PUID=99, PGID=100 (UNRAID 标准权限)
重建之后,ASS 字幕正常烧录,硬解也回来了。
顺便说一句
这个 TPU 错误跟 TPU 硬件没关系——错误信息里的 "TPU" 是 Plex 内部 transcoder 的一个模块名。查了不少帖子都有这个误解。UNRAID 上跑 Plex,用 linuxserver 的镜像省心,官方镜像的坑比想象的多。