本文最后更新于 2025-05-26,文章内容可能已经过时。

在直播内容为王的时代,如何高效捕捉精彩片段并实现二次创作,成为自媒体人及内容创作者的刚需。Stream-rec作为免费开源工具,支持抖音、虎牙、Twitch等众多平台全自动录制,成为内容创作者的「智能云录播管家」和直播切片领域的“效率王者”。

其核心优势在于无人值守录制:通过预设直播间链接,自动监控开播状态并启停录制,同步保存弹幕数据(XML格式),完整保留互动氛围。工具集成Rclone以进行云上传并管理录制内容的本地存储,结合Web界面可灵活配置画质、分段规则,实现横竖屏多平台适配(如抖音竖屏/B站横屏)。

借助Docker部署,用户可快速搭建在NAS等设备上,7×24小时稳定运行,低成本完成直播切片、多平台分发及流量变现,尤其适合自媒体团队与个人创作者提升内容生产效率。

Stream-rec介绍

  • Stream-rec 是适用于各种流媒体服务的自动流录制工具。

  • 它由 Kotlin、Ktorffmpeg 提供支持。

项目用途

📺直播切片是什么?

  • 对直播内容进行分段处理,将直播视频按照一定的时间间隔或者事件节点进行切分,生成多个独立的小视频片段。

  • 直播切片是指对直播内容进行分段处理,将直播视频按照一定的时间间隔或者事件节点进行切分,生成多个独立的小视频片段。这样做的好处是方便用户回看,同时也可以提高直播内容的观看量和用户参与度。对于直播平台而言,直播切片还可以用于生成精彩片段的回放,供用户观看和分享。同时,直播切片也可以用于视频的编辑和剪辑,制作出更加精彩的视频内容。

💰牟利点

  • 对于喜欢看博主直播,但又没时间蹲点观看的人来说,直播切片投稿的视频就成了这些人的电子榨菜,每天都少不了。

  • 对于各类直播切片专业户来说,制作的各种直播切片短视频,只要在各大平台发布出去,基本都能过万的播放量,如果带点节目效果的,几十上百万播放量都是轻轻松松。

  • 而想要获得直播内容,那么就需要蹲守在直播间录制。

  • 本文所写的直播录制工具 Stream-rec,是一款全自动的直播录制工具,解放你的双手,帮助你实现财富自由。

  • Stream-rec就像一位 24 小时待命的“数字助手”,可以自动抓取录制抖音、斗鱼、虎牙、熊猫TV、Twitch、微博等各大平台的直播内容,包括弹幕都可保存下来。

🤩功能优点

  • 多平台支持:抖音、斗鱼、虎牙、熊猫TV、Twitch、微博,其他平台陆续更新支持。

  • 自动录播,可配置录制质量,路径,格式,并发量,分段录制(时间或文件大小),分段上传,根据直播标题和开始时间自动命名文件。

  • 自动弹幕录制(XML 格式),可使用 DanmakuFactory 进行弹幕转换,或配合AList来实现弹幕自动挂载。

  • 使用 SQLite数据库 持久化存储录播和上传信息

  • 支持 Rclone 集成以进行云上传并管理录制内容的本地存储。

  • 可通过 Web 界面进行配置

  • 支持 Docker、源码 部署

  • 支持 FLV AVC 修复

截图预览

部署教程

Docker Compose方式

  1. 演示以在群晖NAS系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker compose)

  2. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
    DSM open SSH.png

  3. 进入群晖的docker文件夹(你想将容器数据存储到哪就进哪个文件夹)

    # 将/volume1/docker换成你自己的文件夹路径
    
    cd /volume1/docker
  4. 创建项目文件夹及子文件夹

    mkdir -p stream-rec/{downloads,rclone}
  5. 进入项目文件夹

    cd stream-rec
  6. 编辑docker-compose.yml模板文件

    vi docker-compose.yml
  7. 按字母 i 键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入 :wq 保存并退出。

    networks:
      stream-rec:
    
    services:
      #  后端服务
      backend:
        #  使用最新的主分支映像
        #  如果您想使用特定版本,请更改为streamrec/stream-rec:version
        #  您可以在https://hub.docker.com/r/streamrec/stream-rec/tags中找到所有可用的版本。
        #  latest是最新稳定内测版本,dev 是最新开发版。
        image: streamrec/stream-rec:latest
        #  容器名称,您可以将其更改为任何您喜欢的名称。
        container_name: stream-rec
        restart: unless-stopped
        #  端口映射,您可以将端口更改为您喜欢的任何端口。
        ports:
          - "12555:12555"  # 左侧的12555是容器的后端接口端口,可自行修改。如果修改此后端的端口,需在前端部分配置修改成一样。建议默认。
        networks:
          - stream-rec
        volumes:
          # 主机路径绑定到容器路径、存储路径映射。
          - "./downloads:/opt/records"
          # Rclone 配置文件路径绑定
          - "./rclone:/root/.config/rclone"
        environment:
          # 时区,默认为 Europe/Paris(欧洲/巴黎)。
          - TZ=Asia/Shanghai
          # 代理设置,如果您不需要代理,请将其注释掉。
          #- HTTP_PROXY=http://192.168.110.10:7890
          # 日志级别,默认为 info。DEBUG "日志对调试很有用,但可能非常冗长。
          - LOG_LEVEL=INFO
          # 容器数据库路径
          - DB_PATH=/opt/records
          # 首次初始化的容器默认下载路径
          - DOWNLOAD_PATH=/opt/records
          # 初始化登录密码,您可以将其更改为任何您喜欢的字符串,用于登录。
          # 请注意,该密码只有第一次运行时有效,后续更改不会生效。
          - LOGIN_SECRET=S20306
          # 组 ID
          - PGID=1000
          # 用户 ID
          - PUID=1000
    
      #  前端服务
      frontend:
        #  使用最新的主分支映像
        #  如果您想使用特定版本,请更改为streamrec/stream-rec-front:version
        #  您可以在https://hub.docker.com/r/streamrec/stream-rec-front/tags 中找到所有可用的版本
        #  latest是最新稳定内测版本,dev 是最新开发版。
        image: streamrec/stream-rec-front:latest
        container_name: stream-rec-frontend
        restart: unless-stopped
        #  端口映射,您可以将端口更改为您喜欢的任何端口
        ports:
          - "15275:15275"  # 左侧的15275端口为容器外部访问端口,可自行修改。
        networks:
          - stream-rec
        depends_on:
          - backend
        environment:
          #  时区,默认为 Europe/Paris(欧洲/巴黎)。
          - TZ=Asia/Shanghai
          #  后端 api 网址,由容器名称和端口组成。
          #  如果您不知道自己在做什么,请不要更改它。
          #  确保端口与后端端口相同。 //
          - API_URL=http://backend:12555/api
          #  next-auth(下次登录验证) 的密钥,您可以将其更改为任何您喜欢的字符串。
          - AUTH_SECRET=weixin-S20306
          #  CLIENT 网址,用于下次验证重定向到登录页面。
          #  应该是用户在浏览器中输入的访问前端的地址。
          #  确保端口与前端端口相同。 //
          #  - AUTH_URL=http://localhost:15275/  # 把localhost改成你部署此项目的设备IP
          #  域名基本网址。用于下次验证重定向登录页面。
          #  - NEXT_PUBLIC_BASE_URL=https://abc.xyz
          #  域自定义路径,如不需要,无需填写。
          #  - NEXT_PUBLIC_BASE_PATH=/webui
          #  是否有反向代理,例如 NGINX。建议打开它,NEXT_AUTH目前有 bug。
          - AUTH_TRUST_HOST=true
          #  WS_API_URL,CLIENT websocket 网址。用于实时状态更新。
          #  这应该使用已部署服务器的 IP 地址。
          #  以下是使用 localhost 的示例,您可以将其更改为部署服务器的 IP 地址。
          #  例如,如果后端部署在服务器 IP 地址 12.12.12.12 上,端口为 12555,则应将其更改为 ws://12.12.12.12:12555/live/update
          - WS_API_URL=ws://localhost:12555/live/update
  8. 查看当前文件夹路径

    pwd
  9. 授权该项目文件夹内的读写权限(部分NAS系统需要【如群晖】,否则容器无读写权限访问运行,按需执行。)

    # 把/volume1/docker/换成你自己的实际文件夹路径
    
    chmod -R 777 /volume1/docker/stream-rec/
  10. 执行命令,启动docker-compose模板文件,拉取镜像并创建容器。

    docker-compose up -d
    
    或
    
    docker compose up -d
  11. 查看正在运行的项目容器实时日志,按Ctrl+C中断查看。

    docker-compose logs -f
    
    或
    
    docker compose logs -f

Stream-rec设置

登录Stream-rec

  1. 打开浏览器,以NAS的IP+设置的端口进行访问。
    以本机为例:http://192.168.2.155:15275/zh/login
    用户名:stream-rec
    密码:在前面的docker-compose.yml模板中设置的LOGIN_SECRET密钥就是你的初始登录密码。
    image-rosp.png

  2. 登录后重新设置一个密码

  3. 点击确认后会自动跳转到localhost地址,也就是本地IP,所以我们无法访问,需要把上面的地址改回你的IP地址。

  4. 使用新设置的密码进行登录

  5. 登录成功

配置Stream-rec

  • 演示就只设置关键性的,其余的自行按需使用。

全局设置

  1. 点击设置--全局设置

  2. 点击开启下载弹幕(按需开启)
    下载文件格式(自行选择需要的录播视频文件的存储格式)

  3. 然后拉到底部保存设置

全局平台设置

  1. 点击设置--全局平台设置
    演示就以抖音直播为例

  2. 电脑浏览器打开抖音直播,随便找一个,然后浏览器按Ctrl+Shift+Iwin键+F12,调出开发人员工具。
    点击网络--全部--找到一个页面文件--标头--Cookie。
    把整段Cookie数值复制下来。

  3. 粘贴到框内后,拉到底部点击保存设置

获取直播间房间ID

  1. 电脑浏览器打开抖音直播,进入你需要录播的直播间,复制浏览器顶部的房间ID。

主播列表

  1. 点击主播列表--添加主播,进行设置需要录制的主播直播画面。

  2. 名称:随意,自己分的清是录制的哪个主播就行
    直播链接:网址格式+直播间ID(看下一条)
    启用录制,然后设置录制的时间段(自行设置)

  3. 支持的流媒体服务
    直播间链接对应下面的Url format,自行按需使用。

    Service

    Recording

    Danmu

    Url format

    Douyin

    https://www.live.douyin.com/{douyinId}

    Douyu

    https://www.douyu.com/{room}

    Huya

    https://www.huya.com/{room}

    PandaTV

    https://www.pandalive.co.kr/live/play/{room}

    Twitch

    https://www.twitch.tv/{room}

    Weibo

    https://weibo.com/u/{uid} or https://weibo.com/l/wblive/p/show/{room}

    AfreecaTv

    Bilibili

    Niconico

    Youtube

  4. 在平台专属选项中设置画质和源格式,然后点击保存。
    其余的选项按需设置即可

  5. 添加成功

控制面板

  1. 点击控制面板,可以看到当前录制的直播间。

  2. 点击暂停,我们来看一下保存的文件。

  3. 可以看到我们测试录制了两分钟

  4. 录制的视频可以在录播列表内看到,可以在线观看也可以下载到本地播放。

  5. 回到NAS的项目文件夹内,在默认的downlaods文件夹内,可以看到保存的录制文件。
    (下图为在飞牛NAS上二次测试部署)

  6. 使用支持flv格式的播放器进行播放,可以看到一切正常。

小提示

  • 直播切片记得搞定分发授权,不然等到视频有流量之后,主播/工会那边就会联系你删除视频了。

  • 如果没有授权,那就只能赚点小钱,泼天的富贵只能喝点小雨。

相关地址

文末

👇👇👇