BililiveRecorder/configV3.schema.json
Genteure d7c03f4736
feat: add option to disable spliting when H264 Annex-B is detected (#614)
* feat: add option to disable spliting when H264 Annex-B is detected

* add wpf ui toggles

* chore: remove public api check for flv

* fix warning unboxing a possibly null value

* fix cli tool help text

* feat(wpf): add disable split on h264annexb option for toolbox
2024-11-22 13:55:20 +00:00

917 lines
29 KiB
JSON

{
"$comment": "GENERATED CODE, DO NOT EDIT MANUALLY.",
"$schema": "http://json-schema.org/schema",
"definitions": {
"global-config": {
"description": "全局设置",
"additionalProperties": false,
"properties": {
"FileNameRecordTemplate": {
"description": "录制文件名模板\n默认: {{ roomId }}-{{ name }}/录制-{{ roomId }}-{{ \"now\" | time_zone: \"Asia/Shanghai\" | format_date: \"yyyyMMdd-HHmmss-fff\" }}-{{ title }}.flv",
"markdownDescription": "录制文件名模板 \n默认: `{{ roomId }}-{{ name }}/录制-{{ roomId }}-{{ \"now\" | time_zone: \"Asia/Shanghai\" | format_date: \"yyyyMMdd-HHmmss-fff\" }}-{{ title }}.flv `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": "{{ roomId }}-{{ name }}/录制-{{ roomId }}-{{ \"now\" | time_zone: \"Asia/Shanghai\" | format_date: \"yyyyMMdd-HHmmss-fff\" }}-{{ title }}.flv"
}
}
},
"FlvWriteMetadata": {
"description": "是否在视频文件写入直播信息 metadata\n默认: true",
"markdownDescription": "是否在视频文件写入直播信息 metadata \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"WebHookUrls": {
"description": "WebhookV1\n默认: ",
"markdownDescription": "WebhookV1 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": ""
}
}
},
"WebHookUrlsV2": {
"description": "WebhookV2\n默认: ",
"markdownDescription": "WebhookV2 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": ""
}
}
},
"WpfShowTitleAndArea": {
"description": "桌面版在界面显示标题和分区\n默认: true",
"markdownDescription": "桌面版在界面显示标题和分区 \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"WpfNotifyStreamStart": {
"description": "桌面版开播时弹出系统通知\n默认: false",
"markdownDescription": "桌面版开播时弹出系统通知 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"Cookie": {
"description": "Cookie\n默认: ",
"markdownDescription": "Cookie \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"pattern": "^(S+=S+;? ?)*$",
"maxLength": 4096
}
}
},
"LiveApiHost": {
"description": "API Host\n默认: https://api.live.bilibili.com",
"markdownDescription": "API Host \n默认: `https://api.live.bilibili.com `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": "https://api.live.bilibili.com"
}
}
},
"TimingCheckInterval": {
"description": "主动检查时间间隔 秒\n默认: 600",
"markdownDescription": "主动检查时间间隔 秒 \n默认: `600 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 600
}
}
},
"TimingApiTimeout": {
"description": "请求mikufansAPI超时时间 毫秒\n默认: 10000",
"markdownDescription": "请求mikufansAPI超时时间 毫秒 \n默认: `10000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 10000
}
}
},
"TimingStreamRetry": {
"description": "录制断开重连时间间隔 毫秒\n默认: 6000",
"markdownDescription": "录制断开重连时间间隔 毫秒 \n默认: `6000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 6000
}
}
},
"TimingStreamRetryNoQn": {
"description": "录制无指定画质重连时间间隔 秒\n默认: 90",
"markdownDescription": "录制无指定画质重连时间间隔 秒 \n默认: `90 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 90
}
}
},
"TimingStreamConnect": {
"description": "连接直播服务器超时时间 毫秒\n默认: 5000",
"markdownDescription": "连接直播服务器超时时间 毫秒 \n默认: `5000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 5000
}
}
},
"TimingDanmakuRetry": {
"description": "弹幕服务器重连时间间隔 毫秒\n默认: 9000",
"markdownDescription": "弹幕服务器重连时间间隔 毫秒 \n默认: `9000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 9000
}
}
},
"TimingWatchdogTimeout": {
"description": "最大未收到直播数据时间 毫秒\n默认: 10000",
"markdownDescription": "最大未收到直播数据时间 毫秒 \n默认: `10000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 10000
}
}
},
"RecordDanmakuFlushInterval": {
"description": "触发刷新弹幕写入缓冲的个数\n默认: 20",
"markdownDescription": "触发刷新弹幕写入缓冲的个数 \n默认: `20 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 20
}
}
},
"DanmakuTransport": {
"description": "使用的弹幕服务器传输协议\n默认: DanmakuTransportMode.Wss",
"markdownDescription": "使用的弹幕服务器传输协议 \n默认: `DanmakuTransportMode.Wss `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2,
3
],
"description": "0: 随机\n1: TCP\n2: WebSocket (HTTP)\n3: WebSocket (HTTPS)"
}
}
},
"DanmakuAuthenticateWithStreamerUid": {
"description": "使用直播间主播的uid进行弹幕服务器认证\n默认: false",
"markdownDescription": "使用直播间主播的uid进行弹幕服务器认证 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"NetworkTransportUseSystemProxy": {
"description": "是否使用系统代理\n默认: false",
"markdownDescription": "是否使用系统代理 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"NetworkTransportAllowedAddressFamily": {
"description": "允许使用的 IP 网络类型\n默认: AllowedAddressFamily.Any",
"markdownDescription": "允许使用的 IP 网络类型 \n默认: `AllowedAddressFamily.Any `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
-1,
0,
1,
2
],
"description": "-1: 由系统决定\n0: 任意 IPv4 或 IPv6\n1: 仅 IPv4\n2: IPv6"
}
}
},
"UserScript": {
"description": "自定义脚本\n默认: ",
"markdownDescription": "自定义脚本 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": ""
}
}
},
"RecordMode": {
"description": "录制模式\n默认: RecordMode.Standard",
"markdownDescription": "录制模式 \n默认: `RecordMode.Standard `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
0,
1
],
"description": "0: Standard\n1: Raw"
}
}
},
"CuttingMode": {
"description": "自动分段模式\n默认: CuttingMode.Disabled",
"markdownDescription": "自动分段模式 \n默认: `CuttingMode.Disabled `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"description": "0: 禁用\n1: 根据时间切割\n2: 根据文件大小切割"
}
}
},
"CuttingNumber": {
"description": "自动分段数值\n默认: 100",
"markdownDescription": "自动分段数值 \n默认: `100 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 100
}
}
},
"CuttingByTitle": {
"description": "改标题后自动分段\n默认: false",
"markdownDescription": "改标题后自动分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmaku": {
"description": "弹幕录制\n默认: false",
"markdownDescription": "弹幕录制 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuRaw": {
"description": "弹幕录制-原始数据\n默认: false",
"markdownDescription": "弹幕录制-原始数据 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuSuperChat": {
"description": "弹幕录制-SuperChat\n默认: true",
"markdownDescription": "弹幕录制-SuperChat \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"RecordDanmakuGift": {
"description": "弹幕录制-礼物\n默认: false",
"markdownDescription": "弹幕录制-礼物 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuGuard": {
"description": "弹幕录制-上船\n默认: true",
"markdownDescription": "弹幕录制-上船 \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"SaveStreamCover": {
"description": "保存直播封面\n默认: false",
"markdownDescription": "保存直播封面 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordingQuality": {
"description": "直播画质\n默认: 10000",
"markdownDescription": "直播画质 \n默认: `10000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": "10000"
}
}
},
"FlvProcessorSplitOnScriptTag": {
"description": "FLV修复-检测到可能缺少数据时分段\n默认: false",
"markdownDescription": "FLV修复-检测到可能缺少数据时分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"FlvProcessorDisableSplitOnH264AnnexB": {
"description": "FLV修复-检测到 H264 Annex-B 时禁用修复分段\n默认: false",
"markdownDescription": "FLV修复-检测到 H264 Annex-B 时禁用修复分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"TitleFilterPatterns": {
"description": "不录制的标题匹配正则\n默认: ",
"markdownDescription": "不录制的标题匹配正则 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": ""
}
}
}
}
},
"room-config": {
"description": "房间独立设置",
"additionalProperties": false,
"properties": {
"RoomId": {
"description": "房间号\n默认: ",
"markdownDescription": "房间号 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": -2147483648,
"maximum": 2147483647,
"default": ""
}
}
},
"AutoRecord": {
"description": "自动录制\n默认: ",
"markdownDescription": "自动录制 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": ""
}
}
},
"RecordMode": {
"description": "录制模式\n默认: RecordMode.Standard",
"markdownDescription": "录制模式 \n默认: `RecordMode.Standard `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
0,
1
],
"description": "0: Standard\n1: Raw"
}
}
},
"CuttingMode": {
"description": "自动分段模式\n默认: CuttingMode.Disabled",
"markdownDescription": "自动分段模式 \n默认: `CuttingMode.Disabled `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"default": 0,
"enum": [
0,
1,
2
],
"description": "0: 禁用\n1: 根据时间切割\n2: 根据文件大小切割"
}
}
},
"CuttingNumber": {
"description": "自动分段数值\n默认: 100",
"markdownDescription": "自动分段数值 \n默认: `100 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295,
"default": 100
}
}
},
"CuttingByTitle": {
"description": "改标题后自动分段\n默认: false",
"markdownDescription": "改标题后自动分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmaku": {
"description": "弹幕录制\n默认: false",
"markdownDescription": "弹幕录制 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuRaw": {
"description": "弹幕录制-原始数据\n默认: false",
"markdownDescription": "弹幕录制-原始数据 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuSuperChat": {
"description": "弹幕录制-SuperChat\n默认: true",
"markdownDescription": "弹幕录制-SuperChat \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"RecordDanmakuGift": {
"description": "弹幕录制-礼物\n默认: false",
"markdownDescription": "弹幕录制-礼物 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordDanmakuGuard": {
"description": "弹幕录制-上船\n默认: true",
"markdownDescription": "弹幕录制-上船 \n默认: `true `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": true
}
}
},
"SaveStreamCover": {
"description": "保存直播封面\n默认: false",
"markdownDescription": "保存直播封面 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"RecordingQuality": {
"description": "直播画质\n默认: 10000",
"markdownDescription": "直播画质 \n默认: `10000 `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": "10000"
}
}
},
"FlvProcessorSplitOnScriptTag": {
"description": "FLV修复-检测到可能缺少数据时分段\n默认: false",
"markdownDescription": "FLV修复-检测到可能缺少数据时分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"FlvProcessorDisableSplitOnH264AnnexB": {
"description": "FLV修复-检测到 H264 Annex-B 时禁用修复分段\n默认: false",
"markdownDescription": "FLV修复-检测到 H264 Annex-B 时禁用修复分段 \n默认: `false `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "boolean",
"default": false
}
}
},
"TitleFilterPatterns": {
"description": "不录制的标题匹配正则\n默认: ",
"markdownDescription": "不录制的标题匹配正则 \n默认: ` `\n\n",
"type": "object",
"additionalProperties": false,
"properties": {
"HasValue": {
"type": "boolean",
"default": true
},
"Value": {
"type": "string",
"default": ""
}
}
}
}
}
},
"type": "object",
"additionalProperties": false,
"required": [
"$schema",
"version"
],
"properties": {
"$schema": {
"type": "string",
"default": "https://raw.githubusercontent.com/BililiveRecorder/BililiveRecorder/dev/configV3.schema.json"
},
"version": {
"const": 3
},
"global": {
"$ref": "#/definitions/global-config"
},
"rooms": {
"type": "array",
"items": {
"$ref": "#/definitions/room-config"
}
}
}
}