Jellyfin 12.4 配置参数详解

逐项讲解 Jellyfin 12.4 配置体系:配置文件布局与三种查看/修改方式、/System/Configuration 全量 53 键参数总览、system.xml 与 encoding.xml 分类详解,并给出 API 全量回传、用户策略、手改 XML 三个实测修改闭环与家用 NAS 生产配置模板。

Jellyfin流媒体自托管2026/10/27

Jellyfin 12.4 配置参数详解

目标:逐项讲清 Jellyfin 12.4 的配置体系——配置文件布局、查看与修改的完整闭环、system.xml/encoding.xml/database.xml 全部关键参数的语义与实测默认值,并给出可套用的生产配置模板;所有取值均来自 Ubuntu 22.04 实测服务器(jellyfin 12.4+ubu2204)。

一、环境信息

  • 操作系统:Ubuntu 22.04(服务器直装发行包)
  • 软件版本:jellyfin 12.4+ubu2204、jellyfin-server 12.4+ubu2204、jellyfin-web 12.4+ubu2204、jellyfin-ffmpeg8 8.1.3-1-jammy(dpkg 实查)
  • 服务器进程版本:Jellyfin.Server 12.4.0.0
  • 配置目录:/etc/jellyfin(XML 与日志模板)
  • 数据目录:/var/lib/jellyfin(数据库、元数据、库结构)
  • 日志目录:/var/log/jellyfin(滚动日志 jellyfin20261027.log)
  • 缓存目录:/var/cache/jellyfin(转码分片等临时产物)
  • 服务环境文件:/etc/default/jellyfin
  • 管理账号:admin / q1w2e3r4(演示账号)

二、前置条件

  1. 服务器上已按标准流程安装并启动 Jellyfin 12.4(本专栏部署指南篇可作参考),服务运行中:
systemctl status jellyfin --no-pager | head -5

实测回显:

● jellyfin.service - Jellyfin Media Server
     Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled; vendor preset: enabled)
     Drop-In: /etc/systemd/system/jellyfin.service.d
              └─jellyfin.service.conf
     Active: active (running) since Mon 2026-10-27 08:22:03 UTC; 5min ago
   Main PID: 3589 (jellyfin)
  1. 具备 root 或 sudo 权限(改 /etc/jellyfin 下文件与重启服务都需要);
  2. 熟悉基本 API 调用方式(本文闭环示例会给出完整 curl 命令与真实回显,无需额外知识)。

三、配置文件布局与查看/修改方式

3.1 配置文件布局

ls /etc/jellyfin/

实测回显:

database.xml  logging.default.json  logging.json  system.xml  encoding.xml
  • system.xml:服务器全局参数(对应管理台「服务器」各页);
  • encoding.xml:转码参数(对应管理台「播放 → 转码」);
  • database.xml:数据库选项;
  • logging.default.json / logging.json:日志级别模板。

⚠️ 注意:networking.xml 默认不生成——它只在管理台「网络」页第一次保存后才落盘(实测两台新装服务器均如此),不存在不代表配置丢失。

3.2 参数查看的三种方式

方式一:管理台。 浏览器登录管理端,控制台 各页面即当前生效参数的可视化视图,适合人工核对。

方式二:读配置文件。

grep -o '<PreferredMetadataLanguage>[^<]*</PreferredMetadataLanguage>' /etc/jellyfin/system.xml

实测回显:

<PreferredMetadataLanguage>zh-CN</PreferredMetadataLanguage>

方式三:API 总览。 一次拿回全部运行参数(本文「参数总览」即以此为基础):

curl -s -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  http://127.0.0.1:8096/System/Configuration

输出为 53 个键的 JSON 对象(实测统计),键名与「参数总览」表一一对应。

3.3 参数修改的三种方式与生效规则

修改方式生效方式适用场景
管理台改保存即落盘、即热生效日常运维首选
API 改(POST /System/Configuration)返回 204 即落盘、即热生效脚本化运维
手改 XML必须重启服务(systemctl restart jellyfin)批量初始化、恢复备份

⚠️ 注意:手改 XML 后不重启,运行中的服务不会感知变化,下次保存管理台时旧值还会覆盖手改值。XML 手改适合「离线批量初始化」,单参数微调走管理台或 API。

四、参数总览(/System/Configuration 全量 53 键)

以下为实测服务器回读的运行参数(ServerName、语言/地区、IsStartupWizardCompleted 为完成向导后的状态,其余均出厂默认):

分组参数实测值语义
标识ServerNamejellyfin-lab服务器显示名(出厂为空,首启填主机名哈希)
标识UICulturezh-CN界面语言(出厂 en-US)
标识IsStartupWizardCompletedtrue向导完成标记(false 时 Web 强制进向导)
语言PreferredMetadataLanguagezh-CN元数据语言(出厂 en)
语言MetadataCountryCodeCN元数据国家(出厂 US)
排序SortReplaceCharacters. , + %排序时替换为空格的字符
排序SortRemoveCharacters, & - { } '排序时直接剔除的字符
排序SortRemoveWordsthe a an排序时忽略的冠词
续播MinResumePct5进度 ≥5% 才记为「继续观看」
续播MaxResumePct90进度 ≥90% 视为看完、不再续播
续播MinResumeDurationSeconds300时长 <300 秒的条目不记续播
续播MinAudiobookResume5(分钟)有声书最小续播进度
续播MaxAudiobookResume5(分钟)有声书最大续播进度
续播InactiveSessionThreshold0会话不活跃判定阈值(0=不判定)
库LibraryMonitorDelay60(秒)文件变更后延迟 60 秒再刷新
库LibraryUpdateDuration30(分钟)定时全库扫描间隔
库LibraryScanFanoutConcurrency0扫描并行度(0=自动)
库LibraryMetadataRefreshConcurrency0元数据刷新并行度(0=自动)
库EnableFolderViewfalse是否显示「文件夹」视图
库EnableGroupingMoviesIntoCollectionsfalse电影合入收藏集
库EnableGroupingShowsIntoCollectionsfalse剧集合入收藏集
库DisplaySpecialsWithinSeasonstrue特集并入对应季显示
元数据MetadataPath空(跟随数据目录)元数据独立存放路径
元数据MetadataOptions9 种条目类型每类型的抓取器开关(见 5.6 节)
元数据ImageSavingConventionLegacy图片保存布局(Classic/Legacy)
元数据ImageExtractionTimeoutMs0章节图提取超时(0=不限)
元数据ChapterImageResolutionMatchSource章节缩略图分辨率
元数据DummyChapterDuration0(分钟)无章节时自动造章节的间隔(0=关闭)
元数据EnableExternalContentInSuggestionstrue推荐位允许出现未入库的在线内容
元数据SaveMetadataHiddenfalse本地 NFO 是否带隐藏属性
缓存CacheSize600(MB)元数据图片缓存上限
转码CodecsUsed[]已用编解码统计(空=未上报)
转码RemoteClientBitrateLimit0远程客户端码率上限(0=不限)
转码ParallelImageEncodingLimit3图片处理并行数
转码TrickplayOptions见 5.6 节进度条缩略图(Trickplay)行为
网络IsPortAuthorizedtrue端口已授权注册(首启自检后置位)
网络CorsHosts*CORS 允许来源
网络QuickConnectAvailabletrueQuick Connect 免密登录开关
网络EnableLegacyAuthorizationfalse旧版 X-Emby-Authorization 令牌方式
网络ContentTypes[]按路径的响应类型覆盖
安全EnableMetricsfalse/metrics 监控端点开关
安全SkipDeserializationForBasicTypestrue内部类型跳过反序列化校验
日志LogFileRetentionDays3(天)日志保留天数
日志ActivityLogRetentionDays30(天)活动日志保留天数(0=永久)
日志AllowClientLogUploadtrue允许客户端上传诊断日志
性能EnableSlowResponseWarningtrue慢响应告警
性能SlowResponseThresholdMs500(毫秒)慢响应判定阈值
插件PluginRepositoriesJellyfin Stable插件源清单
播放CastReceiverApplications[]投屏接收端白名单
电视DisableLiveTvChannelUserDataNamefalse直播电视频道是否计用户数据

五、system.xml 核心参数分类详解

5.1 服务器标识与语言

<ServerName>jellyfin-lab</ServerName>
<UICulture>zh-CN</UICulture>
<PreferredMetadataLanguage>zh-CN</PreferredMetadataLanguage>
<MetadataCountryCode>CN</MetadataCountryCode>
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
  • ServerName:多台服务器并存时客户端按它区分;API 修改闭环见 8.1 节;
  • PreferredMetadataLanguage/MetadataCountryCode:决定 TMDB 抓取的中文简繁与地区分级(如 CN 拉中文简介);
  • IsStartupWizardCompleted:误改回 false 会让所有客户端被强跳向导——这是「改 XML 忘了这条」最常见的翻车点。

5.2 日志与活动记录

  • LogFileRetentionDays(默认 3):/var/log/jellyfin/ 下按日滚动的日志保留天数,实测日志文件名形如 jellyfin20261027.log;排障期建议调到 7~14,平时 3 天够用;
  • ActivityLogRetentionDays(默认 30):管理台「活动记录」页的保留天数,0 表示永久保留;
  • AllowClientLogUpload(默认 true):客户端可把诊断日志传回服务器;对安全敏感的内网可关;
  • EnableSlowResponseWarning + SlowResponseThresholdMs(默认 true/500):API 响应超过 500ms 记 WARNING,是排查「界面卡顿」的第一信号源。

5.3 续播与播放状态阈值

三个参数联动决定「继续观看」的出现时机:

  • MinResumeDurationSeconds=300:片长不足 5 分钟不记续播;
  • MinResumePct=5:进度不足 5% 视为没看过;
  • MaxResumePct=90:进度超过 90% 视为看完,不再出现在「继续观看」。

实测闭环(一部 420 秒的测试影片,进度经 POST /Sessions/Playing/Progress 上报):

  • 上报进度 120 秒(28.6%):虽然百分比达标,但绝对时长未过 300 秒线,停止播放后 IsResumable 检索结果为 0,「继续观看」不出现;
  • 上报进度 350 秒(83.3%):两条线都过了,停止后 IsResumable 检索结果为 1,续播位置 350 秒精确落库(3500000000 ticks,服务器日志原文 User "admin" stopped playback of '"Sample Movie Three"' at "350000"ms)。

结论:测试/短视频场景若想支持续播,把 MinResumeDurationSeconds 调小即可;家庭影院默认值无需动。

5.4 媒体库扫描与监控

  • LibraryMonitorDelay=60(秒):inotify 收到文件变更后延迟半分钟再刷新,把「一次拷一批文件」合并成一次扫描;
  • LibraryUpdateDuration=30(分钟):兜底定时全库扫描;
  • LibraryScanFanoutConcurrency=0/LibraryMetadataRefreshConcurrency=0:并行度自动(按 CPU 分配);大库(万级条目)可显式调到 4~8,实测库越小收益越不明显;
  • CacheSize=600(MB):海报/图片内存缓存上限,8GB 内存服务器可维持默认。

5.5 排序与命名

<SortReplaceCharacters>. , + %</SortReplaceCharacters>
<SortRemoveCharacters>, &amp; - {} '</SortRemoveCharacters>
<SortRemoveWords>the a an</SortRemoveWords>
  • 三个列表决定条目在海报墙里的排序键:先替换(.``, + % → 空格)、再剔除(,, &, -, {}, ')、再忽略冠词(the/a/an);
  • 中文库常见诉求是「按拼音排序」:Jellyfin 按字符集自然排序,中文条目建议在命名前缀里带数字(如 01 演示一),比调这三个参数更可控;
  • EnableCaseSensitiveItemIds=true:内部条目 ID 区分大小写,保持默认,勿动。

5.6 元数据选项与 Trickplay

MetadataOptions 按 9 种条目类型(Book/Movie/MusicVideo/Series/MusicAlbum/MusicArtist/BoxSet/Season/Episode)独立配置抓取器。实测默认值里有两处值得注意:

  • MusicVideo 类型禁用了 The Open Movie Database(音乐视频用电影库抓取器无意义);
  • MusicAlbum/MusicArtist 禁用了 TheAudioDB(默认不联网抓音乐元数据,纯靠文件内嵌标签)。

需要音乐在线刮削时,在管理台「库 → 元数据下载器」把 TheAudioDb 勾回即可。

TrickplayOptions 实测默认:ScanBehavior=NonBlocking(后台异步生成,不阻塞扫描)、Interval=10000(每 10 秒一张)、缩略图分辨率 320px、拼图 10×10、ProcessPriority=BelowNormal、EnableHwAcceleration=false。效果即播放进度条悬停时的缩略图预览;大库首次开启会占用较多后台时间,保持 NonBlocking 即可。

5.7 网络与安全相关

  • IsPortAuthorized=true:首启端口自检完成后置位,保持默认;
  • QuickConnectAvailable=true:开启 Quick Connect(客户端输码免密授权),家用可选,企业内网建议关;
  • EnableMetrics=false:打开后服务端暴露 /metrics Prometheus 端点,接监控栈时才需要;
  • EnableLegacyAuthorization=false:旧版令牌头兼容开关,保持关闭(更安全);
  • CorsHosts=["*"]:跨域白名单,仅管理台/自建 Web 前端需要收紧时改。

5.8 界面与行为开关

  • EnableFolderView=false:开启后客户端多一个「文件夹」原始视图,给高级用户排查目录结构用;
  • EnableGroupingMoviesIntoCollections=false/EnableGroupingShowsIntoCollections=false:跨库同名条目自动聚合,混盘党才需要;
  • SaveMetadataHidden=false:本地 NFO 是否加隐藏属性,保持默认;
  • PluginRepositories:默认仅 Jellyfin Stable 官方源(https://repo.jellyfin.org/files/plugin/manifest.json),加第三方源在此追加。

六、encoding.xml 转码参数详解

实测全文关键参数(与 控制台 → 播放 → 转码 一一对应):

参数实测值语义与调法
HardwareAccelerationTypenone硬件加速类型:none/vaapi/qsv/nvenc/amf/v4l2m2m;实测服务器为 VMware 虚拟显卡(vmwgfx),vainfo 报 va_openDriver() returns -1,驱动不可用保持 none,转码实际走 libx264 软编
EncodingThreadCount-1编码线程数(-1=自动满核);低配盒子可设 2 限核
EncoderAppPathDisplay/usr/lib/jellyfin-ffmpeg/ffmpeg转码引擎路径(发行包自带,一般不改)
VaapiDevice/dev/dri/renderD128VAAPI 渲染节点(启用 vaapi 后生效)
H264Crf23H.264 转码质量(越小越清晰越大码率,18~28 合理区间)
H265Crf28H.265 转码质量(同上,默认比 264 大 5 档)
EncoderPresetautox264 预设速度档(ultrafast…veryslow);实测转码日志显示自动落到 veryfast
MaxMuxingQueueSize2048复用队列上限,源文件索引混乱时可调大
DownMixAudioBoost2立体声下混增益
DownMixStereoAlgorithmNone下混算法(None/Dave750/NightmodeDialogue)
EnableAudioVbrfalse音频可变码率
EnableThrottlingfalse转码节流(播放点前只转一小段,省 CPU 但拖动频繁时体验差)
ThrottleDelaySeconds180节流缓冲秒数
EnableSegmentDeletionfalse播完即删转码分片(省缓存盘,多端同看会重转)
SegmentKeepSeconds720分片保留秒数(配合上条)
DeinterlaceDoubleRate/DeinterlaceMethodfalse/yadif反隔行(旧电视源才相关)
EnableDecodingColorDepth10Hevc/Vp9true/true10bit 解码开关(4K HDR 片源相关)
EnableDecodingColorDepth12Hevcfalse12bit 解码
EnableEnhancedNvdecDecodertrueNVDEC 增强解码
PreferSystemNativeHwDecodertrue优先系统原生硬件解码
EnableHardwareEncodingtrue允许硬件编码
AllowHevcEncoding/AllowAv1Encodingfalse/false转出 HEVC/AV1(兼容性保守,默认关)
EnableSubtitleExtraction/SubtitleExtractionTimeoutMinutestrue/30内嵌字幕抽取开关与超时
HardwareDecodingCodecsh264, vc1走硬解的编码列表
色调映射组(EnableTonemapping 等)全部 false/默认HDR→SDR 色调映射,HDR 片源需开

💡 技术拓展:HardwareAccelerationType 是整张表的「总开关」——none 时除 H264Crf/H265Crf/EncoderPreset(作用于软编 libx264/libx265)以外的硬件相关项全部不参与运行。实测本服务器转码一条 HEVC→H.264 500kbps HLS 流,ffmpeg 命令行为 -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 500000,正是上表三个软编参数的直接体现。

七、database.xml 与日志配置

database.xml 实测内容极简——默认内嵌 SQLite、单机自持:

<DatabaseType>Jellyfin-SQLite</DatabaseType>
<LockingBehavior>NoLock</LockingBehavior>
  • DatabaseType:数据库类型(12.4 默认 SQLite,无外部数据库依赖);
  • LockingBehavior=NoLock:数据库文件锁策略,保持默认;多进程/多实例共享同一数据目录时才需要关注(不要让两台服务指向同一个 /var/lib/jellyfin)。

日志配置:logging.default.json 是日志级别模板(Serilog 结构),常规排障只需看 /var/log/jellyfin/jellyfin<日期>.log;把 Default 级别从 Information 改 Debug 会显著增大日志量,仅在官方社区要求提供详细日志时临时使用,排障完改回。

/etc/default/jellyfin 是 systemd 服务的环境文件,实测内容:

cat /etc/default/jellyfin

实测回显:

JELLYFIN_ARGS="$JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLYFIN_ADDITIONAL_OPTS"
JELLYFIN_USER="jellyfin"
JELLYFIN_DATA_DIR="/var/lib/jellyfin"
JELLYFIN_CONFIG_DIR="/etc/jellyfin"
JELLYFIN_LOG_DIR="/var/log/jellyfin"
JELLYFIN_CACHE_DIR="/var/cache/jellyfin"
JELLYFIN_FFMPEG="/usr/lib/jellyfin-ffmpeg/ffmpeg"

改数据/日志/缓存目录位置就在这个文件里改(改完 systemctl restart jellyfin 生效),比动 systemd 单元文件安全。

八、参数修改闭环实测

8.1 闭环一:API 改 ServerName(热生效)

POST /System/Configuration 是全量覆盖语义——必须先 GET 拿全 53 键,改完整体回传。用 jq 管道完成(改 ServerName 为 jellyfin-lab):

# 1. 取全量配置 → jq 修改 ServerName → 落盘中间文件
curl -s -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  http://127.0.0.1:8096/System/Configuration \
  | jq '.ServerName="jellyfin-lab"' > sysconf-new.json

# 2. 全量 POST 回去
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://127.0.0.1:8096/System/Configuration \
  -H 'Content-Type: application/json' \
  -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  --data-binary @sysconf-new.json

实测回显:

204

立即回读验证(GET /System/Info/Public 的 ServerName 字段):

curl -s http://127.0.0.1:8096/System/Info/Public | grep -o '"ServerName":"[^"]*"'

实测回显:

"ServerName":"jellyfin-lab"

⚠️ 注意:只 PUT 单键(不带全量 53 键)会触发校验错误,这是该接口最常见的踩坑点;jq 管道天然保证「原样改一处处、其余全保留」。

8.2 闭环二:改用户策略(权限类参数)

先创建受限用户 demo。注意 POST /Users 的请求体必须带认证提供方 ID,最小化请求体会被 400 拒绝(实测错误回显):

{"errors":{"Policy.PasswordResetProviderId":["The PasswordResetProviderId field is required."],"Policy.AuthenticationProviderId":["The AuthenticationProviderId field is required..."]}}

正确体(实测 204 成功,返回空体):

curl -s -o /dev/null -w "%{http_code}\n" -X POST http://127.0.0.1:8096/Users \
  -H 'Content-Type: application/json' \
  -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  -d '{"Name":"demo","Password":"q1w2e3r4","Policy":{"AuthenticationProviderId":"Jellyfin.Server.Implementations.Users.DefaultAuthenticationProvider","PasswordResetProviderId":"Jellyfin.Server.Implementations.Users.DefaultPasswordResetProvider","IsAdministrator":false}}'

实测回显:

204

再收紧策略。同样遵循「GET 全量 → 改字段 → POST 全量」模式(demo 的用户 ID 为 9c45fa075ded416aae87ecc076080361,策略体共 42 个键,示例中把登录失败上限从 0 调到 5):

# 1. 取全量策略 → 改 InvalidLoginAttemptCount → 落盘
curl -s -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  http://127.0.0.1:8096/Users/9c45fa075ded416aae87ecc076080361 \
  | jq '.Policy | .InvalidLoginAttemptCount=5' > demo-policy.json

# 2. 全量回传
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://127.0.0.1:8096/Users/9c45fa075ded416aae87ecc076080361/Policy \
  -H 'Content-Type: application/json' \
  -H 'Authorization: MediaBrowser Token="79c936645c374864bf1c67f938dc27eb", Client="curl-test", Device="curl", DeviceId="doc-001", Version="12.4.0"' \
  --data-binary @demo-policy.json

实测回显:

204

回读复核(GET /Users/{id},实测关键字段):

admin: False | delete: False | livetv: False | allfolders: False | loginlimit: 5

行为闭环:用 demo 账号登录后检索条目恒为 0(EnableAllFolders=false 且 EnabledFolders=[]),跨用户查询他人条目被拒(服务端日志:AuthenticationScheme: CustomAuthentication was forbidden.)——策略参数与实际行为完全对上。

8.3 闭环三:手改 XML + 重启(离线初始化路径)

# 1. 改日志保留天数 3 → 14
sed -i 's|<LogFileRetentionDays>3</LogFileRetentionDays>|<LogFileRetentionDays>14</LogFileRetentionDays>|' /etc/jellyfin/system.xml
# 2. 重启生效
systemctl restart jellyfin
# 3. 验证
grep -o '<LogFileRetentionDays>[^<]*</LogFileRetentionDays>' /etc/jellyfin/system.xml

实测回显:

<LogFileRetentionDays>14</LogFileRetentionDays>

重启后 GET /System/Configuration 里 LogFileRetentionDays 同步变为 14,闭环成立。

九、生产配置模板

场景设定:家用 NAS(4 核 CPU、8GB 内存、Intel 核显、万条目以内媒体库、3~5 个家庭成员)。基于实测默认值的推荐增量(未列出的一律保持默认):

system.xml 增量:

<LogFileRetentionDays>14</LogFileRetentionDays>
<ActivityLogRetentionDays>90</ActivityLogRetentionDays>
<LibraryUpdateDuration>60</LibraryUpdateDuration>
<CacheSize>600</CacheSize>
<EnableSlowResponseWarning>true</EnableSlowResponseWarning>
<SlowResponseThresholdMs>500</SlowResponseThresholdMs>

理由:日志留两周方便事后排障;活动记录存一个季度;媒体库稳定后把全库扫描放宽到 1 小时(实时监控 LibraryMonitorDelay 已覆盖增量文件);缓存与慢响应阈值维持默认即匹配 8GB 内存档。

encoding.xml 增量(Intel 核显 NAS):

<HardwareAccelerationType>vaapi</HardwareAccelerationType>
<VaapiDevice>/dev/dri/renderD128</VaapiDevice>
<H264Crf>23</H264Crf>
<EncoderPreset>veryfast</EncoderPreset>
<EnableHardwareEncoding>true</EnableHardwareEncoding>

理由:核显 NAS 首选 VAAPI 硬编(CPU 占用从满核降到个位数);CRF 23 与 veryfast 正是实测软编时系统自动选择的档位,硬编下沿用同样画质档位观感一致。启用前先用 vainfo 确认驱动加载成功(实测 va_openDriver() returns -1 时强行启用只会静默回落软编)。

不建议动的一组默认值: MinResumePct/MaxResumePct/MinResumeDurationSeconds(续播三线)、LockingBehavior(数据库锁)、EnableCaseSensitiveItemIds、IsPortAuthorized。前两组是全客户端行为基准,后三组动错会直接导致库异常。

十、常见问题(FAQ)

10.1 Q1:手改了 XML 但管理台里还是旧值?

手改 XML 必须重启服务才被读取(systemctl restart jellyfin);反过来,管理台/API 的修改是即时落盘即时生效的。两种通道混用时记住优先级:运行中的服务以自己内存里的值为准,手改只是「下次重启时生效的候选值」。

10.2 Q2:找不到 networking.xml,是不是部署缺了东西?

不是。networking.xml 只在管理台「网络」页第一次保存后才生成(实测两台新装服务器均无此文件,服务网络功能完全正常)。需要绑定 IP/改端口时,去管理台「网络」页改一次并保存,文件即出现。

10.3 Q3:API 批量改媒体库选项报 400?

实测现象:POST /Library/VirtualFolders/LibraryOptions 携带标准结构(Id + 完整 LibraryOptions)在 12.4 上返回:

{"type":"https://tools.ietf.org/html/rfc9110#section-15.5.1","title":"One or more validation errors occurred.","status":400,"errors":{"":["The supplied value is invalid."],"request":["The request field is required."]}}

结论:12.4 的该接口对脚本化修改并不友好(模型绑定校验拒绝常见体)。库选项的稳妥修改路径是管理台「媒体库 → 选中库 → 选项」逐项调整;脚本化场景改为「删除媒体库重建」或直接复制编辑好的 system.xml 后重启。

10.4 Q4:短片看完总是不出现在「继续观看」?

这是 MinResumeDurationSeconds=300 在起作用:时长不足 5 分钟的条目不记续播(实测 120 秒的播放记录被正确忽略、350 秒的正常落盘)。测试环境把该值改小即可;家庭环境保持默认可避免「广告片段污染继续观看」。

10.5 Q5:日志文件堆积占满磁盘?

默认 LogFileRetentionDays=3 只留 3 天,正常不会堆积。若把保留天数调得很大且开了 Debug 级别,日志量会失控——按 8.3 节把保留天数调回 3~14,并把日志级别改回 Information。/var/log/jellyfin/ 可单独挂小分区兜底。

10.6 Q6:中文条目排序乱?

先试管理台「控制台 → 用户 → 显示/排序」确认语言设置;再检查条目命名(5.5 节)。若仍不满意,用「数字前缀命名法」(01 演示一)是最可控的方案——排序参数三个列表处理的是西文标点与冠词,对中文拼音序没有直接开关。

十一、参考链接