我有一个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
财产犯了错误。我玩过它,但没有得到任何有用的东西。我什至删除了它。它仍然不起作用。
如果您已经知道后续帧之间的延迟时间,那么您需要取其反数以将其转换为帧速率。例如,如果每帧之间的时间为 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
请注意,image2
的默认输入帧速率无论如何都是 25,但这仅用于说明。
此外,您也可以通过在输入文件之后放置-r
来更改输出视频的帧速率,这应该会有所不同。
ffmpeg -f images -i temp/%05d.png -c:v libx264 -r 25 out.mp4
虽然这个问题有点旧:
当前版本的 ffmpeg 根据 gif 图像中的信息自动确定帧之间的延迟,因此无需在命令中设置帧速率。