Я пытаюсь извлечь ключевые кадры из видеоклипа. Я попробовал следующую команду, но она извлекает все кадры.
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» Параметры заранее