Я намагаюся витягти ключові кадри з відеокліпу. Я спробував таку команду, але вона витягує всі кадри.
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
Я намагаюся витягти ключові кадри з відеокліпу. Я спробував таку команду, але вона витягує всі кадри.
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
Відповіді:
Ви можете зробити це простіше , використовуючи -skip_frame
без необхідності select
відеофільтру:
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
-threads 1
, порівняно з типовим, -threads auto
це робить cropdetect
графік фільтру ( ffmpeg -threads 1 -skip_frame nokey -i input.mkv -filter:v select='not(mod(n\,20))',cropdetect -an -f null /dev/null
) 2х настільки ж швидким у моїй системі (від 60-х до 30-х)!
Приклад використання select
та scale
фільтрів:
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I),scale=73x41" \
-vsync vfr -qscale:v 2 thumbnails-%02d.jpeg
Кілька порад:
Фільтри не повинні надходити перед -i
опцією, оскільки вони є вихідною опцією. Я не знаю, звідки саме ви отримали команду, але PICT_TYPE_I
не існує - так і має бути I
.
У scale
фільтрі ви можете замінити 73
або 41
примусити фільтр автоматично обчислити ширину або висоту, щоб зберегти співвідношення сторін: наприклад, scale=73:-1
або scale=-1:41
. Це запобігає розтягуванню або розсіченню, що може бути результатом "примусового" масштабування.
Якість виводу можна контролювати за допомогою -qscale:v
(або псевдоніму -q:v
). Ефективний діапазон - це лінійна шкала від 2 до 31, а нижче значення - вища якість.
Щоб ваш ffmpeg
дозвіл на фільтр до введення вказував мені, що він може бути застарілим. Завантажте нещодавню статичну збірку для вашої операційної системи або побудуйте її самостійно відповідно до посібників з компіляції, якщо вищезгадане не працює.
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I)" -vsync vfr frame-%02d.png
якщо це помилки:
Варіант vf (встановити відеофільтри) не можна застосувати до вхідного url 1508.mp4 - ви намагаєтесь застосувати параметр введення до вихідного файлу або навпаки. Перемістіть цю опцію перед тим, до якого файла належить. Помилка аналізу параметрів вхідного файлу 1508.mp4. Помилка відкриття вхідних файлів: недійсний аргумент
ви можете це зробити:
ffmpeg -i 263.mp4 -vf select=eq(pict_type\,PICT_TYPE_I) -vsync 2 -s 480x320 -r 24 -f image2 thumbnails-%05d.jpeg
== --------------------------------------------
Параметри "-i" заздалегідь