seri%'s blog

GSoC '24 进度更新:第 9 - 12 周

标签:
这篇博文翻译自英文版。

大家好!时光飞逝,转眼间我们已经进入了 GSoC 的最后一周。在这篇博客中,我将分享自上次更新以来取得的进展,重点是字幕样式的相关功能。

字幕编辑器

我首先增强了现有的字幕编辑器。更新后的编辑器现在作为一个编辑 ASS 事件(Event)的界面,涵盖了各种参数组件。通过新的编辑器,用户可以轻松修改事件的图层、样式、边距等。此外,我还简化了效果部分,现在只需调整复选框和下拉框,即可控制字幕滚动的速度、方向和范围。

然而,最重大的变化在于文本框及其上方的按钮组。为了更好地理解这些变化,首先需要了解 ASS 样式与事件之间的关系:在 ASS 文件中,每个事件都必须分配一个适用于整个事件文本的有效样式;而 ASS 覆盖标签(Override Tags)则是事件内的特殊文本块,允许对文本的不同部分进行精确的样式控制,而非仅限于整体(也有一些例外,如“定位 \pos”等)。

文本框现在能够通过按钮辅助用户输入 ASS 覆盖标签。例如,当用户点击“加粗”按钮时,编辑器会自动插入或调整标签,为选中文本或光标后的内容切换加粗样式。此外,文本框还支持语法高亮,以不同颜色渲染标签的不同部分,使其更易于区分;同时还配备了自动补全功能,在输入标签名称时会列出所有有效的预设选项。

对于更喜欢以前那种仅显示渲染后文本的用户,我们也提供了一个“简易编辑器”。它与标准编辑器保持同步,但仅显示不带标签的纯文本,并渲染基础的标签效果。不过,由于 ASS 标签规则非常复杂,在简易编辑器中编辑样式有时会出现不可预测的行为。因此,它最适合在编辑样式的前后进行简单的文本调整。

字幕管理器

延续之前的改进,字幕管理器现已深度集成了样式管理,并划分为四个部分:文件 (File)、事件 (Event)、样式 (Style) 和信息 (Info),分别对应 ASS 字幕的四大核心组件。除了“文件”部分外,每个部分都包含一个侧边栏,用于在不同的字幕文件之间切换。此外,在“样式”部分,用户可以将样式项拖放到侧边栏的文件名上,从而在文件间高效地移动或复制样式。“事件”部分也支持类似操作,允许将整个图层移动或复制到另一个文件。

其他改进

样式编辑器

新增了一个专门的样式编辑器组件,用于编辑样式参数并提供实时预览。

兼容旧版全局样式

旧项目的样式现在会自动转换为新项目中的“Default”样式,字体大小、轮廓和阴影等参数将按比例缩放,以尽可能保持原有的视觉效果。

分层默认样式

现在,我们可以为每个图层分配不同的默认样式。在对应图层上创建新字幕时,这些样式将自动应用。这一功能在制作多角色对话的字幕时非常有用,可以快速为每个说话者设定独特的视觉风格。

总结

在这个夏天参与 KDE 社区并为 Kdenlive 添砖加瓦,是一段无比奇妙的经历!我可能不是最顶尖的开发者,但在这次旅程中我受益匪浅。感谢所有给我指导和帮助的人——Eugen Mohr、Farid Abdelnour,特别感谢我的导师 Jean-Baptiste Mardelle。虽然 GSoC 即将结项,但我与 KDE 的故事才刚刚开始。在接下来的计划中,我将继续完善字幕功能,包括降低 ASS 覆盖标签的输入门槛,以及进一步优化 UI 和用户体验。下篇博客见! :)

seri%'s blog © 2026 by seri037 is licensed under CC BY-NC-SA 4.0