把整片直接交给 Hypit 做切片段或复刻时,片段时长漂移和顺序打乱通常不是同一种问题。建议先把输入拆成两个检查点:原片总时长与每段分镜时长有没有对齐,分镜顺序有没有按清单递增。时长对齐解决“每段应该多长”的基准,顺序切分解决“第几段对应哪个 clip_id”。先分别验证,再决定重跑任务还是改配置,比整片反复重生成更可控。
适用场景:Hypit 输出片段与原始分镜对不上,表现为时长偏差或顺序错乱。操作动作:先用播放器或 ffprobe 记录原片总时长与每段分镜时长,再对输出片段按时长排序、按 clip_id 检查顺序。验证方式:看时长差是否超过设定阈值,看实际顺序是否与输入清单递增一致。风险边界:容器封装、编码和取整方式可能让时长有细微差异,阈值需要结合素材确认;顺序检查也要先确认分镜是否允许合并或拆分。
用媒体信息读出原片总时长和每段分镜时长
时长基准不要凭感觉。适用场景:准备把原片切成分镜片段之前。操作动作:用播放器查看总时长,再用通用媒体信息工具读取精确值;如果原片已经拆成分镜文件,就逐个读取。验证方式:总时长与分镜时长相加是否接近原片总时长,单段时长是否与分镜表一致。风险边界:不同工具可能读容器时长或流时长,建议原片和输出片段用同一工具、同一字段,避免拿播放器显示值和 ffprobe 值直接比较。
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
for f in clips/*.mp4; do
echo -n $f
echo -n ' '
ffprobe -v error -show_entries format=duration -of csv=p=0 $f
done
把结果记到时长基准表里:分镜编号、源文件、起始时间、结束时间、时长。起始和结束时间可以从播放器或剪辑软件读取,时长以媒体信息工具为准。分镜时长记录得越清楚,后续比对输出片段时越容易判断是配置漂移还是切点取整。
把 Hypit 输出片段按时长排序后与原片逐段比对
输出片段不要只按文件名看长度,建议先按时长排序,再回到原片分镜逐段比对。适用场景:Hypit 输出片段数量与分镜清单一致时。操作动作:列出每个输出片段的时长,计算差值,差值等于输出片段时长减原片分镜时长;把绝对值超过阈值的片段标出来。验证方式:差值表里超过阈值的片段是否集中在开头、结尾或转场处;如果集中在转场,可能涉及切点取整或补帧策略。风险边界:如果 Hypit 对某些分镜做了合并或拆分,就不能一对一硬比,需要先建立输出片段与分镜的映射。
for f in output/*.mp4; do
echo -n $f
echo -n ' '
ffprobe -v error -show_entries format=duration -of csv=p=0 $f
done
比对表可以先做成:clip_id、原片分镜时长、输出片段时长、差值、是否超阈值、备注。阈值不要写死,可先从 0.2 秒或一帧间隔开始,再结合素材帧率确认。标出超阈值片段后,先看这些片段的源起止时间是否也发生偏移,不要只改输出文件名。
检查分镜顺序是否按输入清单递增
顺序错乱经常是输入清单顺序和输出排序规则不一致造成的。适用场景:分镜清单有明确 clip_id 和序号时。操作动作:从输入清单读出预期顺序,再从输出目录、任务界面或日志读出实际顺序。验证方式:看 clip_id 的预期顺序是否与实际顺序递增一致;如果文件名是 1、10、2 这种排序,要改用自然排序,不要按字符串排序判断。风险边界:有些流程允许按场景相似度重排,如果业务上需要严格复刻原片,就应在配置或后处理里关闭自动重排。
| clip_id | 预期顺序 | 实际顺序 | 是否一致 | 备注 |
|---|---|---|---|---|
| shot_001 | 1 | 1 | 是 | 样例占位 |
| shot_002 | 2 | 3 | 否 | 顺序后移,先查输入清单 |
| shot_003 | 3 | 2 | 否 | 与上一条互换 |
如果实际顺序和预期顺序不一致,先不要急着在输出目录里手动改名。手动改名只能让文件看起来对,下一次任务仍可能按错误顺序生成。优先检查输入清单是否按原片时间递增,再检查任务是否开启了自动排序。
在 Hypit 任务配置里核对片段顺序和时长参数
配置核对的目标是确认任务拿到的顺序和时长参数与输入清单一致。适用场景:Hypit 任务界面或任务配置里能看到片段级参数时。操作动作:按“输入清单顺序 → 全局时长参数 → 片段级覆盖参数 → 自动重切/补帧开关”的顺序检查。验证方式:sequence 是否从 1 递增且与 clip_id 对应,duration 是否等于该分镜时长,source_start 和 source_end 是否落在原片范围内。风险边界:参数名和位置以实际界面为准,不同版本可能用 clip_order、target_duration 等占位名;如果界面不暴露这些参数,只能通过输出结果和日志反查。
clip_id: shot_001
sequence: 1
duration: 3.2
source_start: 0.0
source_end: 3.2
如果配置里 sequence 和 duration 与清单不一致,先改输入或任务配置,不要先写脚本重命名输出片段。重命名只能掩盖顺序问题,不能修正时长漂移。配置核对时建议保留一份输入清单快照,方便和任务日志里的实际入参对照。
用前三段试跑并记录时长和顺序偏差
完整流程前先拿前三段试跑,成本低,又能同时验证两个检查点。试跑范围建议选原片开头连续三个分镜,保持输入清单顺序不变,不要混入转场特别复杂的片段。操作动作:记录配置版本和输入清单版本,运行后分别导出输出片段时长和实际顺序,再与原片分镜逐段对比。验证方式:前三段的时长差是否在阈值内,实际顺序是否按预期递增。风险边界:前三段不能代表全片所有转场和长镜头,但能快速暴露输入清单、排序和时长参数是否传对。
| 轮次 | clip_id | 原片时长 | 输出时长 | 时长差 | 预期顺序 | 实际顺序 | 处理 |
|---|---|---|---|---|---|---|---|
| 试跑1 | shot_001 | 记录值 | 记录值 | 输出减原片 | 1 | 记录值 | 超阈值或顺序不一致则查配置 |
| 试跑1 | shot_002 | 记录值 | 记录值 | 输出减原片 | 2 | 记录值 | 记录日志和配置版本 |
| 试跑1 | shot_003 | 记录值 | 记录值 | 输出减原片 | 3 | 记录值 | 前三段通过再扩大范围 |
两个检查点都通过后,再把范围扩大到五到十段;如果时长差集中在某一段,优先检查该段的分镜切点和 duration 参数;如果顺序不一致,优先检查输入清单排序和 sequence 参数。每一步都保留记录,后续复刻同类原片时可以直接复用这套检查表。