视频导出显示成功,打开文件的人却可能一脸困惑:音轨不对、画面边缘的标题被裁掉、开头比预期晚了一截。与其拿一段生产环境的真实录像去赌,不如自己造一段短小的合成片段,把那些细节逐项验一遍。

打开网易新闻 查看精彩图片

做法很直接:做一段带三个明显不同分区的测试短片。第一帧放一个看得见的标签,中间放一个移动的形状,结尾放一张停留时间足够长的卡片,方便逐帧查看。如果工作流涉及音频,再加一段短音调或口播标记。素材必须是自己为测试专门做的,并写下预期的顺序、打算导出的时长,以及每个标记所在的位置。

这段测试片要连同它的生成说明一起保存。如果有人用不同的帧率重新生成,或者改动了音频起点,后来者应该能一眼看出测试用的是哪个版本。一段名字叫 sample、内容却说不清楚的测试视频,只会让人分不清是导出环节退化了,还是输入本身变了。

把接收方的要求翻译成检查项

先从一个真实交付目标的要求出发。比如文件要在笔记本上被人审看,要求可能包括指定的封装格式、预期的画面尺寸,以及一条能听见的音轨。先确认文件存在且可被检查,再用项目现有的工具读取它的媒体信息,把报告出来的尺寸、时长和轨道数与预期值逐项对照。

元数据检查和播放检查要分开做。一个文件可以有音轨,却不含预期的声音;也可以报告正确的画面尺寸,而画面里的标题已经被裁掉。所以要抽出一部分导出帧打开看,并在音频标记附近听一遍。时长容差要结合输出帧率和实际要求来定,从某台机器上记下一个精确时间戳,可能因为一个无关紧要的舍入差异就让测试失败。

比较副本,但别丢掉身份

如果接收流程要求另一种格式,就用经过批准的格式转换工具处理这段合成测试片,并给结果单独起一个文件名。原始导出的文件另存一份,同时记下每个候选文件是用什么设置生成的。项目要求本地处理时,就用该流程批准的本地工具。有了这段测试片,比较不同格式时不必上传任何私密素材。

转换出来的副本,用同样的媒体检查和播放步骤过一遍。如果它的第一个标记出现得更晚,记下晚了多少,并判断这个变化是导出引入的还是转换引入的。把每个中间文件都打开一次,有助于定位问题出在哪一环;只在最后做一次检查,只能告诉你出了问题,却可能留下两个工具作为嫌疑对象。

故意造一个能认出来的失败

导出一份关闭音频的副本,制造一个可预期的失败。只负责打开文件的检查应该通过,而轨道数检查应该报出缺了什么。如果工具支持,再做一份带静音音轨的副本,它检验的是另一部分逻辑:轨道存在,但预期的标记声音不在。这时用人工试听还是合适的分析步骤,取决于项目能支持到什么程度。

再试着把导出跑两次,输出到两个不同的位置,确认每次检查打开的都是本次运行生成的文件。如果一次失败的导出在共享目录里留下了旧文件,后续步骤可能把那个旧文件当成新产物。给每次运行一个干净的输出目录,或者在测试设置里记录预期的输出版本。

从交接目录再验一遍

让候选文件走一遍接收方实际会用的交付路径,并从那里打开它。如果分享服务显示了预览,要分清检查的是预览还是下载后的文件——两者都有用,但回答的是不同的问题。还可以请同事只依据交接说明,找到最后那张卡片和音频标记的位置。

把测试片版本、导出设置和检查结果一起存档。当编码器或交付环节发生变化时,重跑同一套检查,找出第一个出现差异的环节。这份记录应该能让下一个人知道:检查的是哪个文件,以及他应该看到什么、听到什么。