在法国用二手 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 条评论
还没有评论,写下第一条。