首尾相接的字幕被误报重叠。
将无重叠规则设为 start >= previousEnd,再实跑 700ms 相接边界。
实操配方
渲染前拒绝序号歧义、零时长、重叠和超出片尾的字幕。本配方只覆盖明确声明的简单 SRT 子集与输入的两秒媒体边界。
附实际运行过的本地样例、脚本和回执;不代表已调用视频生成服务。
node run-recipe.mjs --out ./my-run
本例使用整数毫秒、从一连续编号、不允许重叠、结束必须晚于开始。媒体边界是明确输入,脚本不会探测真实视频时长;第三条之前的 100 毫秒空隙是刻意保留。
运行命令后检查 cue-table.json,其中保存三条真实解析的开始与结束数值。开始恰等于上一条结束可以通过,末条也允许恰在 2000 毫秒结束。
脚本写出并测试重叠、零时长、超边界、错误序号、毫秒格式错误及分钟越界变体。每项预期失败都记录具体异常;即使时间串外形正确,分钟为60仍不合法。
核对九项断言,把时间表与原始 SRT 成套保存。字形覆盖、换行、阅读速度、HTML 扩展与实际画面需要另验;本包不包含 CJK 字体清单或烧录字幕视频。
将无重叠规则设为 start >= previousEnd,再实跑 700ms 相接边界。
先核对输入 durationMilliseconds,确认后允许 end 等于该边界,同时继续拒绝 2001ms。
只调整 end,使其严格晚于 start,再检查与下一条重叠;不删除零时长规则。
合法时序是渲染环节的输入,不能证明指定字体可显示、字幕能放进画布或观众读得完。