在 FFmpeg 中使用 mpdecimate 去除视频中的滞后峰值

Removing lagspikes in videos using mpdecimate in FFmpeg

我经常处理 .mp4 素材文件,这些文件是我计算机上的游戏录像。因为我正在处理一个滞后的游戏,所以我最终得到的画面既有重复帧又有可变帧率。我想从我的视频中删除 lagspikes,可以具有可变帧速率 and/or 重复帧形式的 lagspikes。最终目标是让视频具有恒定的帧速率并且不再有滞后峰值。 我很清楚这会破坏或至少损坏音频,但我的应用程序不需要保持音频完整。

我遇到了 FFmpeg 的 mpdecimate 过滤器。据我所知,这能够删除重复的帧,但是它以一种不会使输出文件更短的视频的方式执行此操作,但它引入了更多可变的帧速率。

是否可以使用 FFmpeg 实现我的目标?如果是,怎么做?

在此先感谢您的帮助!

ffmpeg -i input.mp4 -vf mpdecimate,setpts=N/FRAME_RATE/TB out.mp4

正如 Gyan 在对我的原始问题的评论中所展示的那样,这就是解决方案。很有魅力,非常感谢! (FRAME_RATE 可以用数字代替,如果你想有一个设置的帧率)