Baka 中文文档 下载 App

高级弹幕渲染——Baka 如何在 mpv 之上叠加弹幕层

弹幕渲染架构

Baka 的弹幕渲染独立于视频渲染:

┌──────────────────────────────────┐
│  弹幕渲染层(Flutter 绘制)        │ ← 弹幕、自定义 UI
├──────────────────────────────────┤
│  字幕渲染层(libass)              │ ← ASS/SRT 字幕
├──────────────────────────────────┤
│  视频渲染层(mpv + Anime4K)       │ ← 视频画面
└──────────────────────────────────┘

弹幕层是最上层,这意味着:

弹幕类型

Baka 支持以下弹幕类型(来自 BGM 弹幕库的数据):

类型说明典型用途
滚动弹幕从右往左滚动穿过画面最常见的弹幕形式
静止弹幕固定在画面中央或顶部/底部重要提示、经典台词
高级弹幕带坐标、特效、图片等复杂特效弹幕(较少)

弹幕样式自定义

在弹幕设置中可以调整:

基础样式:

滚动参数:

弹幕性能优化

弹幕量较大时(一集数千条以上),渲染性能可能成为瓶颈。Baka 的优化手段:

弹幕与 Anime4K 的配合

弹幕层独立于视频层,这带来一个问题:弹幕是否应该也被 Anime4K 增强?

Baka 的处理方式是:

这样做的好处:

弹幕截图

Baka 截图功能(Ctrl + Shift + S)默认包含弹幕层。如果想要纯视频截图,可以在截图时临时隐藏弹幕(快捷键 F)。