Создание изображения каждые XX секунд видео [FFMPEG]

скриншоты: диафильм

пробовал ffmpeg -i video.mkv -vf fps=1 out%d.png

но он генерирует одно за другим изображения. Мне нужны все миниатюры в одном изображении. как на скриншоте выше.

5
задан LordNeckbeard
источник

2 ответов

enter image description here

ffmpeg -i input -filter_complex \
"select='not(mod(n,30))',scale=120:-1,tile=layout=3x2" \
-vframes 1 -q:v 2 output.jpg
  • выберите один кадр каждые 30 секунд
  • масштаб каждый кадр меньшего размера (в качестве альтернативы вы можете масштабировать после плитки)
  • плитка каждый кадр в одно изображение. Размер сетки по умолчанию 6x5, так что вам, возможно, придется настроить это с layout в зависимости от того, сколько изображений вы хотите отобразить.

процесс может занять некоторое время в зависимости от длительность и формат ввода.

4
отвечен LordNeckbeard 2015-10-10 06:21:28
источник

вы можете использовать что-то вроде

ffmpeg -i video.mkv -filter:v "select=not(mod(n\,10)),setpts=N/((25)*TB)" -qscale:v 2 frame%03d.jpg
  • select контролирует, какие кадры вы захватываете (в данном случае один из каждых 10)
  • setps регулирование частоты и зависит от источника - 25 для PAL или 30000/1001 для NTSC видео
  • qscale управляет качеством (шкалой квантования) выходных кадров от 2 (лучших) до 31 (худших)

просто заметил ваше редактирование выше, если это дает вам кадры, которые вы хотите использовать должны быть хорошо в качестве отправной точки

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

montage -background "transparent" -depth 8 -type TrueColorMatte frame??.jpg \
    -geometry 50x50 -tile 10x10 -matte -transparent "transparent" \
    -type TrueColorMatte -depth 8 allframes.jpg
0
отвечен Offbeatmammal 2015-10-10 05:52:02
источник

Другие вопросы ffmpeg html5 video youtube