Administrator
发布于 2025-12-08 / 4 阅读
0

UNRAID Docker中Plex播放ASS字幕失败并提示TPU错误的解决方案

问题现象

在UNRAID系统上使用Docker部署Plex Media Server时,播放带ASS字幕的视频会出现错误:

TPU: hardware transcoding: hardware transcoding: Failed to download sub-stream to temporary file

此时视频无法播放,但使用SRT字幕或不使用字幕时可以正常播放,只是没有硬解(HW)标识,仅为直接串流。有趣的是,同一视频在群晖NAS的Plex套件中可以正常播放ASS字幕并启用硬解。

问题根源

此问题并非硬件或配置错误,而是Plex官方Docker镜像(plexinc/pms-docker​)在UNRAID环境下的兼容性问题。官方镜像对Intel核显驱动支持不完整,且在处理ASS字幕烧录(burn-in)与硬件加速的交互时存在缺陷。

解决方案

步骤1:备份数据

cp -r /mnt/cache/appdata/plex /mnt/cache/appdata/plex-backup

步骤2:停止并删除原有容器

在UNRAID Docker界面停止Plex-Media-Server​容器,然后删除。

步骤3:使用LinuxServer.io镜像重建容器

配置项

Repository

​lscr.io/linuxserver/plex:latest​

Network Type

​host​ (推荐,UPnP兼容更好)

PUID

​99​

PGID

​100​

VERSION

​docker​

Device

​/dev/dri​ → /dev/dri​

Path (转码目录)

​/transcode​ → /mnt/cache/appdata/plex-transcode​

步骤4:验证安装

进入Plex Web界面 → 设置 → 转码器,确认:

  • ✅ 可用时使用硬件加速 已勾选

  • ✅ 使用硬件加速视频编码 已勾选

  • 转码器临时目录 明确填写为 /transcode​

播放带ASS字幕的视频,在Plex Dashboard中查看视频流是否显示 (hw)​ 标志。

为什么LinuxServer.io镜像更好?

  1. 驱动完整性:内置完整Intel i915驱动栈,对核显支持更完善

  2. 权限优化:自动适配UNRAID的99/100用户组,无需手动调整

  3. 社区维护:更频繁的更新和针对UNRAID的专项优化

  4. 调试信息:日志更详细,便于排查问题

总结

在UNRAID平台部署Plex时,优先选择LinuxServer.io镜像而非官方镜像,尤其在需要硬件转码和字幕烧录的场景下。此方案同样适用于其他需要硬件加速的Docker应用(如Jellyfin、Emby),建议统一使用LinuxServer.io版本以获得最佳兼容性。

一句话总结:UNRAID + Plex + 硬解 + ASS字幕 = 必用lscr.io/linuxserver/plex镜像