一个优秀的直播录制工具

之前在gayhub上瞎逛,想找一找有没有能够下载bilibili大会员视频的工具(传cookie进去然后下载的那种),然后意外找到了一个叫做bililive-go的项目,目前支持哔哩哔哩、熊猫、战旗、斗鱼、火猫、龙珠、虎牙、全民、CC、一直播、twitch、OPENREC共12家平台的直播原画录制,是王老菊未来科技的优秀“员工”使用Go语言编写,依赖项仅有ffmpeg

简单配置

Linux

  • 完善依赖:
apt install -y ffmpeg p7zip-full
# or
yum install -y ffmpeg p7zip

直接使用现成的包就好

  • 获取二进制文件
    以x64平台为例,为了简单起见,解压后我将文件重命名为了bililive-go
wget --no-check-certificate https://github.com/hr3lxphr6j/bililive-go/releases/download/0.22.12/bililive-go-linux-amd64.7z
7z x bililive-go-linux-amd64.7z && rm -rf config.yml && mv bililive-go-linux-amd64 bililive-go
# config.yml在这里用不上,如果需要进阶使用可以保留并编辑
  • 使用(建议在Screen中运行或者使用nohup)
./bililive-go -i {直播间地址1} -i {直播间地址2} ... -i {直播间地址n} -o {输出目录} -t 5

-t是检查直播是否开始的间隔,可以适当调大一点;软件可以使用ctrl+c或者kill -2信号停止录制,并且得到一个正常的录播文件

Windows

  • 首先还是解决ffmpeg的依赖问题,从官网下载ffmpeg,下载最新的稳定release版本即可,并将其解压到某个文件夹;我这里是以前下载的ffmpeg4.1版本,找到解压后目录里的bin文件夹并打开,可以看到ffmpeg.exe的可执行文件,我们要将其所在目录添加到系统环境里,让bililive-go能够正常调用;
  • 如图所示添加环境变量
    添加环境变量
    如果一切正常,添加完成后在cmd中运行ffmpeg -version应该有类似下面的输出
    检查ffmpeg
  • 下载解压bililive-go,这里我同样将bililive-go-windows-amd64.exe重命名为了bililive-go.exe;并将文件复制到ffmpeg的bin目录内
  • win+R组合键打开cmd
  • 类似之前的格式运行bililive-go
    运行

Linux下进阶使用(为什么没有win呢

作者在https://github.com/hr3lxphr6j/bililive-go/blob/master/docs/API.md 中提供了非常完善的web控制API,并且连如何注册成服务都甩到你脸上了,接下来我们就尝试将bililive-go注册成系统服务,并且通过外部脚本进行管理。
在简单配置的基础上,将二进制文件移动到/usr/bin目录下(匹配原作者给的服务文件写法)

mv bililive-go /usr/bin/
mkdir -p /etc/bililive-go/
echo "rpc: 
  enable: true
  port: 127.0.0.1:6161
  token: \"填入你的token\"
  tls:
    enable: false
    cert_file: \"\"
    key_file: \"\"
debug: false
interval: 5
out_put_path: /Record
" > /etc/bililive-go/config.yml
echo "[Unit]
Description=Live Stream Saver
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/bililive-go -c /etc/bililive-go/config.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/bililive-go.service
systemctl daemon-reload
systemctl enable bililive-go.service
systemctl start bililive-go.service

正常情况下,netstat -tunlp | grep bililive-go命令将输出:
Linux0.png
我们希望这个服务可以远程调用,因此使用nginx进行一下反代……反代过程略
写了一个Python的简易控制程序……点击这里查看

Last modification:August 21, 2020
(๑´ڡ`๑)