2

Я хочу взять скриншот / миниатюру из клипа размером 1024 × 780, но мне не нужна вся высота. Я просто хочу, чтобы скриншот занимал 768 × 80% высоты.

Это потому, что я не хочу, чтобы субтитры были включены в эскизы.

В настоящее время я использую следующую команду, чтобы получить скриншоты:

ffmpeg -i <input> -f image2 -ss <position> -s 768x432 \
-vf fps=fps=1/10 -vframes 20 <output>

Цель состоит в том, чтобы получить миниатюру размером 768 × 432, но высота 432 составляет всего 80% от высоты исходного видеофайла.

1 ответ1

3

Вы можете использовать фильтры scale и crop :

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8,fps=1/10 output

Это будет масштабироваться до желаемой ширины (768), а высота будет автоматически масштабироваться до соответствующего значения, чтобы сохранить аспект. Затем он обрежет, взяв масштабную высоту и умножив ее на 0,8. Обратите внимание, что урожай будет разделен между верхом и низом. Например, использование crop=iw:ih-100 удалит 50 пикселей сверху и 50 пикселей снизу. Если вы хотите просто удалить пиксели снизу:

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8:0:0,fps=1/10 output

Вы можете просмотреть с помощью ffplay:

ffplay input -vf scale=768:-1,crop=iw:ih*0.8

См. Документацию фильтра FFmpeg для большего количества примеров и информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .