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
queue_freshness_threshold当某项录制在并发队列中等待时间超过该阈值时,rust-srec 会在启动前重新检查主播以刷新流地址和请求头。对签名 URL 会在几分钟内过期的平台尤其有用。设为 0 表示每次排队等待都刷新。60 秒

网络与系统 (Network & System)

设置说明默认值
streamer_check_interval检查主播状态的间隔60 Secs
offline_check_interval检查离线状态的间隔20 Secs
offline_detection_count判定主播离线前的重试次数3
retention_period历史记录保留天数30 Days
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)

浏览器通知 (Web Push / VAPID)

变量说明默认值
WEB_PUSH_VAPID_PUBLIC_KEYVAPID 公钥 (base64url, 无 padding)。留空/不设置则禁用。-
WEB_PUSH_VAPID_PRIVATE_KEYVAPID 私钥 (base64url, 无 padding)。留空/不设置则禁用。-
WEB_PUSH_VAPID_SUBJECTVAPID subject(例如 mailto:admin@localhostmailto:admin@localhost

后端服务

变量说明默认值
RUST_LOG日志级别 (trace, debug, info, warn, error)info
DATABASE_URLSQL 数据库连接字符串sqlite:///app/data/rust-srec.db
RUST_SREC_LOCALE后端通知字符串的语言环境。影响所有通知事件——直播上/下线、录制生命周期、分段、流水线任务、系统告警、凭据事件。支持:enzh-CNen
RUST_SREC_OUTPUT_ROOTS以逗号分隔的绝对路径列表,作为写入门(write gate)的输出根边界。未设置时,写入门会对每个解析后的输出路径取前两段有名分量作为默认(例如 /rec/huya/X/20260415/rec/huya/home/user/recordings/X/20260415/home/user)。两段是最小安全默认值——它可以避免意外将 /home/... 布局下不同用户合并到同一个门键。如果您是 /rec 这种单挂载布局,且希望一个挂载点对应一个门键(从而在故障时只收到一条聚合通知、而不是按平台分别通知),请显式设置:RUST_SREC_OUTPUT_ROOTS=/rec-

资源限制 (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}

Released under the MIT License.