Створіть ескізи з 80% висотою вводу за допомогою FFmpeg


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% висоти вихідного відеофайлу.

Відповіді:


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 .


ну, я дійсно хотів, щоб висота вийшла 432, а не 346 .... Чи можна зробити так, щоб вона вийшла 432, роблячи обрізку?
thevoipman

@thevoipman Ваше запитання було неоднозначним, тому я не був абсолютно зрозумілий, що ви хочете. Спробуйте scale=768:-1,crop=iw:432.
логін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.