首页 > 解决方案 > ffmpeg - 如何在保留总帧数的同时缩放视频?

问题描述

我有一个大小为 的视频515 x 755,我想按比例调整大小206 x 302(因此,因子为2.5)。

在这个视频中,我总共有 588 帧,我用这个命令ffmpeg来缩放它。

ffmpeg -i video.mp4 -vf scale=206:-1 xRotation_206.mp4

根据这个答案,我用它来检查视频中有多少帧。

ffmpeg -i video.mp4 -map 0:v:0 -c copy -f null - 2>&1 | awk '/frame=/ {print $2}'

原始视频帧数不错(588 帧)。但是,使用上面的命令调整大小后,我转换的视频现在有 604 帧。

问题是,如何通过保留其中的总帧数来调整视频的大小?它并不一定要ffmpeg接近,任何建议都值得赞赏。

这是我使用的示例视频:链接

标签: videoffmpeg

解决方案


默认情况下,FFmpeg 会生成恒定帧速率 MP4,因此如果您的原始视频是可变帧速率的,那么 ffmpeg 将丢弃或复制帧以生成恒定帧速率输出。

为避免这种情况,请使用

ffmpeg -i video.mp4 -vf scale=206:-1 -vsync passthrough xRotation_206.mp4

推荐阅读