XML弹幕转换
支持将XML格式的弹幕文件转换为 ASS 字幕格式,可用于弹幕压制或播放器加载。
底层使用 DanmakuFactory 实现,兼容 B 站弹幕
快速开始
使用界面
- 打开"工具" -> "弹幕转换"
- 选择XML弹幕文件
- 配置转换参数
- 点击"开始转换"
使用预设
为常用配置创建预设,避免重复设置:
- 配置好转换参数
- 点击"保存为预设"
- 输入预设名称
- 下次直接选择预设即可
配置选项
视频分辨率
设置弹幕的目标分辨率,需要与视频分辨率一致,这个参数非常重要
自适应分辨率
支持自适应分辨率功能,可以根据视频自动调整,只在和视频压制时生效。
弹幕字体
选择弹幕显示的字体。
web和客户端使用的字体方式并不相同,会有差异,再加上获取字体 postscriptName 的微妙的有些不同,导致某些字体web中选择后无法使用。
docker下的emoji文本渲染错误,猜测和fontconfig有关,但是我不会改,如果你会欢迎发issue
字体大小
弹幕文字的大小,单位:像素。
推荐值:
- 1080p: 35-45
- 720p: 25-35
- 4K: 65-85
不透明度
弹幕的不透明度,范围:0-1。
- 1.0: 完全不透明
- 0.8: 推荐值
- 0.5: 半透明
- 0.0: 完全透明
屏蔽关键词
过滤包含特定关键词的弹幕。
支持正则表达式,每行一个关键词。
示例:
广告
联系方式
\d{6,} # 过滤6位以上数字(如QQ号)描边宽度
弹幕文字的描边宽度,增强可读性。
推荐值:2-3
阴影
为弹幕添加阴影效果,增强可读性。
加粗
将弹幕文字设置为粗体。
批量转换
支持批量转换多个弹幕文件:
- 选择多个XML文件
- 使用相同的配置
- 批量转换
与Webhook配合
可以在 Webhook 中配置自动转换弹幕:
- 打开"设置" -> "Webhook"
- 启用"自动转换弹幕"
- 选择弹幕预设
录制完成后会自动转换弹幕。
导入导出预设
可以导出预设分享给他人,或备份预设:
- 点击"导出预设"保存为文件
- 点击"导入预设"加载文件
TIP
请尽量保证导出与导入的软件版本一致
自定义过滤函数
注意
此功能为 biliLive-tools 的原生实现,并非 DanmakuFactory 原生实现。转换完成后请查看生成的 ASS 文件以确认过滤效果。
功能说明
自定义过滤函数允许您编写 JavaScript 代码来精确控制哪些弹幕应该被保留或过滤,提供比基础过滤选项更灵活的控制能力。
函数签名
function filter(type: "danmu" | "sc" | "guard" | "gift", data: DanmakuData): boolean;参数:
type: 弹幕类型danmu: 普通弹幕sc: SuperChat(醒目留言)guard: 舰长/提督/总督等上舰消息gift: 其他礼物消息
data: 弹幕数据对象,包含该条弹幕的所有信息
返回值:
true: 保留该条弹幕false: 过滤掉该条弹幕
数据结构
属性命名规则
- 弹幕文本内容使用
#text属性 - 其他属性使用
@_前缀,如@_user、@_uid raw原始数据属性不会被解析
由于不同工具生成的弹幕格式可能存在差异,建议在判断时使用可选链(?.)等防御式编程方式,避免报错。
danmu (普通弹幕)
| 参数 | 类型 | 说明 |
|---|---|---|
#text | string | 弹幕文本内容 |
@_p | string | B站弹幕参数(参考B站弹幕格式) |
@_user | string | 发送者用户名 |
@_uid | string | 发送者用户ID |
@_timestamp | number | 弹幕发送的Unix时间戳 |
sc (SuperChat/醒目留言)
gift (礼物)
| 参数 | 类型 | 说明 |
|---|---|---|
@_ts | number | 相对时间(秒) |
@_giftname | string | 礼物名称 |
@_giftcount | number | 礼物数量 |
@_user | string | 发送者用户名 |
@_uid | string | 发送者用户ID |
@_timestamp | number | 发送的Unix时间戳 |
guard (舰长/上舰)
使用示例
示例 1: 按关键词过滤
仅保留包含特定表情的弹幕:
function filter(type, data) {
// 只处理普通弹幕
if (type !== "danmu") return true;
// 保留包含 🐖 的弹幕
return data["#text"]?.includes("🐖");
}提示
转换完成后建议用文本编辑器打开生成的 ASS 文件,检查过滤效果是否符合预期。
故障排除
弹幕转换失败
如果你是Windows新安装的系统,请尝试安装系统相关运行库,如果不是,也请安装试试。
转换失败
- 检查XML文件是否完整
- 检查文件编码是否为UTF-8
- 尝试使用其他弹幕文件测试
- 查看日志获取详细错误
字体无法显示
- 确认系统已安装该字体
- 尝试使用系统默认字体
- Docker环境需要挂载字体目录
