大家好,我是羊刀仙。

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

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

项目特点


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

部署流程


本篇会使用威联通四盘位NAS:TS-464C2进行搭建,主要是威联通Container Station的Docker管理十分方便,是我所用过品牌NAS中体验最好的,利于后期调整维护。其它平台可做参考,无太大区别。

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

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

# 这里选择直接clone官方文档,因此不需要创建 cd /share/Container git clone https://github.com/hr3lxphr6j/bililive-go.git # 没安装git,先去应用中心添加第三方软源进行下载 Qgit

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文件夹:

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

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

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

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

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

项目使用


⭕️bililive-go

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

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

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

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

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

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

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

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

回到项目的控制面板,点击最右侧的文件:

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

可以快速查看录播的文件:

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

对着文件单机,就可以快速播放内容:

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

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

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

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

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:

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

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

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

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

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

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

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

反向代理


项目通过NAS部署,所以依然选择Lucky实现,关于Lucky部署及注意事项参考这篇:

点击添加子规则:

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

这里放上配置截图:

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

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

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

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

最后


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

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

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

该内容正在参与「夏日挑战赛」征稿活动,分享你的夏日日常,看看谁最会过夏天,赢大额现金,2万金币!查看详情→

,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。