是否可以在 ffmpeg 中使用 if/else 语句?
我想告诉 ffmpeg,如果任何低于 480p 的视频尺寸不要触及高度或宽度,否则进行编码并将其大小调整为 480p,这是我的命令,但如果视频低于 480p,它总是会放大视频
ffmpeg -i input.mp4 -c:v libx264 -crf 31 -me_method umh -bf 0 -vf scale=480:-2 out.mp4
请注意,我不想使用任何编程语言,因为它是在 Windows cmd 上。
符号 480p 指的是高度,所以我想这就是你的意思。
使用
ffmpeg -i input.mp4 -c:v libx264 -crf 31 -me_method umh -bf 0 -vf scale='if(gte(ih\,480)\,480\,iw)':-2 out.mp4
这将重新缩放高度为 480 或更高的视频。
最后不应该是“ih”吗:
ffmpeg -i input.mp4 -c:v libx264 -crf 31 -me_method umh -bf 0 -vf scale='if(gte(ih,480),480,ih)':-2 out.mp4
甚至
ffmpeg -i input.mp4 -c:v libx264 -crf 31 -me_method umh -bf 0 -vf scale='if(gte(ih,480),480,)':-2 out.mp4
如果您想避免调整大小?