@@ -242,6 +242,69 @@ func InitialSettings() []model.SettingItem {
242242 {Key : conf .StreamMaxClientUploadSpeed , Value : "-1" , Type : conf .TypeNumber , Group : model .TRAFFIC , Flag : model .PRIVATE },
243243 {Key : conf .StreamMaxServerDownloadSpeed , Value : "-1" , Type : conf .TypeNumber , Group : model .TRAFFIC , Flag : model .PRIVATE },
244244 {Key : conf .StreamMaxServerUploadSpeed , Value : "-1" , Type : conf .TypeNumber , Group : model .TRAFFIC , Flag : model .PRIVATE },
245+
246+ // media settings
247+ {Key : conf .MediaTMDBKey , Value : "" , Type : conf .TypeString , Group : model .MEDIA , Flag : model .PRIVATE },
248+ {Key : conf .MediaTMDBAPIURL , Value : "api.themoviedb.org" , Type : conf .TypeString , Group : model .MEDIA , Flag : model .PRIVATE },
249+ {Key : conf .MediaDiscogsToken , Value : "" , Type : conf .TypeString , Group : model .MEDIA , Flag : model .PRIVATE },
250+ {Key : conf .MediaDiscogsAPIURL , Value : "api.discogs.com" , Type : conf .TypeString , Group : model .MEDIA , Flag : model .PRIVATE },
251+ {Key : conf .MediaStoreThumbnail , Value : "false" , Type : conf .TypeBool , Group : model .MEDIA , Flag : model .PRIVATE },
252+ {Key : conf .MediaThumbnailMode , Value : "base64" , Type : conf .TypeSelect , Options : "base64,local" , Group : model .MEDIA , Flag : model .PRIVATE },
253+ {Key : conf .MediaThumbnailPath , Value : "/imgs" , Type : conf .TypeString , Group : model .MEDIA , Flag : model .PRIVATE },
254+ {Key : conf .MediaScrapeConcurrency , Value : "5" , Type : conf .TypeNumber , Group : model .MEDIA , Flag : model .PRIVATE },
255+
256+ // transcode settings (FFmpeg 云端/本地转码) - 默认全部关闭
257+ {Key : conf .TranscodeEnabled , Value : "false" , Type : conf .TypeBool , Group : model .TRANSCODE , Flag : model .PRIVATE ,
258+ Help : `开启后,超过阈值的媒体文件将通过 FFmpeg 转码后再播放;默认关闭` },
259+ {Key : conf .TranscodeRunMode , Value : "local" , Type : conf .TypeSelect , Options : "local,remote,hybrid" , Group : model .TRANSCODE , Flag : model .PRIVATE ,
260+ Help : `local=仅使用本机内置 worker;remote=只使用远程 Worker 节点;hybrid=本地优先,超载后派发到远程` },
261+ {Key : conf .TranscodeMinSizeGB , Value : "5" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
262+ Help : `文件大于该 GB 数才走转码(小于则直链播放),0=任意大小都转码` },
263+ {Key : conf .TranscodeMinBitrateMbps , Value : "20" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
264+ Help : `视频码率超过该 Mbps 才转码,0=不限制` },
265+ {Key : conf .TranscodeSourceCodecs , Value : "hevc,h265,av1,vvc,vp9" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
266+ Help : `仅对这些源视频编码进行转码(逗号分隔)。常见高码率/兼容性差的编码:hevc,av1,vvc,vp9` },
267+ {Key : conf .TranscodeSourceExtensions , Value : "mkv,ts,m2ts,mov,avi,wmv,flv,rmvb,webm" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
268+ Help : `仅对这些后缀进行转码(逗号分隔,不带点),mp4 默认不转码可直接播放` },
269+ {Key : conf .TranscodeOutputFormat , Value : "hls" , Type : conf .TypeSelect , Options : "hls,dash,mp4" , Group : model .TRANSCODE , Flag : model .PRIVATE ,
270+ Help : `输出封装格式,HLS 兼容性最好` },
271+ {Key : conf .TranscodeOutputCodec , Value : "h264" , Type : conf .TypeSelect , Options : "h264,hevc,av1" , Group : model .TRANSCODE , Flag : model .PRIVATE ,
272+ Help : `重新编码后的视频编码,推荐 h264(最广兼容、互联网分发免授权费)` },
273+ {Key : conf .TranscodeOutputBitrate , Value : "4000k" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
274+ Help : `输出视频码率,例如 4000k / 6M。建议 1080p:4000k、720p:2500k` },
275+ {Key : conf .TranscodeOutputAudioCodec , Value : "aac" , Type : conf .TypeSelect , Options : "aac,mp3,opus,copy" , Group : model .TRANSCODE , Flag : model .PRIVATE ,
276+ Help : `输出音频编码,aac 兼容性最好;copy=直接复制源音频流` },
277+ {Key : conf .TranscodeOutputAudioBitrate , Value : "160k" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
278+ Help : `输出音频码率` },
279+ {Key : conf .TranscodeOutputResolution , Value : "1920x1080" , Type : conf .TypeSelect , Options : "source,3840x2160,2560x1440,1920x1080,1280x720,854x480" , Group : model .TRANSCODE , Flag : model .PRIVATE ,
280+ Help : `输出分辨率上限,超过该分辨率会下采样;source=保持源分辨率` },
281+ {Key : conf .TranscodeSegmentDuration , Value : "6" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
282+ Help : `HLS/DASH 切片时长(秒),越小首帧越快但请求数变多,推荐 4-10` },
283+ {Key : conf .TranscodeHWAccel , Value : "none" , Type : conf .TypeSelect ,
284+ Options : "none,auto,nvenc,qsv,vaapi,amf,videotoolbox" ,
285+ Group : model .TRANSCODE , Flag : model .PRIVATE ,
286+ Help : `GPU 硬件加速:
287+ none = 纯 CPU(libx264)
288+ auto = 自动探测可用加速器
289+ nvenc = NVIDIA GPU(GeForce/Tesla/Quadro/RTX,需 NVIDIA 驱动)
290+ qsv = Intel 集显/独显 QuickSync(免费,功耗低)
291+ vaapi = Linux 通用 VA-API(支持 Intel/AMD)
292+ amf = AMD GPU(Windows AMF)
293+ videotoolbox = macOS 硬件加速` },
294+ {Key : conf .TranscodeFFmpegPath , Value : "ffmpeg" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
295+ Help : `FFmpeg 可执行路径,留空则使用 PATH 中的 ffmpeg` },
296+ {Key : conf .TranscodeFFprobePath , Value : "ffprobe" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
297+ Help : `FFprobe 可执行路径` },
298+ {Key : conf .TranscodeWorkerSecret , Value : "" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
299+ Help : `远程 Worker 注册时使用的共享密钥,留空则禁用远程 Worker 注册` },
300+ {Key : conf .TranscodeCachePath , Value : "data/transcode_cache" , Type : conf .TypeString , Group : model .TRANSCODE , Flag : model .PRIVATE ,
301+ Help : `转码切片缓存目录` },
302+ {Key : conf .TranscodeCacheMaxGB , Value : "20" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
303+ Help : `切片缓存最大容量(GB),超过后按 LRU 清理` },
304+ {Key : conf .TranscodeJobTimeoutMin , Value : "120" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
305+ Help : `单个转码任务超时分钟数,超时自动失败` },
306+ {Key : conf .TranscodeLocalConcurrency , Value : "1" , Type : conf .TypeNumber , Group : model .TRANSCODE , Flag : model .PRIVATE ,
307+ Help : `本机内置 worker 同时执行的转码任务数(local/hybrid 模式生效)` },
245308 }
246309 additionalSettingItems := tool .Tools .Items ()
247310 // 固定顺序
0 commit comments