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

时间:2013-01-29 12:50:41

标签: ffmpeg

我有一张GIF图片。我正在尝试将其转换为MP4。

ffmpeg -f image2 -r {delay_time_of_gif_between_each_frame}/1 -i temp/%05d.png -vcodec libx264 video.mp4

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

我似乎在使用-r属性犯错误。我玩它但没有得到任何有用的东西。我甚至删除了它。它还没有用。

2 个答案:

答案 0 :(得分:2)

虽然这个问题有些陈旧:

当前版本的ffmpeg根据gif图像中的信息自动确定帧之间的延迟,因此无需在命令中设置帧速率。

答案 1 :(得分:1)

如果您已经知道后续帧之间的延迟时间,那么您需要采用它的反转来将其转换为帧速率。例如,如果每帧之间的时间是40ms(或0.04s),那么逆将为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

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

此外,您还可以通过在输入文件之后添加-r 来更改输出视频的帧速率,这会产生影响。

ffmpeg -f images -i temp/%05d.png -c:v libx264 -r 25 out.mp4