本文同步自 MAW 原始仓库的 docs/user/ASS_STYLES.md。
ASS 用于带字体、描边、位置和动画的字幕交付。先在编辑器「管理 ASS 样式」选定输出方案与关联样式,再导出 ASS。普通编辑步骤见 编辑器指南。
样式库与默认槽位
localhost 编辑器与 Launcher 共用 MAW 用户数据目录下的 ass-styles.json。便携 file:// 页面无法访问本机 API 时,使用浏览器 localStorage 副本。
样式库保存字体、字号、颜色、描边、阴影、对齐、边距和输出方案。ASS 导出使用默认输出方案;Launcher 烧录 SRT 使用单独的 SRT 默认样式。烧录已有 ASS / SSA 则使用该文件内嵌样式。
样式库示例(1.6.0):左侧关联输出方案,右侧检查字体、描边、对齐和边距,修改后保存样式库。
工程记录的源视频宽高写入 PlayResX / PlayResY。字号按 1080p 参考存储,再按输出高度换算;工程仍需保留,导出的 ASS 不能完整还原编辑状态。
新建样式库的内置主字幕为字号 86 / 描边 6 / 垂直边距 88,副字幕为 64 / 2 / 36;默认预设下副字幕位于主字幕下方,可通过副字幕样式的对齐与边距调整。默认方案启用 250ms 淡入淡出。Windows / macOS / Linux 默认字体分别为 Microsoft YaHei / PingFang SC / Noto Sans CJK SC,已有用户样式与字体不被覆盖。描边、阴影与背景底框颜色支持不透明度,预览与导出同步使用。
播放器预览
「ASS 字幕模式」默认关闭。关闭时使用 CSS 字幕预览,可拖动预览框;开启后文字改由 Canvas 按导出参数在原生分辨率绘制(描边以整层合成,无 run 交界接缝),按 ASS 方案显示文字和逐句动画,位置由 ASS 对齐与边距接管,不使用 CSS 框的拖动几何。\frx / \fry 的 3D 透视旋转以轴向透视缩短近似呈现(无透视斜切)。
ASS 模式保留显式换行;多条字幕共同排布时,超宽文字按 ASS 画布与样式边距折行,不使用 CSS 预览框的宽度。「字幕样式」中的主副字幕选择器与样式库同步。浏览器预览用于检查,最终仍应在目标播放器或烧录结果中确认字体与效果。
实际画面预览
localhost 编辑器开启 ASS 字幕模式后,可从波形工具栏的「📷 实际画面预览」打开独立对照窗,以 FFmpeg / libass 渲染当前 ASS 方案;「工程设置 → 字幕样式」及样式库也提供入口。快捷入口仅在具备实际帧预览能力时显示。它需要已由服务器绑定的视频,便携页面、纯音频和仅上传到浏览器的视频使用即时预览。
- 「自动渲染实际帧」默认开启;「暂停时在播放器画面显示实际帧」默认关闭,需先开启自动渲染才显示。关闭对照窗且未启用播放器叠加时,不在后台自动渲染。
- 开启播放器叠加后,暂停或 seek 停止时显示实际帧;播放或拖动播放头时恢复即时预览。关闭自动渲染后,只在点击「渲染当前帧」时更新,可在播放中手动捕获。
- 窗口支持原尺寸查看。字幕、样式或位置变化后,旧帧标记已过期;较早的渲染结果不会覆盖新的状态。实际帧时间可能与播放头略有差异。
- 缺 libass 时提示并回退即时预览,可配置支持 libass 的 FFmpeg 后重试;缺字形会提示字体与字符。即时预览对字体回退、换行和复杂动画有近似,实际帧更适合对照交付效果。
实际帧的主副字幕显隐与说话人跟随预览设置,导出选项独立;首句导出延长到 0 不会提前显示预览字幕。实际帧为源尺寸无损 PNG,最终烧录仍受视频编码影响。
主、副与叠加字幕
- 主字幕使用输出方案关联样式。
- 副字幕共用「副字幕样式」槽位,可独立设置字体、字号和水平对齐。
- 叠加字幕使用 Overlay 样式,继承主字幕的字体与字号。
主字幕与叠加字幕按实际文字尺寸从下向上排列,叠加字幕固定锚定在主字幕上方;多行、特殊文字比例、说话人前缀和同轨重叠字幕都参与避碰。间距随文字尺寸计算,不能用样式行的「边距 + 1.2 × 字号」推算最终事件位置。空间不足时主/叠加组移入画面或等比缩放。副字幕作为固定层,保留自身样式的对齐与边距,不参与该组的移动或缩放;同轨多条副字幕从各自实际边界向上错开。副字幕过大或无法可靠排布时提示调整样式。
主字幕的 \move 带动主/叠加组移动,副字幕保持固定位置,单独播放、早于主字幕开始或晚于主字幕结束时也沿用该位置。各句的 \fad、\fade、\t 保留自己的动画时钟;固定副字幕的行内强调字号和动画目标也不乘主/叠加组比例。预览与导出使用同一排布规则,实际位置由事件中的 \pos / \move 指定,不能仅根据样式行的垂直边距判断。
字幕出现或结束时会重新计算当前活跃字幕的排布,动画变化也可能产生新的位置分片。ASS 导出因此可以把一条源字幕拆为多条连续的 Dialogue 事件;分片覆盖原时间范围,不增加同时显示的字幕数量,也不重新开始淡入淡出或变换进度。多轨绑定与编辑操作见 多重字幕。
特殊文本格式
开启 ASS 模式后,「全局设置 → 高级编辑 → 特殊文本」可选择「无」「双个符号」或「单双皆可」,默认单双皆可。旧的「单个符号」设置会迁移为「单双皆可」,其他显式选择保留。强调、下划线、删除线、缩小和放大可分别关闭;关闭后保留对应原符号。
| 双符号写法 | 效果 |
|---|---|
**重点** |
强调 |
__文字__ |
下划线 |
~~文字~~ |
删除线 |
--文字-- |
缩小 |
++文字++ |
放大 |
颜色、强调样式和比例在样式库「基础样式」下方的「特殊文本样式」配置。内置主样式强调色为 #ffaa00、比例 1.3,副样式强调比例 1.1;缩小默认 0.8 倍、放大 1.5 倍,比例步进 0.05。强调范围 1.0–1.5、缩小 0.1–1.0、放大 1.0–3.0。组合标记的比例相乘,主副及叠加字幕按各自关联样式显示与导出。SRT 保留这五类格式标记原文。
选中主字幕后,右键「左右添加字符」可插入上述双符号,或使用「淡出淡入」「音符」及自定义字符。「文本处理(批量)」提供同组预设与应用前预览;重复应用同一预设不会再次包裹。符号规则控制解析方式,不改变预设插入的文字。
单句渐入渐出
在整条字幕文本开头写 >> 表示淡入,结尾写 << 表示淡出;>>文字<< 同时淡入淡出。「单双皆可」也识别单个 > / <,选「无」则保留原文且不应用单句动画。
单句标记使用输出方案中淡入淡出的时长,即使全局动画开关关闭也生效,并覆盖该句的全局 \fad / \fade。ASS 导出写入对应 \fad,即时预览与实际帧使用同一规则。SRT 导出同样按当前符号规则剥除这些开头/结尾标记,即使 ASS 模式关闭也如此;要保留作为普通文字的 > / <,请选「无」。
颜色与说话人
ASS 能表达的文字色和描边色会导出;编辑器的独立下划线颜色效果不能完整映射。启用说话人导出后,名称写入事件 Name,颜色可用局部标签保留。播放器显示的说话人名称不会写回 segments[*].text。
CSS 预览框的位置与大小不是 ASS 位置真源。需要改交付字幕的位置时,在 ASS 样式库修改对齐与边距。