-
Notifications
You must be signed in to change notification settings - Fork 533
More Tips
kira1928 edited this page Feb 21, 2023
·
11 revisions
除了上述一个一个输入参数,bgo也支持从配置文件读取参数,也更滋瓷这种使用方式,下面是一个🌰,直接通过-c
参数指定配置文件路径,在配置文件中添加直播间
bililive-go -c ./config.yml
# config.yml
rpc:
enable: false # 是否开启API
bind: 127.0.0.1:8080 # 监听地址
debug: false # debug模式
interval: 15 # 直播间状态查询间隔时间(秒)
out_put_path: ./ # 输出文件路径
out_put_tmpl: "" # 输出文件模板
live_rooms: # 直播间url
- https://www.panda.tv/10300
- https://live.bilibili.com/1010
video_split_strategies: # 分隔策略
on_room_name_changed: false # 是否在直播间名改变时分隔录像
max_duration: 1h # 单个录像最大时长
on_record_finished: # 录制结束后的动作
convert_to_mp4: true # 把录制好的视频转换一份到 mp4
delete_flv_after_convert: true # 转换完成后删除原视频文件
当然,上述配置文件的所有参数你也可以通过手工的方式来指定(更新:有部分新增选项还没有对应命令行参数),CLI参数如下
--help 显示帮助信息
--version 显示版本信息
--debug 使用debug级log输出
-t, --interval=20 直播见间状态查询间隔,默认20秒
-o, --output="./" 录像输出文件路径
-i, --input=INPUT ... 直播间地址,可以指定多个
-c, --config=CONFIG 指定配置文件的路径
--enable-rpc 开启 Http Rest API
--rpc-addr=":8080" Http Rest API 监听地址
--split-strategies 分隔策略
--output-file-tmpl 输出文件模板
默认的文件名模板如下
{{ .Live.GetPlatformCNName }}/{{ .HostName | filenameFilter }}/[{{ now | date "2006-01-02 15-04-05"}}][{{ .HostName | filenameFilter }}][{{ .RoomName | filenameFilter }}].flv
bgo最终输出的文件名为${out_put_path}/${out_put_tmpl}
。
out_put_tmpl
基于go template实现,并添加sprig中的方法和如下的方法:
方法 | 说明 |
---|---|
decodeUnicode | 还原Unicode字符串,比如\\u9ed1\\u6697\\u5251 -> 黑暗剑
|
replaceIllegalChar | 替换文件名中不支持的字符为_ ,包含:/ , \ , : , * , ? , " , < , > , |
|
unescapeHTMLEntity | 同html.UnescapeHTMLEntity,处理html转义 |
filenameFilter |
replaceIllegalChar + unescapeHTMLEntity
|
输入的对象为live.Info
,可以通过如下指令拿到相应的信息
指令 | 说明 |
---|---|
.HostName |
主播名 |
.RoomName |
房间名 |
.Status , .Listening , .Recoding
|
直播状态,bgo监控器状态,bgo录制器状态,永远为True
|
.Live.GetLiveId |
直播间ID(一串md5 string,由bgo根据直播间url计算所得) |
.Live.GetRawUrl |
直播间url |
.Live.GetPlatformCNName |
直播平台中文名 |