一个录制带弹幕直播流的小工具(版本3)
简介
做这个小软件的原因是最近看MDY的录男工作效率不高(摆烂),而且直播弹幕录不下来,没法吸收弹幕的营养,于是乎写了这样一个小工具来供录男们学习研究使用。
结合上个版本存在的一些问题(很吃资源,同时只能录制一个直播),这个版本改进了录制算法,可以快速同时录制多个视频流。这个版本的主要功能如下:
可以录制纯净直播流和弹幕,并且支持在本地预览带弹幕直播流。
可以自动渲染弹幕到视频中,并且渲染速度快。
支持同时录制多个直播。

GitHub项目地址:https://github.com/SmallPeaches/DanmakuRender。有更新第一时间会在GitHub上更新,有问题可以先去重新下载一份最新的代码试试。
环境准备
这个版本我对程序做了环境准备做了简化,只需要下载代码和安装Python即可。其他的Python包和ffmpeg会在程序运行时自动提示下载安装。
首先下载代码文件,前往GitHub项目地址,然后依次点击Code-Download ZIP按钮下载压缩包,并把文件解压到你想要的位置。

然后下载Python(之前已经安装的就不用装了,不知道怎么下的就下载这个 https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe)。安装时一定要注意选择Add Python xxx to PATH这个选项,至于安装路径什么的可以自由选择。

运行程序
程序的工作流程是:先录制一小时直播,然后在录制下一小时直播时启动对这一小时直播的渲染。录制完成后可以同时得到直播回放和带弹幕的直播回放(分为两个视频)
注意事项:
以下命令均在命令行窗口下输入。打开命令行窗口的方法是:win10系统shift+右键点击页面空白处,在菜单中选择“在此处打开powershell窗口”,win11直接右键选择“在终端中打开”。
程序默认使用NVIDIA的硬件编码器渲染,如果用A卡的话需要另外附带参数。如果不渲染弹幕就不用管。
程序录制时默认录制原画(直播间最高画质),渲染弹幕时默认使用恒定质量渲染,fps游戏直播大概一个小时6-7GB,聊天直播大概一个小时2-3GB,一个小时的视频大约需要渲染20分钟。
在关闭程序时,如果选择了自动渲染弹幕,则一定要等录制结束并且渲染完成再关闭(由于程序设定是先录制后渲染),否则带弹幕的录播会出问题。
如果因为配置比较差,渲染视频比较慢导致渲染比录制慢很多的,可以选择先不渲染弹幕,在录制结束后手动渲染。(这种情况比较少见,因为渲染的速度很快,我1060的显卡都可以同时录两个直播)
实例:
常规录制(同时录制弹幕和直播,并且自动渲染弹幕,然后切割成一个小时一块):python main.py -u <链接>,例如:python main.py -u https://www.huya.com/712416
同时录制多个直播,多个直播链接需要用英文逗号隔开:python main.py -u <链接1>,<链接2>,<链接3>,例如:python main.py -u https://www.huya.com/712416,https://www.huya.com/712417
调节录制的弹幕占比、弹幕大小和透明度:python main.py -u <链接> --dmrate <弹幕占比> --fontsize <弹幕字号> --opacity <不透明度>,例如:python main.py -u https://www.huya.com/712416 --dmrate 0.4 --fontsize 36 --opacity 0.8
使用AMD显卡渲染弹幕:python main.py -u <链接> --gpu amd
只录制直播流,不渲染弹幕:python main.py -u <链接> --disable_auto_render,例如:python main.py -u https://www.huya.com/712416 --disable_auto_render
只渲染弹幕,这里会渲染录像文件夹里所有没渲染的文件,如果因为程序故障有些视频在录制时没有渲染完成就可以使用这个命令重新渲染:python main.py --render_only
预览:
在录制的过程中弹幕保存为一个字幕文件,因此使用支持字幕的播放器在本地播放录播可以有弹幕的效果(就算是没渲染弹幕也可以!),拿VLC播放器为例,在播放录像时选择字幕-添加字幕文件,然后选择对应的ass文件就可以预览弹幕了。

最后
这个小程序只供大家学习与研究使用,如果有问题很正常。如果出了bug可以私信或者在GitHub上面提交issue,我会尽量帮你解决。另外有什么好的改进想法也可以和我说。
感谢 THMonster/danmaku, wbt5/real-url, ForgQi/biliup 的工作。