Как быстро извлечь внутрикадровое видео (в C ++ или Python)

Я хочу захватить некоторый кадр из видео, поэтому я использовал команду, как это:

ffmpeg -i MyVideo.mp4 -ss 1:20:12 -vframes 1 test-pic.jpg

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

ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i MyVideo.mp4 -vsync 2 -s 160x90 -f image2 thumbnails-%02d.jpeg

но эта команда также должна замедлить и захватить слишком много кадров.
Мне нужна команда Linux или C ++ или Python-код для захвата кадра, который не занимает много времени

-1

Решение

ffmpeg вики государства относительно быстрого поиска:

Параметр -ss должен быть указан до -i:

ffmpeg -ss 00:03:00 -i Underworld.Awakening.avi -frames: v 1 out1.jpg

В этом примере будет создан один кадр изображения (out1.jpg)
третья минута с начала фильма. Вход будет
анализируется с использованием ключевых кадров, что очень быстро. Недостаток в том, что это
также завершит поиск на некотором ключевом кадре, не обязательно расположенном
в указанное время (00:03:00), поэтому поиск будет не таким точным
как и ожидалось.

Вы также можете использовать гибридный режим, сочетающий быстрый поиск и медленный (декодирующий) поиск, что является своего рода серединой.

Если вы хотите реализовать это в C / C ++, см. docs/examples каталог ffmpeg, чтобы начать и av_seek_frame,

Я недавно взломал вместе некоторый код C делать эскизы сам, который эффективно использует гибридный режим. Может быть полезно для вас или нет.

1

Другие решения

Здравствуйте, мистер Андерсон.

Я не знаком с использованием C ++ или Python для таких вещей. Я уверен, что это возможно (я мог бы получить хорошее представление о том, как это сделать, если бы я занимался исследованием в течение часа), но время, которое потребуется для реализации полного решения, может перевесить затраты времени на поиск лучшей программы захвата кадров , После небольшого поиска в Google, я придумал:

  1. VirtualDub
  2. Camtasia
  3. Каркасные выстрелы
0

По вопросам рекламы [email protected]