首页 > 解决方案 > 如何使用 FFMPEG 正确裁剪和缩放?

问题描述

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

视频中的图像样本 图片

我想要达到的目标

图片

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

我尝试使用cropscale没有运气。

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

ffmpeg -i test.avi -filter:v "crop=1280:670" output_video.mp4

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

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

标签: ffmpegscalecrop

解决方案


我得到了你的图片,将其调整为 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

快速解释:

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

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

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


推荐阅读