Как извлечь все ключевые кадры из видеоклипа?

Я пытаюсь извлечь ключевые кадры из видеоклипа. Я попробовал следующую команду, но извлекает все фреймы.

ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg 

  • Как повернуть видео 180 ° с помощью FFmpeg?
  • Как разрезать на точные кадры с помощью ffmpeg?
  • Как разделять и присоединяться без перекодирования видеофайлов AVC / MPEG-TS в Windows с помощью ffmpeg?
  • Как сделать ffmpeg более тихим / менее подробным?
  • Как преобразовать прозрачный .mov-файл в файл mp4, наложенный на фоновое изображение с использованием FFMPEG
  • FFMPEG добавляет аудио в видео, но привязывает его к длине видео
  • Добавление видео с использованием ffmpeg
  • Как добавить мой логотип в течение первых 30 секунд в видео с помощью ffmpeg?
  • Соединить видео с разделенным экраном
  • Как установить FFmpeg на Debian?
  • Как сделать видеофайл MPEG2 с наивысшим качеством, используя FFMPEG?
  • Выбрасывать каждый четный или нечетный кадры с помощью FFmpeg?
  • 2 Solutions collect form web for “Как извлечь все ключевые кадры из видеоклипа?”

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

    Вы можете сделать это проще с помощью -skip_frame без необходимости select видеофильтра:

     ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg 
    Давайте будем гением компьютера.