Я пытаюсь извлечь ключевые кадры из видеоклипа. Я попробовал следующую команду, но она извлекает все кадры.
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
Пример использования фильтров 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
разрешает фильтр до того, как ввод говорит мне, что он может быть устаревшим. Загрузите последнюю статическую сборку для вашей операционной системы или соберите ее самостоятельно в соответствии с руководствами по компиляции, если вышеперечисленное не работает.
если это ошибки :
Опция 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» Параметры заранее