在法国用二手 HP 小主机跑 Jellyfin,转码别交给核显

去年从 Leboncoin 上花 45 欧收了台 HP EliteDesk 800 G2 Mini,i5-6500T、8G 内存,塞在 Freebox 旁边当 Jellyfin 用。片子不多,大概 1.2T,绝大多数是 1080p 的 H.264,家里两台电视一台 iPad,最多三个人同时看。问题出在两部老动画上,字幕是 ass 格式,播放时 CPU 直接顶到 100%,画面卡成幻灯片。

我先按网上说的开了 QSV:

# /etc/jellyfin/encoding.xml 里改这几行
<HardwareAccelerationType>qsv</HardwareAccelerationType>
<VaapiDevice>/dev/dri/renderD128</VaapiDevice>
<EnableHardwareEncoding>true</EnableHardwareEncoding>

然后把 jellyfin 用户加进 render 组,重启。H.264 直通没问题,但 ass 字幕一开,转码还是掉回软解。查了下,i5-6500T 的 HD 530 对 ass 字幕的合成支持很有限,Jellyfin 这边遇到不支持的字幕格式会退回 CPU 烧字幕。最后我的做法很简单:把这两部动画的字幕用 ffmpeg 压进画面,重新封装一遍。

ffmpeg -i in.mkv -vf "subtitles=in.ass" -c:v libx264 -crf 20 -c:a copy out.mkv

一条 24 分钟的片子跑了大概 7 分钟,一次性的,比每次播放都卡强。代价是字幕不能再关,也不能换语言,但这两部本来就只有中文字幕,无所谓。

为什么不一上来就上硬解:这台机器的核显要跟 Jellyfin 的转码管线、字幕烧录、色彩空间转换一起配合,任何一环不支持就回退,日志里只留一行含糊的提示,很难第一时间看出来。先确认瓶颈在字幕而不是码率,再决定是压字幕还是换机器,省事。

会失效的地方:如果片子是 HEVC 10bit,HD 530 基本没戏,还是得软解或者换 7 代以后的 U;另外 8G 内存跑 Jellyfin 加两路转码会开始吃 swap,我后来加到 16G 才稳。还有一次 Freebox 的 UPnP 把 8096 端口映射搞乱,外面连不上,跟转码无关,但排查时容易被带偏。

你们在法国这边用老机器跑媒体服务,遇到 ass 字幕是压进画面还是干脆换播放器?

0
赞同度 100% · 0 条评论 · 4 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。