Хотя большинство из этих ответов великолепны, я искал команду, которая могла бы изменить размер до целевого размера (ширина или высота) при сохранении соотношения сторон. Я смог сделать это, используя Оценка выражения ffmpeg .
Вот соответствующий видеофильтр с целевым размером 512:
-vf "thumbnail,scale='if(gt(iw,ih),512,trunc(oh*a/2)*2)':'if(gt(iw,ih),trunc(ow/a/2)*2,512)'"
Для ширины вывода:
'if(gt(iw,ih),512,trunc(oh*a/2)*2)'
Если ширина больше высоты, вернуть цель, в противном случае вернуть пропорциональную ширину.
Для выходной высоты:
'if(gt(iw,ih),trunc(ow/a/2)*2,512)'
Если ширина больше высоты, вернуть пропорциональную высоту, в противном случае вернуть цель.