从 GIF 转换为 MP4 时的 FFmpeg 帧速率

Mah*_*esh 5 ffmpeg

我有一个\xc2\xa0GIF 图像。我正在尝试将其转换为 MP4。

\n\n
ffmpeg -f image2 -r {delay_time_of_gif_between_each_frame}/1 -i temp/%05d.png -vcodec libx264 video.mp4\n
Run Code Online (Sandbox Code Playgroud)\n\n

与原始 GIF 相比,该 MP4 的运行速度不同。如何让它以相同的速度运行?

\n\n

看来我在财产方面犯了错误-r。我玩过它,但没有得到任何有用的东西。我什至把它删除了。但它仍然不起作用。

\n

slh*_*hck 2

如果您已经知道后续帧之间的延迟时间,那么您需要取其倒数将其转换为帧速率。例如,如果每帧之间的时间为 40 毫秒(或 0.04 秒),则其倒数将为 1 除以 0.04,即 25 fps。

不能简单地将帧之间的时间除以 1,因为除以 1 会得到与之前相同的结果。

因此,请再次尝试以下任一方法:

ffmpeg -f image2 -r 1/0.04 -i temp/%05d.png -c:v libx264 out.mp4
ffmpeg -f image2 -r 25 -i temp/%05d.png -c:v libx264 out.mp4
Run Code Online (Sandbox Code Playgroud)

请注意,默认输入帧速率image2无论如何都是 25,但这只是为了说明。

此外,您还可以通过将其放在输入文件-r 之后来更改输出视频的帧速率,这应该会有所不同。

ffmpeg -f images -i temp/%05d.png -c:v libx264 -r 25 out.mp4
Run Code Online (Sandbox Code Playgroud)