弹幕 XML → ASS 转换工具
将哔哩哔哩 / AcFun 弹幕 XML 转换为无碰撞的 ASS 字幕,适用于 VLC、PotPlayer、IINA 等播放器。
常见问题
怎么把 B 站 .xml 弹幕转成 ASS?
粘贴 XML 或上传 BBDown/you-get 导出的 .xml,把分辨率和字号设成和视频一致,点转换。把生成的 .ass 和视频放同一目录并同名,播放器即可自动加载弹幕。
转换后弹幕时间轴不准 / 整体偏移?
B 站 p 属性里第一个数字是相对视频开头的出现秒数,而不是时间码。直接用原始 XML 转换时间轴就是对的;偏移通常出在 XML 被手动改过,或者视频和弹幕不是同一个版本/剪辑。
弹幕重叠堆在一起怎么办?
转换时开启轨道防碰撞。工具把每条弹幕放进一条车道,等前一条滚出屏幕再复用该车道,弹幕密集的高能段也能保持可读,不会几十条叠着印。
怎么在 IINA / mpv / PotPlayer 里加载 ASS 弹幕?
把 .ass 和视频放同一文件夹并同名(episode01.mp4 + episode01.ass)即可自动加载;也可以在 字幕 → 添加/载入 里手动选。mpv 还能用命令行 --sub-file=episode01.ass。
为什么有些该固定在顶/底的弹幕却在滚动?
B 站用 p[1] 表示位置:1-3 滚动、4 底部固定、5 顶部固定。把所有弹幕都当滚动处理的转换器会让它们全飘起来。本工具会用正确的对齐标记把模式 4、5 固定住。
工作流程
弹幕 XML 转 ASS 转换器 是什么?
用 BBDown、you-get 或唧唧(Jijidown) 下载 B 站视频时,弹幕会单独存成一个 .xml 文件,里面是一行行 <d p="...">弹幕内容</d>。但 IINA、mpv、VLC、PotPlayer 都不认这个 XML——直接拖进播放器没有任何反应。本工具把弹幕 XML 转成播放器通用的 ASS 字幕轨,并顺手解决手动转换最常翻车的两点:时间轴(p 里第一个数字是相对秒数,不是时间码)和弹幕重叠(同一时刻几百条弹幕糊成一坨)。
如何使用 弹幕 XML 转 ASS 转换器
粘贴 XML 或上传 .xml 文件。转换前有三个设置真正影响效果:①分辨率——和视频保持一致(1920×1080、1280×720…),ASS 坐标是相对画布(PlayResX/PlayResY)的绝对值,对不上字就会飘或被裁切;②字号——1080p 用 36、720p 用 28 起步;③滚动时长——8 秒最舒服,弹幕太密就调短。点转换后,把 .ass 存成和视频同名(movie.mp4 → movie.ass)放同一目录,播放器会自动加载。
示例
输入 (B 站 XML):
<d p="12.53,1,25,16777215,1699...">前方高能</d>
p[0]=12.53 出现秒数 p[1]=1 滚动 p[2]=25 字号 p[3]=16777215 颜色(白)
输出 (ASS):
[Script Info]
PlayResX: 1920
PlayResY: 1080
[Events]
Dialogue: 0,0:00:12.53,0:00:20.53,R2L,,0,0,0,,{\move(1920,64,-260,64)}前方高能
注意:ASS 颜色是 &HBBGGRR(字节反序),所以 RGB 0xFFFFFF 仍是 FFFFFF,但 0xFF0000 红色会变成 &H0000FF。应用场景
1. 在 macOS 上用 IINA / mpv 观看下载的 B 站视频,保留原汁原味的滚动弹幕。
2. 用 ffmpeg (-vf "ass=movie.ass") 把弹幕压进视频做硬字幕,方便在不支持外挂字幕的设备上分享。
3. 本地转换超大弹幕(5 万条以上),不必把观看记录上传到第三方网站。
4. 让顶部/底部固定弹幕(模式 4/5)保持固定而不是被当成滚动弹幕,适合歌词、空耳类弹幕。
5. 把直播弹幕存档成永久、可搜索的 .ass 文件。
常见问题
为什么 VLC / IINA 显示不了我的 .xml 弹幕?
这些播放器只认 ASS/SRT/SSA 等字幕格式,不认 B 站的 XML 弹幕结构。必须先把 XML 转成 ASS——本工具就是把每条 <d> 弹幕映射成带正确时间轴和位移的 Dialogue 行。
弹幕能显示,但时间轴整体对不上,怎么回事?
B 站 XML 里 p 的第一个数字是相对视频开头的出现秒数,不是 HH:MM:SS 时间码。如果你手动改过这个文件、或把它当时间码处理,每条都会偏。直接用原始 XML 重新转换就能对齐。
防碰撞/防重叠是怎么做到的?
工具给每条滚动弹幕分配一条横向轨道(车道),按字符串长度算出它划过屏幕需要多久,在前一条没离开前不复用这条轨道,弹幕密集时也不会糊成一片。
4K 视频上弹幕太大或跑到屏幕外,怎么修?
把转换器的分辨率设成和视频一致,再把字号调小。ASS 坐标是相对 PlayResX/PlayResY 的;如果画布是 1080p 而视频是 2160p,播放器会把一切放大两倍。