如何在不重复帧的情况下提高视频速度和帧率

Pil*_*_51 8 video ffmpeg framerate libav

我有一个帧率为 30 FPS 的长视频,我想将其转换为帧率为 60 FPS 的 200 倍延时视频。我唯一的问题是 avconv 不必要地在输出中每隔一帧重复一次,使 60 FPS 的输出有效地变为 30 FPS。我希望每一帧都是独一无二的。在速度提高 200 倍和帧速率提高 2 倍时,没有理由重复帧。

例如,问题是输出使用了像 1,1,21,21,41,41,... 这样的源帧,而我希望它使用帧 1,11,21,31,41,51,... .

这是我正在使用的命令:

avconv -i input_30fps.avi -vcodec h264 -an -r 60 -vf "setpts=(1/200)*PTS" output_200x_60fps.avi
Run Code Online (Sandbox Code Playgroud)

Pil*_*_51 7

正如我经常遇到的那样,在寻求帮助之前花了几个小时试图弄清楚之后,我在询问后几分钟就找到了解决方案。

事实证明,当 Linux Mint,IIRC 从官方存储库中删除 ffmpeg 以支持 avconv 时,我认为 avconv 并不是 ffmpeg 的更好替代品。无论如何,ffmpeg 回来了,我安装了它并找到了不重复帧的等效命令:

ffmpeg -i input_30fps.avi -vcodec h264 -an -vf "fps=60, setpts=(1/200)*PTS" output_200x_60fps.avi
Run Code Online (Sandbox Code Playgroud)

  • `ffmpeg -r 6000 -i in_30.avi -c:v h264 -an -r 60 out.avi` 应该做同样的事情。 (3认同)