一、前言
大家好,我是攻城狮阿程。由于最近在抖音平台直播炉石标准天梯,发现某音自己的直播工具:某音直播伴侣并不是很好用,而且录制时会有极偶尔情况下掉帧,非常影响视频素材的剪辑体验,因此今天阿程就给大家再带来一款能够在线录制直播平台内容的容器应用 —— Bililive-go,这样自己通过内网穿透或极空间远程访问功能就可以在任何时间任何地点选择自己喜欢的主播进行内容录制了。
码字不易,喜欢我的教程欢迎各位多提建议多评论,畅所欲言,涉及破解、打倒美帝走近科学和资源分享的教程容易被和谐,也欢迎各位关注我的公众号和博客,以防走丢。
公众号:攻城狮阿程
知乎:攻城狮阿程
小红书:果冻橙是橘子吗の快乐生活
个人博客:strider1230.cn
淘宝:阿程数码
抖音炉石传说:果冻橙是橘子吗
B站炉石传说:果冻橙是橘子吗
1.1 软件介绍
Bililive-go 是一个支持多种直播平台的直播录制工具,适合在各种情景下对直播的内容进行录制。它部署方便,使用简单,我们仅需将自己想要观看的直播间链接添加到这款工具中它便能自动执行监控与录制任务,并且对于对于某音直播和小破站直播,还支持录制直播时使用 cookie,非常方便。
1.2 软件支持的平台
Bililive-go 目前有 18
个支持的直播平台,列表如下:
1.3 部署容器前你可能需要一块固态硬盘
我教程内展示的容器都是配置在固态硬盘上的,建议想多搭容器及虚拟机的朋友在执行教程前先准备一块固态硬盘,容器、虚拟机安装在固态硬盘的好处如下:
不会干扰机械硬盘的休眠,使得机械硬盘始终扮演数据保存的角色
部署在固态硬盘内的容器、虚拟机调用以及响应的速度都比机械硬盘好
容器若发生泄露,不会污染、破坏你的机械硬盘内的数据
1.4 M.2接口 SSD 固态硬盘的适配
Z4系列的M.2接口支持高速存储
、只读缓存
等功能,如果是要在固态硬盘内部署虚拟机、容器服务等,需要选择高速存储
功能;
仅支持M.2接口 NVMe 2280 的SSD固态硬盘,其中2280指的是长度;
官方说由于PCIe4.0自身的兼容性问题,极空间暂时不支持PCIe4.0的SSD,但是实验下来是支持PCIe4.0的固态的,只是安装上去以后该固态硬盘的温度会比PCIe3.0的固态硬盘高10℃左右,因此买的时候要还是建议选择PCIe3.0的SSD;
设置只读缓存时,Z4系列8G-16G内存的产品建议选购256G容量;16G及以上内存的产品建议选购512G容量;(PS:极空间Z4Pro 是支持DDR5 32G 4800MHz的笔记本电脑内存哦)
设置高速存储时,SSD不得小于32GB,最大支持4T;
建议选购大品牌的SSD,这里推荐一个我用了两年的:致钛tiplus5000 1TB/2TB,京东和淘宝上都有货源;
* 请选择耐用 SSD。由于 SSD 的寿命受限于有限的写入次数,请确保使用耐用性更高的 SSD,以防止潜在风险。
1.5 应用截图
二、部署 Bililive-go 容器
2.1 下载 Bililive-go 官方镜像
2.1.1 通过极空间的 Docker 管理页面拉取(确保镜像源的选择:Docker Hub)
第一步:打开仓库设置界面,确保镜像源选择的是 Docker Hub(Docker Hub打不开的可以去看翻我公众号的另一篇教程);
第二步:在左侧边栏选择“镜像”,然后点击“仓库”,接着再点击“自定义拉取”按钮后,点击“自定义拉取”按钮,在弹出的对话框中输入chigusa/bililive-go
拉取镜像,点击拉取,等待拉取完成。
2.1.2 导入其他来源获取的镜像(如极空间用户之间的闪电传)
部分用户可能没有科学上网环境,也不会按上述步骤配置镜像站,导致镜像无法远程拉取,可以通过其他下载途径进行下载,或使用极空间本身提供的闪电传、文件分享功能获取链接下载。
2.2 配置 bililive-go 容器
第一步:在本地镜像找到拉取到的镜像,点击添加到容器;
第二步:为了防止极空间突然因停电或升级等原因重启,因此需要勾选上极空间开机后自动启动此容器
选项,这里建议勾选调用核心显卡
,对直播录制会有聊胜于无的帮助;
第三步:容器需要配置本地文件夹路径以便录像数据存放,可按下图配置路径,这里需要说明的是如果没有固态硬盘而配置在机械盘里面的话,那么你的机械硬盘可能无法休眠,将会一直工作,因此建议是配置在固态硬盘中。
第四步:如下图所示配置网络和端口号即可,其中端口号:6080 是我设置的页面端口号,如果遇到端口冲突的情况,请自行设置其他高位端口;
第五步:完成以上之后看到容器显示“运行中”,就说明可以使用了。
三、 程序测试
3.1 测试登录程序前端页面
使用浏览器打开你极空间的“IP : Bililive-go 端口号:6080
(容器端口默认为8080
),能够看到下图所示界面说明 Bililive-go 已经部署成功。
3.2 测试通过极空间自带的远程登录功能进行访问
第一步:先点击极空间的“远程访问”图标;
第二步:在弹出的对话框中点击“添加新的链接“按钮;
第三步:在弹出的”编辑远程访问“对话框中,备注栏填写:bililive-go
,地址栏填写:"你极空间容器的IP地址:6080",点击“保存”按钮。
四、Bililive-go 的实操演示(搭配内网穿透使用效果最佳)
① 如下图打开之后直接进入管理页面,先点击右上角“添加房间”来添加一个直播链接,直播链接就是正在直播的房间的网页地址链接,这里我随便找了一个斗鱼播炉石传说的主播的房间。
② 直接复制直播链接并粘贴过来,点击OK按钮后就添加成功了。因为只有在主播直播时才能看到直播链接,所以添加之后默认就是录制中,如果不想录制本期可以点后面的“停止监控”,这个时候就会退出录制,停止监控之后可以看到运行状态显示的是“已停止”。
③ 如果你需要录制这位主播下次的直播,我们直接开启监控,它的运行状态就会显示“监控中”,等到下次该主播再次直播的时候,该工具就会自动录制了。
④ 录制的直播素材可以直接点击右侧的“文件”打开。
⑤ 默认录制的格式是“.flv”原画面,相对来说原画面还是非常占用内存的,请务必留意自己的NAS固态硬盘容量是否充裕。
⑥ 可以直接通过网页端播放录播的文件,以检查录制的质量。
⑦ 也可以通过极空间的文件管理器打开录制的直播视频,在我们指定的存放直播录制文件目录中可以看到软件已经自动将抖音和斗鱼直播平台的录制文件通过创建各自的文件夹分好类,并且在同一直播平台内,此处是斗鱼,同样通过文件夹将铲车老师和另一位主播的直播素材也分好了类,可见该应用的功能非常强大。
⑧ 最后放一下自用的Z4Pro性能版的信息,CPU为Intel的i3-N305,8核8程3.8GHz的最大频率,核显为UHD,跑该容器录直播素材么问题啦。
4.5 一些常见问题的解答
Q1:可以用这个容器应用来录制某位大主播的直播素材来进行B站投稿吗?
A:可以,其实在写这篇文章之前,就已经有很多用户这样使用了。
Q2:我的固态硬盘容量小,可以把这个容器的录制内容存放路径改到机械硬盘上吗?
A:可以,只要你能忍受机械硬盘不休眠。
Q3:我可以在极空间的虚拟机上布置该项目吗?
A:可以,但是没有必要。因为极空间的虚拟机目前仍未开放显卡直通功能,你部署上去就无法享受极空间CPU上微博的显卡加速功效了。
Q4:我想做一些更加细化的直播内容录制设置,请问可以实现吗?
A:可以,其它更细化的选择,是通过修改“设置”选项里面的config.yml代码来实现的。
这里附上代码的注释说明,有需要的朋友可自行修改,yml代码对格式要求非常高,修改的时候请务必注意格式问题。
rpc: # RPC 服务的配置
enable: true # 启用 RPC 服务
bind: :8080 # RPC 服务绑定的地址和端口,这里绑定到 8080 端口,【这里显示的我们在浏览器网页UI的管理网址,可以修改。一般推荐默认】
debug: false # 是否启用调试模式,【开启后,在bililive-go.log内输出详细程序运行报文日志,方便排错和求助大佬,一般建议推荐开启】
interval: 20 # 录制检查间隔时间,单位为秒。【默认间隔20S轮询一次。如果录制直播多的话,建议间隔加长。否则抓到流地址很容易被直播官方的服务器Ban掉】
out_put_path: ./ # 输出文件的路径,默认为当前目录
ffmpeg_path: # ffmpeg 可执行文件的路径,如果为空,则从环境变量中查找
log: # 日志配置
out_put_folder: ./ # 日志输出目录,直接输出在安装目录下。有特殊需求可以单独存放
save_last_log: true # 是否保存最近报文
save_every_log: false # 是否保存每条报文都生成一个log文件
feature: # 特性配置
use_native_flv_parser: false # 是否开启flv parser录制【默认flase,默认bililive-go使用ffmpeg录制。如果录制视频出现花屏(P.S:直播画面分辨率突变、某些平台PK阶段,容易出现花屏)情况,可以尝试开始flv _parser】
remove_symbol_other_character: false # 是否替换部分文件含特殊字符文件名【默认flase。当录制文件名含有特殊字符,会出现乱码可以开启此选项】
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 # 是否监听该直播间 【此行代表录制直播间网站,此处以B站为例。后面“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 配置,留空表示不使用,cookie的设置以域名为单位。比如想在录制抖音直播时使用 cookie,那么 config.yml 中可以像下面这样写:
# cookies:
# live.douyin.com: __ac_nonce=123456789012345678903;name=value
# 这里 name 和 value 只是随便举的例子,用来说明当添加超过一条cookie的键值对时应该用分号隔开。至于具体应该添加哪些键,就需要用户针对不同的网站去自行获取了。
on_record_finished: # 录制完成后的操作配置
convert_to_mp4: false # 是否将录制的 FLV 文件转换为 MP4
delete_flv_after_convert: false # 转换为 MP4 后是否删除原始的 FLV 文件【默认ffmpeg录制流,录制生成为.flv格式。如果有.MP4格式需求的朋友,可以开启。千万记住转换MP4是在录制完成后ffmpeg才会转码MP4,并不是边录边转】
# 当 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-go 这个自动直播录制工具是非常有用的,有了它我们再也不用卡点或者熬夜去追直播了,比如世界杯期间去录制球赛,我们仅需添加好自己喜欢的直播房间,它就能自动监控主播的直播状态,只要主播开始直播,这个工具就会自动将这场直播录制到我们的NAS硬盘中,并且还是原画录制,再也不用担心错过精彩直播。项目使用时的CPU占用不高,但是如果同时录制好几个主播的视频内容的话,可能会出现资源占用较大的情况,同时容器对内存的要求也挺高,因此个人建议搭建该容器的话NAS处理器至少得是N305这个级别往上,内存至少有16G以上,所以如果是长期用的话,我个人比较推荐用Z4Pro性能版及更高配置的设备部署。
如果你看完教程还是觉得部署很困难,也可以扫描下方二维码进入我的淘宝小店——阿程数码,直接购买对应的极空间 Docker 服务,我会远程帮你有偿部署。