在不改变胶片速度/持续时间的情况下改变帧率

bee*_*eek 18 ffmpeg

我犯了一个错误,我需要将视频从 30 fps 重新编码为 24fps,同时保持相同的速度/持续时间。

有谁知道我如何在 FFMPEG 中做到这一点?

我尝试更改 -r 值,这会更改速率,但会更改视频长度。

谢谢

Joe*_*Joe 16

要在不修改视频总长度的情况下更改帧速率,FFmpeg 必须复制或删除一些帧。不幸的是,这个过程会使稳定流畅的动作在视频中变得笨拙和不自然。

ffmpeg -i input.mov -r 24 -y output.mov
Run Code Online (Sandbox Code Playgroud)

这种方法很慢,所以要有耐心。音频将保持不变,因为长度不会改变。

如果您的结果不符合您的预期,您也可以检查此工具:MVTools

这是一个可能有用的线程在 ffmpeg 中更改帧速率而无需重新编码

  • `-sameq` 很久以前就从 `ffmpeg` 中删除了,并且[从来不意味着“相同的质量”](http://ffmpeg.org/faq.html#Why-was-the-ffmpeg-_002dsameq-option-removed_003f -What-to-use-instead_003f)。对于 x264 编码,请改用 `-crf`。 (4认同)