问题现象
在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镜像重建容器
步骤4:验证安装
进入Plex Web界面 → 设置 → 转码器,确认:
✅ 可用时使用硬件加速 已勾选
✅ 使用硬件加速视频编码 已勾选
转码器临时目录 明确填写为 /transcode
播放带ASS字幕的视频,在Plex Dashboard中查看视频流是否显示 (hw) 标志。
为什么LinuxServer.io镜像更好?
驱动完整性:内置完整Intel i915驱动栈,对核显支持更完善
权限优化:自动适配UNRAID的99/100用户组,无需手动调整
社区维护:更频繁的更新和针对UNRAID的专项优化
调试信息:日志更详细,便于排查问题
总结
在UNRAID平台部署Plex时,优先选择LinuxServer.io镜像而非官方镜像,尤其在需要硬件转码和字幕烧录的场景下。此方案同样适用于其他需要硬件加速的Docker应用(如Jellyfin、Emby),建议统一使用LinuxServer.io版本以获得最佳兼容性。
一句话总结:UNRAID + Plex + 硬解 + ASS字幕 = 必用lscr.io/linuxserver/plex镜像