所以我当前的 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"