如何使用 FFMPEG 正确裁剪和缩放?

Riv*_*blo 4 ffmpeg crop scale

我正在尝试删除视频的顶部和底部黑条。

来自视频的图像样本 图片

我正在努力实现的目标

图片

视频本身是 1280x720 16:9,但图像信息的部分4:3,因为它是从 VHS 捕获的。我想以某种方式拉伸它直到顶部条消失而不使图像变形。我不在乎左右栏。

我尝试使用crop,并scale没有运气。

通过使用此代码,VLC 上的顶部和底部黑条在正常屏幕上消失,但在全屏显示时,黑条再次出现。

ffmpeg -i test.avi -filter:v "crop=1280:670" output_video.mp4
Run Code Online (Sandbox Code Playgroud)

我认为这与视频的比例有关,但老实说,scale我尝试使用的每个代码都会使图像变形很多。

我希望有人能帮助我,对 FFMPEG 相当陌生,但到目前为止真的很享受。

vid*_*aba 14

我得到了你的图片,将其调整为 720p,制作了一个 30 秒的视频进行测试。

在我的示例中,我还裁剪了边缘(左/右),因为正如@LordNeckbeard 所提到的,当它们碰到屏幕的一侧时,它们可能会阻止视频的顶部/底部到达屏幕的顶部/底部,这将再次看起来像顶部/底部的黑条,无论它们是否存在。

这对我有用:

ffmpeg -y -hide_banner -i "test.avi" -filter:v "crop=iw-400:ih-40,scale=960:720" -pix_fmt yuv420p output_video.mp4
Run Code Online (Sandbox Code Playgroud)

快速解释:

crop=iw-400:ih-40 从输入宽度 (iw) (2x200 左/右) 裁剪 400 从输入高度 (ih) (2x20 顶部/底部) 裁剪 40 如果你想要一个“清晰”的边缘,你可以再剪一点。

scale=960:720 稍微缩放视频以使其恢复到原始的 720p,960 是将其保持在一个不错的 4x3 比例。不需要这种缩放,您的偏好。

让我知道它是否对你有用。

  • 等等,如何不居中裁剪? (3认同)