mirror of
https://github.com/truewhile/MeBox.git
synced 2026-11-15 12:34:22 +08:00
183 lines
7.6 KiB
TypeScript
183 lines
7.6 KiB
TypeScript
import type { SettingGroup } from './settingsGroupTypes'
|
||
|
||
export const generalSettingsGroup: SettingGroup = {
|
||
key: 'general',
|
||
label: '常规',
|
||
description: '语言 / 转码引擎参数(API 密钥请在管理后台 → 外部API 配置)',
|
||
items: [
|
||
{
|
||
key: 'tmdb.language',
|
||
label: 'TMDb 元数据语言',
|
||
type: 'select',
|
||
options: [
|
||
{ value: 'zh-CN', label: '简体中文' },
|
||
{ value: 'zh-TW', label: '繁体中文' },
|
||
{ value: 'en-US', label: 'English' },
|
||
{ value: 'ja-JP', label: '日本語' },
|
||
],
|
||
},
|
||
{
|
||
key: 'playback.direct_only',
|
||
label: '客户端直连解码(释放宿主机资源)',
|
||
type: 'toggle',
|
||
hint: '默认关闭。开启后宿主机不再进行任何 FFmpeg 转码,所有播放交给第三方客户端(Infuse / VLC / Emby 客户端等)或浏览器本地解码直连(direct play / 302 直链),大幅降低宿主机 CPU 占用。若客户端不支持源编码可能无法播放。',
|
||
defaultValue: 'false',
|
||
},
|
||
{
|
||
key: 'segment.source',
|
||
label: '片头/片尾数据源',
|
||
type: 'select',
|
||
hint: '选择查询哪个社区库来补全片头/片尾时间点。TheIntroDB 数据最全(按 TMDb id);IntroDB 只认 IMDb id,需要 TMDb 已配置 API key 才能解析;TODb 偏华语片源、按平台版本记录。选「关闭」后只使用本地已有数据(含手动标记),不再请求外网。',
|
||
defaultValue: 'theintrodb',
|
||
options: [
|
||
{ value: 'theintrodb', label: 'TheIntroDB' },
|
||
{ value: 'introdb', label: 'IntroDB' },
|
||
{ value: 'todb', label: 'TODb(TheOtherDB)' },
|
||
{ value: 'off', label: '关闭' },
|
||
],
|
||
},
|
||
{
|
||
key: 'segment.prewarm_enabled',
|
||
label: '后台预热片头片段',
|
||
type: 'toggle',
|
||
hint: '默认关闭。开启后每 6 小时在后台向上面选择的数据源拉取可识别媒体的片头/片尾区间并写入本地;关闭时仅在播放时按需请求。',
|
||
defaultValue: 'false',
|
||
},
|
||
{
|
||
key: 'transcode.enabled',
|
||
label: '启用转码',
|
||
type: 'toggle',
|
||
hint: '关闭后所有视频直连播放(「客户端直连解码」开启时本项自动失效)',
|
||
defaultValue: 'true',
|
||
},
|
||
{
|
||
key: 'transcode.hw_accel',
|
||
label: '硬件编码器',
|
||
type: 'select',
|
||
hint: '只有开启下方「启用硬件加速」后才会使用;未开启时强制软件转码',
|
||
defaultValue: 'none',
|
||
options: [
|
||
{ value: 'none', label: '软件转码' },
|
||
{ value: 'nvenc', label: 'NVIDIA NVENC' },
|
||
{ value: 'qsv', label: 'Intel QSV' },
|
||
{ value: 'vaapi', label: 'VAAPI (Linux)' },
|
||
],
|
||
},
|
||
{
|
||
key: 'transcode.hw_enabled',
|
||
label: '启用硬件加速',
|
||
type: 'toggle',
|
||
hint: '关闭时即使选择了 NVENC/QSV/VAAPI,也不会调用硬件编码参数',
|
||
defaultValue: 'false',
|
||
},
|
||
{
|
||
key: 'transcode.max_jobs',
|
||
label: '最大并发转码任务',
|
||
type: 'number',
|
||
hint: 'NAS 建议 1',
|
||
defaultValue: '1',
|
||
},
|
||
{
|
||
key: 'transcode.realtime',
|
||
label: '按播放速度转码',
|
||
type: 'toggle',
|
||
hint: '开启后 ffmpeg 不会抢跑压完整片,可显著降低 CPU 峰值',
|
||
defaultValue: 'true',
|
||
},
|
||
{
|
||
key: 'transcode.threads',
|
||
label: '软件转码线程数',
|
||
type: 'number',
|
||
hint: 'NAS 建议 1-2;仅软件转码生效',
|
||
defaultValue: '2',
|
||
},
|
||
{
|
||
key: 'transcode.idle_timeout_seconds',
|
||
label: '转码空闲停止秒数',
|
||
type: 'number',
|
||
hint: '播放器关闭或停止请求分片后自动结束 ffmpeg',
|
||
defaultValue: '120',
|
||
},
|
||
{
|
||
key: 'ffmpeg.path',
|
||
label: 'FFmpeg 路径',
|
||
type: 'text',
|
||
placeholder: 'ffmpeg',
|
||
hint: '留空时使用系统 PATH 中的 ffmpeg;也可点击上方「下载并安装」自动下载到 data 目录并自动填入,无需手动填写',
|
||
},
|
||
{
|
||
key: 'ffprobe.path',
|
||
label: 'FFprobe 路径',
|
||
type: 'text',
|
||
placeholder: 'ffprobe',
|
||
hint: '留空时使用系统 PATH 中的 ffprobe;也可点击上方「下载并安装」自动下载到 data 目录并自动填入',
|
||
},
|
||
{
|
||
key: 'ffprobe.max_concurrent',
|
||
label: 'FFprobe 最大并发',
|
||
type: 'number',
|
||
hint: 'NAS 建议 1;用于扫描、整理洗版和手动探测,避免同时启动多个 ffprobe 进程',
|
||
defaultValue: '1',
|
||
},
|
||
{
|
||
key: 'cache.memory_max_size_mb',
|
||
label: '进程内缓存上限 (MB)',
|
||
type: 'number',
|
||
hint: 'JSON/列表等热缓存共用的内存上限。低配机器建议 32-64,内存充足可用 128-256;保存后会立即裁剪超额缓存,默认 128MB',
|
||
defaultValue: '128',
|
||
placeholder: '128',
|
||
},
|
||
{
|
||
key: 'cache.images_max_size_mb',
|
||
label: '图片缓存上限 (MB)',
|
||
type: 'number',
|
||
hint: '海报、剧照等图片代理缓存目录 (cache/images) 的总占用上限。超过上限时先淘汰原图、再按修改时间清理最旧的缩略图;上限过小会导致旧图被淘汰后又要重新从上游/挂载的 Emby 下载。设为 0 表示不限制,默认 2000MB',
|
||
defaultValue: '2000',
|
||
placeholder: '2000',
|
||
},
|
||
{
|
||
key: 'cache.images_originals_max_size_mb',
|
||
label: '原图缓存上限 (MB)',
|
||
type: 'number',
|
||
hint: '原图只是生成缩略图的原料,丢了可以重新回源,因此单独给一个小配额(默认 256MB)。总量超限时原图也优先被淘汰,保证客户端实际读取的缩略图能留住。设为 0 表示不单独限制',
|
||
defaultValue: '256',
|
||
placeholder: '256',
|
||
},
|
||
{
|
||
key: 'https.enabled',
|
||
label: '启用 HTTPS',
|
||
type: 'toggle',
|
||
hint: '开启后服务仅通过 HTTPS 提供访问,用 http:// 打开同一地址会被自动跳转到 https://(临时跳转,随时关掉 HTTPS 都不会被浏览器长期记住);保存后当前页面会自动切换到 https 地址。必须先在下文配置好 SSL 证书与私钥(内容或路径任选其一,两者需匹配)才能启用;首次切换因浏览器以 origin(协议+域名+端口)隔离登录态,需要重新登录一次。',
|
||
defaultValue: 'false',
|
||
},
|
||
{
|
||
key: 'https.cert',
|
||
label: 'SSL 证书 (PEM)',
|
||
type: 'textarea',
|
||
hint: '将证书内容(-----BEGIN CERTIFICATE----- 至 -----END CERTIFICATE-----)整体粘贴到此处;也可留空,改在下方填写证书路径。',
|
||
placeholder: '-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----',
|
||
},
|
||
{
|
||
key: 'https.key',
|
||
label: 'SSL 私钥 (PEM)',
|
||
type: 'textarea',
|
||
hint: '将私钥内容粘贴到此处(支持 PKCS#8 / RSA / EC 格式);也可留空,改在下方填写私钥路径。私钥必须与证书匹配。',
|
||
placeholder: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----',
|
||
},
|
||
{
|
||
key: 'https.cert_path',
|
||
label: 'SSL 证书路径',
|
||
type: 'text',
|
||
hint: '可选。填写证书文件的绝对路径则优先从文件读取(无需粘贴内容);留空则使用上方粘贴的证书内容。文件被替换后无需改设置,最长 30 秒内自动热加载新证书。',
|
||
placeholder: '/etc/ssl/mebox-cert.pem',
|
||
},
|
||
{
|
||
key: 'https.key_path',
|
||
label: 'SSL 私钥路径',
|
||
type: 'text',
|
||
hint: '可选。填写私钥文件的绝对路径则优先从文件读取;留空则使用上方粘贴的私钥内容。',
|
||
placeholder: '/etc/ssl/mebox-key.pem',
|
||
},
|
||
],
|
||
}
|