Я пытаюсь извлечь кадры из видео и получить точные метки времени каждого извлеченного кадра (на картинке).
Чтобы извлечь кадры из видео без отметок времени, я использую этот синтаксис:
ffmpeg -i video.wmv -r 0.08 -f image2 -s 512x384 video2%%4d.jpg
Я пытаюсь извлечь кадры из видео и получить точные метки времени каждого извлеченного кадра (на картинке).
Чтобы извлечь кадры из видео без отметок времени, я использую этот синтаксис:
ffmpeg -i video.wmv -r 0.08 -f image2 -s 512x384 video2%%4d.jpg
Вы можете сделать это с помощью фильтра drawtext . Ваша сборка должна быть скомпилирована с --enable-libfreetype . Большинство статических сборок ffmpeg для Windows и Linux поддерживают этот фильтр. См. Страницу загрузки FFmpeg для ссылок.

ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: text='%{pts\:hms}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png

ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: text='%{localtime}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png

PAL 25 кадров в секунду без пропуска кадров:
ffmpeg -i input -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" image%03d.png
Это адаптировано из примера с Burnt in Timecode в FFmpeg Wiki. Опция r устанавливает частоту кадров временного кода.