固定的输入
UTF-8 文本,LF(\n)换行,与下示完全一致:
verification-master.srt
1 00:00:10,000 --> 00:00:12,000 Hello world 2 00:00:13,500 --> 00:00:15,000 Second line
SHA-256: 48dc6e6435773124c0a548604e96cdbbfa78196cfacef341e6992f85f6ea6029
verification-clips.csv
name,start,end intro,00:00:09.000,00:00:14.000
SHA-256: b37fd0f3cd8a01d62dc0161bb49f93c796ef30eb800c8e37687dd43c36345174
预期的输出
边界策略 trim(裁剪),片段相对重置开启。第二条字幕跨越了片段结尾 00:00:14.000,因此被裁剪到边界,并在 manifest 里记为 1 条警告:
srt/intro.srt(CRLF 换行)
1 00:00:01,000 --> 00:00:03,000 Hello world 2 00:00:04,500 --> 00:00:05,000 Second line
SHA-256: 5d5aa96a51e0b3ab9780f85ba633ba8a6f4bfefd66142b6c58d4271693913a7b
txt/intro.txt(LF 换行)
Hello world Second line
SHA-256: a9e83523a6cb1aa198a5432317cda1705656447aa61bdae4357e0ff54b43bad7
manifest.csv(CRLF 换行)
name,start,end,duration,caption_count,boundary_policy,warning_count,srt_file,txt_file intro,00:00:09.000,00:00:14.000,00:00:05.000,2,trim,1,srt/intro.srt,txt/intro.txt
SHA-256: 1e4ecddbd7997a79a8a613e1a182f4077cc1dc17457430456cad077e0e8e13cf
两种复现方式
- 在产品里:打开批量 SRT 拆分器,上传上面两份输入,保持裁剪策略,对照本页检查
intro的预览——时间码、文本、警告数与 manifest 行。 - 从源码:在项目仓库运行
bun run verify:fixture。它把同样的字节送进同样的解析、处理与导出函数,打印同样的哈希。
确定性输出 FAQ
把自己的输入送进同一条管线
上面的夹具是最小例子。带来真实的主字幕 SRT 与片段 CSV,同样的确定性在完整规模下成立。
打开批量 SRT 拆分器