将 PNG 帧转换为缺失帧的视频

将 PNG 帧转换为缺失帧的视频

我有一台以 30 FPS 录制的相机。我发现相机有时会丢帧。

我有名为的 PNG 文件_Color_<some_number>.png。例如,_Color_1.png to _Color_10000.png但中间缺少文件。

我怎样才能最好地使用 FFmpeg 将这些 PNG 帧转换为视频?如果我使用 30 FPS 作为帧速率,则视频会显得有点快,因为缺少帧。

是否可以使用 FFmpeg 制作视频,复制帧来填补缺失部分?是否可以使用可变帧速率?这些会产生相同的结果吗?

答案1

有一些选择。一是编写一个小的 shell 脚本,根据数字将前面的帧复制到缺失的位置。即:

  • 从 1 迭代到 10000
  • 如果在给定的索引处找不到帧,请复制具有最高先前索引的文件。
  • 使用经典方式创建幻灯片。但是,结果可能会相当不稳定,具体取决于丢失的帧数,因为许多帧将被重复。

另一种方法是从图像中创建可变帧率视频。方法如下这个 Stack Overflow 上的答案。基本上,你需要:

  • 净化文件名,使索引号连续
  • 创建恒定帧率视频
  • 根据原始索引号乘以假定的帧速率生成时间戳元数据文件
  • 将恒定帧率视频转换为可变帧率视频
  • 或者,为了获得最大兼容性:将 VFR 视频转换回 CFR,或许可以使用minterpolate过滤器来增加运动平滑度

相关内容