Skip to content

配置

rust-srec 使用 4 层配置层级 实现灵活控制。详见 配置层级

基础配置

添加第一个主播

  1. 打开前端 http://localhost:15275
  2. 使用默认凭据登录:
    • 用户名admin
    • 密码admin123!
  3. 进入 主播添加主播
  4. 输入:
    • 名称:显示名称
    • URL:直播间地址(如 https://www.bilibili.com/xxxx
    • 平台:根据 URL 自动识别
  5. 点击 保存

全局设置

通过 设置全局配置 访问。设置项分为以下几类:

文件配置 (File Configuration)

设置说明默认值
record_danmu启用弹幕录制false
auto_thumbnail自动生成视频封面true
output_folder录制保存的基础目录(支持模板)/app/output
output_filename_template录制文件的文件名模板(见下文)
output_file_format默认输出格式 (mp4, flv 等)flv

资源限制 (Resource Limits)

设置说明默认值
min_segment_size保留分段的最小大小1MB
max_download_duration_secs分段的最大时长0 (不限制)
max_part_size分段的最大大小8GB

并发与性能 (Concurrency & Performance)

设置说明默认值
max_concurrent_downloads最大同时录制任务数6
max_concurrent_uploads最大同时上传任务数3
max_cpu_jobs最大并发 CPU 密集型任务数0 (Auto / 自动)
max_io_jobs最大并发 I/O 密集型任务数8 (0 = Auto / 自动)
download_engine录制引擎 (ffmpeg, mesio 等)mesio

网络与系统 (Network & System)

设置说明默认值
streamer_check_interval检查主播状态的间隔60 Secs
offline_check_interval检查离线状态的间隔20 Secs
offline_detection_count判定主播离线前的重试次数3
retention_period历史记录保留天数30 Days
session_gap_time_secs判定会话结束的等待时间1 Hour
enable_proxy通过代理服务器路由流量false

流水线配置 (Pipeline Configuration)

Rust-Srec 拥有强大的模块化流水线系统,可以在不同阶段添加自定义步骤(如:转码、通知、自定义脚本):

  • Per-segment (分段后): 在每个视频分段录制完成后立即运行。
  • Paired Segment (合并对): 在视频和弹幕配对后运行。
  • Session Complete (会话结束): 在整个录制会话结束后运行。

目录组织

output_folder 设置为 {streamer}/%Y-%m-%d 可按主播分类并按日期建立子文件夹。output_filename_template 则可使用 %H-%M-%S_{title} 作为文件名。

环境变量

你可以在 .env 文件中配置以下环境变量。

通用

变量说明默认值
TZ容器时区UTC (建议 Asia/Shanghai)
VERSIONDocker 镜像版本标签latest

路径

变量说明默认值
DATA_DIR应用数据目录./data
CONFIG_DIR平台配置文件目录./config
OUTPUT_DIR录制文件存储目录/app/output
LOG_DIR日志文件目录./logs

网络

变量说明默认值
API_PORT后端 API 的外部端口12555
FRONTEND_PORTWeb 界面的外部端口15275
BACKEND_URL前端访问后端的内部 URLhttp://rust-srec:8080
HTTP_PROXYHTTP 代理服务器 URL-
HTTPS_PROXYHTTPS 代理服务器 URL-
NO_PROXY绕过代理的主机列表(逗号分隔)-

安全与认证

变量说明默认值
JWT_SECRETJWT 签名密钥 (必需)-
JWT_ISSUERJWT 签发者标识rust-srec
JWT_AUDIENCEJWT 受众标识rust-srec-api
SESSION_SECRET前端会话加密密钥 (必需, 至少 32 位)-
COOKIE_SECURE设置为 true 以强制仅 HTTPS Cookie(自动)
MIN_PASSWORD_LENGTH用户密码最小长度8

令牌过期

变量说明默认值
ACCESS_TOKEN_EXPIRATION_SECSJWT 访问令牌有效期3600 (1h)
REFRESH_TOKEN_EXPIRATION_SECSJWT 刷新令牌有效期604800 (7d)

后端服务

变量说明默认值
RUST_LOG日志级别 (trace, debug, info, warn, error)info
DATABASE_URLSQL 数据库连接字符串sqlite:///app/data/rust-srec.db

资源限制 (Docker)

变量说明默认值
CPU_LIMIT容器可使用的最大 CPU 核心数4
MEMORY_LIMIT容器可使用的最大内存4G
CPU_RESERVATION容器保留的 CPU 核心数1
MEMORY_RESERVATION容器保留的内存512M

文件名模板变量

Rust-Srec 支持在 output_folderoutput_filename_template 中使用两类占位符。

大括号变量 (Curly Brace Variables)

这些变量将被替换为主播或会话相关的元数据。

变量说明
{streamer}主播显示名称
{title}当前直播标题
{platform}平台名称 (如 bilibili)
{session_id}录制会话的唯一 ID (仅适用于 output_folder)

百分号占位符 (Percent Placeholders, FFmpeg 风格)

这些占位符将被替换为日期、时间或序列信息。

占位符说明
%Y年份 (YYYY)
%m月份 (01-12)
%d日期 (01-31)
%H小时 (00-23)
%M分钟 (00-59)
%S秒数 (00-59)
%i分段序列号
%tUnix 时间戳
%%字面量百分号

示例:{streamer}/%Y-%m-%d/%H-%M-%S_{title}