Bilibili(B站)无人值守直播工具。自动登录,自动获取直播推流地址,自动推流(使用ffmpeg),可以用于电脑、树莓派等设备无人值守直播。
Tips: 除了开播工具BilibiliAutoLiver以外,其余工具没有编译二进制发行版本。如有需要,可以提交Issue或者自行下载编译。
扫描二维码登录:
自动化推流直播:
获取程序
树莓派 64位操作系统:
wget https://github.com/withsalt/BilibiliLiveTools/releases/latest/download/BilibiliAutoLiver_Linux_ARM64.zip --no-check-certificate
Windows:
点击链接下载:https://github.com/withsalt/BilibiliLiveTools/releases/latest/download/BilibiliAutoLiver_Windows_x64.zip
解压并授权
unzip BilibiliAutoLiver_Linux_ARM64.zip && chmod -R 755 BilibiliAutoLiver_Linux_ARM64 && chmod +x BilibiliAutoLiver_Linux_ARM64/BilibiliAutoLiver
运行
在Linux上面运行:
./BilibiliAutoLiver --urls="http://*:18686"
这行命令的意思是运行程序,并监听18686端口。
使用哔哩哔哩APP扫码登录
程序开始运行后,找到命令行中输出的地址信息,如下图所示:
在任意浏览器中打开上述任意一个地址,将会出现二维码界面
使用哔哩哔哩APP进行扫码登录。扫码登录成功后,只要账号不主动退出,就不用再进行扫码登录啦。
编辑直播设置
默认情况下,是没有推流配置的。只有配置推流信息之后,才能进行推流。
扫码登录之后,进入直播设置->推流设置,按照说明填写推流命令(目前仅支持高级模式)。建议填写之前先测试推流命令能否正确执行。
高级模式推流命令中的“{URL}”,是一个配置符号,将在程序中被替换为获取到的Bilibili推流地址,所以一定要在最终命令中,把测试文件或者地址修改为 “{URL}”(URL大写) ,否则无法保存。
这里提供常见的两条推流命令:
a. 树莓派,Linux操作系统:
推流名称为/dev/video0
的摄像头的画面。
ffmpeg -thread_queue_size 1024 -f v4l2 -s 1280*720 -input_format mjpeg -i \"/dev/video0\" -stream_loop -1 -i \"Content/demo_music.m4a\" -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280*720 -g 60 -b:v 10M -bufsize 10M -acodec aac -ac 2 -ar 44100 -ab 128k -f flv {URL}
b. Winodws操作系统
推流名称为HD Pro Webcam C920
的摄像头的画面。
ffmpeg -f dshow -video_size 1280x720 -i video=\"HD Pro Webcam C920\" -vcodec libx264 -pix_fmt yuv420p -r 30 -s 1280*720 -g 60 -b:v 5000k -an -preset:v ultrafast -tune:v zerolatency -f flv {URL}
命令参数具体含义我就不解释了,建议直接问ChatGPT,或者直接让ChatGPT帮忙写推流命令。
安装FFmpeg(可选)
为什么是可选?因为已经默认内置了ffmpeg,不用自行安装。但是对于一些其他的linux发行版。可能没有内置ffmpeg,所以需要用户自行安装ffmpeg。
Linux(基于debian的发行版):
# 安装,就这一行命令
sudo apt install ffmpeg
# 测试是否安装,有输出表示安装完成
ffmpeg -version
停止推流
进入直播设置->推流设置,点击停止直播。
配置开机自启等
Linux上面配置系统服务,可以查看:https://www.quarkbook.com/?p=733
FFmpeg报错
肯定是你的ffmpeg指令有问题。这个工具严格意义上来说就是一个ffmpeg调用工具,ffmpeg的使用,全靠你自己。
通过Cookie登录失败
长期未登录(至少半年),修改过密码(修改密码后全平台下线),账号失效了?
FFmpeg测试失败,An error occurred trying to start process...
未安装ffmpeg。
项目中所用的API都是各处扒拉来的野生API,非官方提供的API。因为B站随时在更新API,所以工具有随时挂掉的风险。当发现工具非配置原因导致不可用时,请提交issue。所以在未来遇到无法解决问题且无人接收情况下,此项目将会被废弃。
还有种情况是,我本人也不用了。也就不更新了.....
1、添加日志功能,能清晰的看到是为何开启推流失败
2、不再直接使用ffmpeg推流命令进行推流,将改为内置的推流方式。将有更高的可玩性,比如提供一个图像处理管道,通过机器视觉对图像进行二次处理。
3、弹幕获取功能(有这个计划,但是我感觉没啥用,不一定会搞)