FFMPEG - 如何将视频保持为原始分辨率,但如果其超过 1280×720,则将其缩放回 1280×720

FFMPEG - 如何将视频保持为原始分辨率,但如果其超过 1280×720,则将其缩放回 1280×720

所以我当前的 ffmpeg 脚本有点问题。如果视频分辨率不超过 1280×720,我会尝试让其保持原始分辨率。但如果分辨率超过 1280×720,我会将其缩小/调整为 1280×720。

目前我有以下过滤器:

-filter:v "scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2"

然而,从表面上看,这会将所有视频更改为 1280×720,从而导致例如用手机录制的视频等出现黑条......

例子:

如果 1920x1080 > 缩小到 1280×720

如果高于 1280×720 > 缩小到 1280×720

如果 1280×720 > 保留

如果低于 1280×720 > 保持原始分辨率

希望有人能帮助我。谢谢。

答案1

您可以使用 mediainfo 检查高度/宽度。要检查高度是否大于/等于:

(( $(mediainfo --Output='Video;%Height%' Big_Buck_Bunny_1080p_surround.mp4) >= 720 )) && echo "greater or equal to 720" || echo "less than 720"

检查高度是否小于:

(( $(mediainfo --Output='Video;%Height%' Big_Buck_Bunny_1080p_surround.mp4) < 720 )) && echo "less than 720" || echo "greater than 720"

相关内容