侧边栏壁纸
博主头像
是羊刀仙啊博主等级

闲不下来!

  • 累计撰写 84 篇文章
  • 累计创建 31 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

秒变录播大师,快速搭建最强录播工具,轻松捕捉精彩直播瞬间!

羊刀仙
2024-07-22 / 0 评论 / 0 点赞 / 129 阅读 / 9231 字
温馨提示:
本文最后更新于 2024-07-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

大家好,我是羊刀仙。

本篇为大家介绍一款录播工具,可通过Docker快速部署,正好手头有NAS,爱看直播或喜欢直播的朋友可以搭建一个愉快录播啦!

站点url支持情况cookie
Acfun直播live.acfun.cn滋瓷
哔哩哔哩直播live.bilibili.com滋瓷滋瓷
战旗直播www.zhanqi.tv滋瓷
斗鱼直播www.douyu.com滋瓷
火猫直播www.huomao.com滋瓷
龙珠直播longzhu.com滋瓷
虎牙直播www.huya.com滋瓷
CC直播cc.163.com滋瓷
一直播www.yizhibo.com滋瓷
OPENRECwww.openrec.tv滋瓷
企鹅电竞egame.qq.com滋瓷
浪liveplay.lang.live & www.lang.live滋瓷
花椒www.huajiao.com滋瓷
抖音直播live.douyin.com滋瓷滋瓷
猫耳fm.missevan.com滋瓷
克拉克拉www.hongdoufm.com滋瓷
YY直播www.yy.com滋瓷
微博直播weibo.com滋瓷

项目特点

支持国内基本所有主流直播平台,直接添加直播网址便可执行任务,操作十分简单;
可通过Dokcer快速部署,兼容arm/v6(服务器、软路由、NAS等),后续维护方便;
可以配合Grafana查看主播的直播时间;

部署流程

本篇会使用威联通NAS进行搭建,其它平台可做参考,无太大区别。

SSH连接NAS,输入以下命令,clone作者提供的文件:

clone文件.png

# 这里选择直接clone官方文档,因此不需要创建

cd /share/Container

git clone https://github.com/hr3lxphr6j/bililive-go.git

SSH操作到这里,可以直接关闭终端控制台,转移至web端打开NAS管理界面。

先直接放上代码了,我对作者提供的docker-compose.yml进行了部分修改:

version: "3.7" 

volumes:
    prometheus_data: {}  # 定义prometheus_data卷,用于持久化Prometheus数据

services:
  bililive-go:  
    image: chigusa/bililive-go 
    restart: unless-stopped  
    container_name: bililive-go  
    volumes:
      - /share/Container/bililive-go/Videos:/srv/bililive  # 用于存放录制的视频,这个不建议照抄,请自己指定路径
      - /share/Container/bililive-go/config.docker.yml:/etc/bililive-go/config.yml  # 将主机的config.docker.yml文件挂载到容器的/etc/bililive-go/config.yml,作为配置文件
    ports:
      - 9970:8080  # 冒号左侧端口修改

# 若仅仅需要录播,从这里之后可全都删掉

  prometheus: 
    image: quay.io/prometheus/prometheus  
    restart: unless-stopped  
    container_name: bililive-prom 
    volumes:
      - /share/Container/bililive-go/prometheus_data:/prometheus  # 用于持久化存储Prometheus数据
      - /share/Container/bililive-go/contrib/prometheus:/etc/prometheus  # Prometheus的配置目录
    command:
      # Prometheus启动命令和参数,以下参数建议保存数据至少30天
      - '--storage.tsdb.retention.time=30d'  
      - '--config.file=/etc/prometheus/prometheus.yml'  
      - '--storage.tsdb.path=/prometheus' 
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
     ports:  
      - 9971:9090  # 冒号左侧端口修改

  grafana:  
    image: grafana/grafana-oss 
    restart: unless-stopped 
    container_name: bililive-graf  
    volumes:
      - /share/Container/bililive-go/contrib/grafana/provisioning:/etc/grafana/provisioning  # Grafana的配置
    environment:  
      - GF_SECURITY_ADMIN_USER=${ADMIN_USER}  # 管理员用户名,从环境文件.env获取
      - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD}  # 管理员密码
      - GF_USERS_ALLOW_SIGN_UP=false  # 禁止用户注册
      - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/bilipanel.json  # 设置默认仪表板路径
    ports:
      - 9972:3000  # 冒号左侧端口修改

上面grafana项目的管理员用户名及密码完全不用理会,默认皆为admin,就算不改,部署后第一次登陆也会强制咱们修改~

先打开文件总管,在刚刚clone的文件目录下,新建一个prometheus_data文件夹:

新加一个文件夹.png

接着打开 Container Station,将上面的代码稍加修改(文件映射目录和端口号)后,复制粘贴进行创建:

开始创建.png
稍加等待,可以看到已经创建成功:

部署成功.png

项目使用

bililive-go

根据上文,web输入NAS_IP:9970 即可进入控制台,点击添加房间:

添加房间.png
提示我们输入URL,就是观众在web看直播时网址栏对应的那个网址,复制粘贴进去即可:

复制直播间链接.png
添加完毕后,有的显示录制中(正在直播),有的则是监控中(未开播)。未开播的房间等开播后也会自动监控开始录制:

添加完毕.png
回到NAS,打开之前用于存放录像的- /share/Container/bililive-go/Videos:/srv/bililive目录,.flv代表原画面。没几分钟就这么大了。。。所以建议大家自己更换存放目录:

录制结果.png
回到项目的控制面板,点击最右侧的文件:

可以直接查看.png
可以快速查看录播的文件:

快速查看录播文件.png
对着文件单机,就可以快速播放内容:

快速在线播放.png
左侧设置,可以看到一串串配置代码,细致的功能修改需要我们在这里进行:比如我们若只想录制音频,可将audio_only: false改为audio_only: true。但要注意的是,修改配置时建议先停止监控,有些配置可能需要项目重启后才会生效:

查看配置.png

一些其它配置,大家若有需求可以参考自行修改或添加:

rpc:  # RPC 服务的配置
  enable: true  # 启用 RPC 服务
  bind: :8080  # RPC 服务绑定的地址和端口,这里绑定到 8080 端口
debug: false  # 是否启用调试模式
interval: 20  # 录制检查间隔时间,单位为秒
out_put_path: ./  # 输出文件的路径,默认为当前目录
ffmpeg_path:  # ffmpeg 可执行文件的路径,如果为空,则从环境变量中查找
log:  # 日志配置
  out_put_folder: ./  # 日志输出目录
  save_last_log: true  # 是否保存上一次的日志
  save_every_log: false  # 是否保存每次的日志
feature:  # 特性配置
  use_native_flv_parser: false  # 是否使用原生的 FLV 解析器
live_rooms:  # 配置要监听的直播间列表
  # qulity 参数目前仅 B 站启用,默认为 0
  # (B 站)0 代表原画 PRO(HEVC) 优先, 其他数值为原画(AVC)
  # 原画 PRO 会保存为 .ts 文件, 原画为 .flv
  # HEVC 相比 AVC 体积更小, 减少 35% 体积, 画质相当, 但是 B 站转码有时候会崩
  - url: https://www.lang.live/room/5664344  # 直播间 URL
    is_listening: false  # 是否监听该直播间
  - url: https://live.bilibili.com/22603245  # 直播间 URL
    is_listening: true  # 是否监听该直播间
    quality: 0  # 录制画质,0 为原画 PRO(HEVC)
out_put_tmpl: ""  # 输出文件的模板,留空使用默认模板
video_split_strategies:  # 视频分割策略
  on_room_name_changed: false  # 是否在直播间名称改变时分割视频
  max_duration: 0s  # 单个录像时间,用于分段,0 表示不限制,1h为1小时
  # 仅在 use_native_flv_parser=false 时生效
  # 单位为字节 (byte)
  # 有效值为正数,默认值 0 为无效
  # 负数为非法值,程序会输出 log 提醒,并无视所设定的数值
  max_file_size: 0  
cookies: {}  # Cookies 配置,留空表示不使用
on_record_finished:  # 录制完成后的操作
  convert_to_mp4: false  # 是否将录制的 FLV 文件转换为 MP4
  delete_flv_after_convert: false  # 转换为 MP4 后是否删除原始 FLV 文件
  # 当 custom_commandline 的值不为空时,convert_to_mp4 的值会被无视,
  # 而是在录制结束后直接执行 custom_commandline 中的命令。
  # 在 custom_commandline 执行结束后,程序还会继续查看 delete_flv_after_convert 的值,
  # 来判断是否需要删除原始 flv 文件。
  # 以下是一个在录制结束后将 flv 视频转换为同名 mp4 视频的示例:
  # custom_commandline: '{{ .Ffmpeg }} -hide_banner -i "{{ .FileName }}" -c copy "{{ .FileName | trimSuffix (.FileName | ext)}}.mp4"'
  custom_commandline: ""  # 自定义命令行,在录制结束后执行
timeout_in_us: 60000000  # 超时时间,单位为微秒

bililive-graf(Grafana)

根据上文,web输入NAS_IP:9972,账户/密码皆为admin:

登陆 gra.png
登陆后会弹出强制修改密码界面:update your password。改好后点击 Submit

更新你的密码.png
再次登陆后,先修改下语言,按照下图位置,选择中文(简体)并点击SAVE即可:

设置中文.png
搭配Grafana查看主播的直播时间,还有录制文件的大小等:

grafana.png

反向代理

项目通过NAS部署,所以依然选择Lucky实现,关于Lucky部署及注意事项参考这篇:https://blog.ydxian.xyz/archives/lucky

点击添加子规则:

添加子规则-oxsl.png

这里放上配置截图:

1111-uvgh.png

前端地址填写你解析好的二级域名;

后端是局域网访问该服务的完整链接;

由于这个项目组并不擅长安全内容,我顺便建议大家在lucky自行设置认证。

最后

这个录播工具还是非常不错的,忙起来的时候会错过很多精彩直播。比如官方赛事,还有几个爱看的主播并没有上传录播记录的习惯,就可以借助这个工具进行录制,休息吃饭的时候看一看(很下饭)。

如果本篇你觉得不错,别忘了多多三连支持,能点个关注是最好的!

我是羊刀仙,后续也会继续分享各类好玩的Dokcer项目、软件应用和精致好物,本篇到此结束,感谢观看~

0

评论区