
Jellyfin 轉碼唔順唔好急住換機:先查 codec、client 同 GPU
由 Direct Play 開始排查,再揀啱硬件編碼方案
原文個方向啱,但唔好照抄張購物清單
XDA 作者發現朋友經 Jellyfin 遙距睇片時,server CPU 佔用會突然抽高,最後換走舊 GTX 760,改用二手 RTX 2070 Super 負責即時轉碼。按作者自己交代,轉碼移去 GPU 後,CPU 唔再每逢有人串流就大幅加載,其他 server 工作亦順返。呢個經驗指出一個常見誤區:即時轉碼卡住,成套 CPU、主板同 RAM 未必有問題。不過 RTX 2070 Super 只係佢手上啱價又啱用嘅選擇,唔代表每部 Jellyfin server 都要加 NVIDIA 獨立顯示卡。

圖片:Jellyfin
第一件事係睇清楚有冇真係轉緊碼
Jellyfin 官方將播放分成 Direct Play、Remux、Direct Stream 同 Transcode。Direct Play 原檔送到 client,server 幾乎唔使做額外工作;Remux 只換容器;Direct Stream 會處理聲音,但保留原本影片;去到 Transcode,先要重新編碼畫面。所以應該先喺 Jellyfin dashboard 睇播放狀態同轉碼原因,再查電視、手機、瀏覽器或播放 app 支唔支援原檔嘅 container、影片 codec、聲音 codec、解像度、bitrate 同字幕。單係轉用相容度好啲嘅 client,已經可能令一條原本要轉碼嘅片變成 Direct Play。
呢點亦解釋咗點解同一條片喺客廳電視順,轉去另一個瀏覽器就開始窒。Jellyfin 官方 codec 表顯示,HEVC、AV1、H.264 10-bit 同 MKV 嘅支援會跟裝置、作業系統、瀏覽器版本同設定改變。外出串流再多一項限制:上載頻寬或 client 設定嘅 bitrate 太低,server 就算認得原本 codec,都可能要壓細條片。買硬件之前,揀幾條平時真係會播嘅檔案,逐部 client 試一次;咁樣搵到嘅答案,實際過淨係睇 CPU 型號。

圖片:Jellyfin
現有 Intel iGPU 可能已經夠做
Jellyfin 支援 Intel Quick Sync、NVIDIA NVDEC/NVENC,同 Windows 上嘅 AMD AMF;Linux 跑 AMD 就以 VA-API 為主。若部舊電腦有 Intel 內置顯示,值得先確認 BIOS 有冇開啟、Jellyfin 或 Docker 有冇攞到 GPU 裝置權限,再啟用 QSV。官方資料顯示,第 7 代 Core、Apollo Lake、Gemini Lake或之後嘅 Intel GPU 已支援 HEVC 10-bit 解碼同編碼;較新架構再加入 AV1 解碼,Arc A 系列亦支援 AV1 編碼。一般私人影音庫,內置顯示往往已經夠慳位、慳電,亦唔使額外塞一張舊高階卡入機箱。
NVIDIA NVENC 嘅優點係 Windows、Linux 都有成熟支援,Turing 世代處理 H.264 同 HEVC 仍然實用,不過要逐張卡查官方 codec matrix。GT 1030、MX450 呢類型號冇合適 encoder,卡名有「GeForce」唔等於一定識轉碼;可同時編碼幾多條 stream,亦要跟 GPU 型號同 driver 規則核對。AMD 就要再小心一層:Linux 官方建議用 VA-API,Windows 用 AMF,而 RX 6400、RX 6500 系列根本冇影片 encoder。見到平卡就買,好容易插完先發現做唔到目標工作。

圖片:Jellyfin
字幕、HDR 同 10-bit 係最常見暗礁
一張 GPU 支援 HEVC,唔代表整條轉碼流程都留喺 GPU。Jellyfin 官方列出解碼、縮放、格式轉換、HDR tone mapping、字幕燒錄同編碼多個階段;硬件或 driver 做唔到其中一步,流程就可能部分跌返 CPU,速度亦會跟住落。字幕尤其麻煩:client 唔識處理某種字幕時,Jellyfin 可能要將字幕燒入畫面,官方形容呢個係轉碼入面負擔最重嘅部分。常睇 PGS、VobSub 或有複雜字款嘅 ASS 字幕,測試時一定要開埋字幕,淨係播無字幕版本會睇漏樽頸。
HDR 片送去 SDR 螢幕,通常仲要做 tone mapping。Jellyfin 支援部分 Intel、NVIDIA 同 AMD GPU 加速 HDR10/HLG 轉 SDR,不過實際支援會受 GPU 世代、作業系統、driver、OpenCL/Vulkan 設定同 Jellyfin-FFmpeg 版本影響。另一個特別例子係 H.264 High 10:Jellyfin 官方話一般 Intel、NVIDIA 同 AMD GPU 都冇硬件解碼支援,server 會改用軟件解碼。片庫有大量 10-bit 動畫收藏,呢項限制隨時重要過張卡標榜支援幾多條 4K stream。
買之前用實際檔案列一張需求表
排查次序可以好直接:先喺 dashboard 確認係 Transcode、Direct Stream 定 Remux;再記低觸發原因、輸入 codec、bit depth、字幕格式、HDR 狀態同輸出格式;跟住用 Jellyfin 官方頁同廠商 codec matrix 對照現有 GPU。若硬件明明支援但 CPU 仍然爆,就查 driver、裝置權限、Docker/LXC passthrough 同 Jellyfin-FFmpeg,再確認 decode、tone mapping、subtitle burn-in 同 encode 有邊幾段真係行緊硬件加速。
做完呢輪先決定買唔買卡。只處理少量 H.264/HEVC stream,現有 Intel Quick Sync 可能已經解決;要兼顧 AV1,先睇較新 Intel Arc、NVIDIA 或 AMD 架構;若 CPU 同時跑好多虛擬機、container,或者要慢慢重編成個片庫,升級平台先有較充分理由。XDA 作者換 GPU 嘅結論有參考價值,但最值得跟嘅其實係佢先搵出負載喺邊,再花錢處理嗰一段。
參考來源
- XDA Developers — Transcoding is the part everyone gets wrong, and the fix is usually a cheaper GPU than you think — original report
- Jellyfin:Transcoding — 核對 Direct Play、Remux、Direct Stream、Transcode 同 HDR tone mapping
- Jellyfin:Codec Support — 核對各類 client 嘅 codec、container、HDR 同字幕相容性
- Jellyfin:Hardware Acceleration — 核對硬件加速流程、部分加速同 H.264 10-bit 限制
- Jellyfin:Intel GPU — 核對 Quick Sync、HEVC 10-bit、AV1 同 Intel GPU 世代支援
- Jellyfin:NVIDIA GPU — 核對 NVENC/NVDEC、低階卡例外同 driver 要求
- Jellyfin:AMD GPU — 核對 VA-API、AMF、codec 支援同冇 encoder 嘅型號
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







