VTT两句字幕变成一块,怎样检查空行与cue边界
VTT中一条字幕可以包含多行文字,两条字幕则要有各自的时间行和块边界。画面上有两行不代表文件里有两个cue;如果导出时删除了空行,原来的独立字幕就可能被解释成同一块内的payload。
这组文件怎样比较
附件分别提供一条cue包含“上层展柜、下层抽屉”两行,以及两条独立cue的文件。两者都合法,用来比较结构而非制造乱码。先明确你希望同时显示的文字和先后出现的文字,再决定分块,不要根据编辑器的物理行数估计字幕条数。
按原始结构逐项检查
-
逐块读取时先跳过WEBVTT文件头,在空行处结束当前块。块内可以先有标识行,再有时间行,剩余行组成文字。把每一行都当独立字幕会把标识误当正文,也会把真正的多行字幕拆坏;解析顺序必须与实际结构一致。
-
对multiline.vtt检查cue数量为一,并确认payload中仍有换行字符。接着读取two-cues.vtt,确认数量为二,各自保存开始、结束和文字。这个对照能定位是字幕导出器丢边界,还是后续软件只显示了同一cue的第一行。
-
制作系统若把连续空行压缩,至少保留一条空行来分隔块;若内容本身需要空白视觉间隔,不要靠在payload里插入空白行模拟,因为空行具有结束块的语法作用。可改为受支持的布局参数,并在目标渲染器单独确认视觉效果。
容易误读的地方
一个常见反例是两段文字共享时间行,却被项目清单登记成两条字幕。此时统计文字换行得到二,统计cue只得到一,两种数字都可能看似合理。交付表应说明统计单位,区分物理行、显示行和时间块,不能把它们放进同一个“条数”字段。
下载与本地读回
multiline.vtt、observed.csv、observed.json、two-cues.vtt。
下载全部附件到同一个独立目录,用 python verify.py 运行本题独立核验脚本。依赖为Python 3.12.4标准库;程序不联网、不连接设备,读取本题文件并在终端输出检查结果。本地实际执行回执保存实际命令、退出码和完整输出。
公开脚本只检查本例两种块结构,结果展示完整payload而非仅输出通过字样。若生产文件含REGION或复杂样式,应使用支持相应语法的工具补充检查;本题有限解析器没有覆盖WebVTT所有块类型,更没有测屏幕上最终出现几行。
本文依据WebVTT 2026年5月20日候选推荐草案;这是工作中的规范版本。脚本只覆盖文中列出的语法,不是全规范验证器,未测试浏览器的容错与实际呈现。
把结果带回交付
修复后把修改前后的块清单并列,确认cue数量变化符合预期,且时间区间和文字没有一起移动。再以真实影片核对前后句出现顺序。这里解决的是文件分块问题,横竖屏换行、按钮遮挡和物理字高仍需走各自的显示验收。
相关背景见字幕 / 字符叠加播放实现,还可从多媒体播放专题继续查找文件处理方法。需要核对实际工程的接收条件时,可携带本题文件与读回结果进行工程对接咨询。
一级依据
来源核对日期:2026-10-24。引用支持文件机制;原创输入的本地结果不代表客户素材或现场系统已经通过验收。
相关阅读
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。