本文由 FrameSprite 作者工作流整理,AI 辅助编写,引用原始技术资料;构造案例不代表模型或引擎实测。
用实际时间戳区分等时间取样、逐源帧提取和关键姿态选择,保留有意停顿。
先确定你需要等时间步长的游戏动画,还是完整保留源视频帧。可变帧率视频不能仅用帧序号除以一个平均 FPS 还原时间。等时间取样允许重复命中同一源画面;如果去掉重复帧,需要同时保留时长,才不会把停顿变快。
列出输出时长与目标时刻,例如 0、0.1、0.2 秒。把“选 12 张关键姿态”与“每 100 毫秒取样”分开命名,它们对停顿和动作节奏的含义不同。
可获取时记录媒体呈现时间,而不是只读文件显示的平均 FPS。视频帧回调适合观察已呈现画面,但可能漏过未呈现帧;完整提取仍应使用相应解码流程。
选择最近之前帧只是一个明确的示例规则,不宣称所有解码器使用它。若取样多次落在停顿帧上,保留重复或把重复合并为时长,两者都应记录。
去重前后比较各段时间总和,再检查跳跃顶点、攻击准备和结束停顿。帧灵输出用于游戏时,项目播放器必须读取你采用的时长约定。
源时间为 0、0.06、0.21 秒;对 0、0.1、0.2、0.3 秒按最近之前时间取样。
得到源帧编号 0、1、1、2;编号 1 的重复不自动算错误。
这是取样规则计算,不推断真实视频的帧率或解码精度。
目标 | 保存内容 |
|---|---|
等时间动画 | 重复与固定步长 |
逐源帧 | 源时间戳 |
关键姿态 | 人为时长约定 |
示例源帧显示时刻为 0、40、120、160 毫秒,目标取样时刻为 0、50、100、150 毫秒。若采用当前时刻之前最近的已显示帧,选中索引为 0、1、1、2。第 1 帧被取两次,是取样策略的结果,不能直接判为导出故障。先声明采用之前帧、最近帧还是插值,并保留源时间戳。若动作接触只持续很短,应把关键时刻加入取样清单,或保留逐帧时长;只把输出 FPS 设得很高并不会凭空恢复缺失姿势。
仅比较相邻图片是否相同,无法判断应该删除哪一张。验收记录应包含画面编号、媒体时间与输出时长;先确定节奏再优化文件体积。需要精确素材研究时,将源视频和取样规则一并交给复核者。
本次补充由 AI 辅助整理,按公开原始技术资料核对。可下载的输入与预期结果是原创构造案例,不代表模型或引擎实测;实际项目应按步骤保留自己的验收记录。
不足以还原不均匀的源时间戳。
不能,重复可能表达停顿。
不能,关键姿态与游戏节奏仍需验收。
HTMLMediaElement currentTime · MDN
Video frame callback metadata · MDN
原文:https://cn.framesprite.com/guides/sprite-video-variable-frame-rate-sampling
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。