Улучшено извлечение миниатюр из видео - PullRequest
7 голосов
/ 22 марта 2011

Я использую FFmpeg, чтобы найти средний кадр видеофайла h264 и извлечь эскиз jpg для использования на потоковом портале.Это делается автоматически для каждого загруженного видео.

Иногда кадр оказывается черным или просто семантически плохим, то есть фоном или размытым снимком, который плохо соотносится с видеоконтентом.

Интересно, могу ли я использовать openCV или какой-либо другой метод / библиотеку, чтобы программно находить лучшие эскизы с помощью распознавания лиц или анализа кадров.

Ответы [ 3 ]

9 голосов
/ 22 марта 2011

Я сам столкнулся с этой проблемой и придумал очень грубый, но простой алгоритм, чтобы мои эскизы были более "интересными ". Как?

  1. Создать x - количество миниатюр в разных точках. Например. 5 миниатюр
  2. Использовать самый большой (в байтах) файл и отбросить остальные

Почему это работает? Поскольку jpeg-файлы монотонного «скучного» изображения, такого как весь черный экран, сжимаются в файлы намного меньшего размера, чем изображение, содержащее много объектов и цветов.

Это не идеально, но является жизнеспособным решением 80/20 . (Решает 80% проблемы с 20% работы.) Кодирование чего-то, что фактически анализирует само изображение, будет значительно более трудоемким.

1 голос
/ 22 января 2014

На случай, если кому-то понадобится два лайнера (используя ffmpeg и imagemagick):

(это выбирает максимум 20 кадров из видео и использует gt (сцена), чтобы выбрать моменты перехода. Он использует ffmpeg, чтобы сделать pngs шириной 120 пикселей, а затем imagemagick, чтобы сделать gif (потому что gfs ffmpeg, как известно, уродливы). . может потерпеть неудачу, если в фильме ничего не происходит, но тогда вы не должны называть это фильмом, не так ли?

ffmpeg -i $1 -loglevel error -vf "select=gt(scene\,0.1), scale=120:-1" -frames:v 20 -f image2 -vsync 0 -an ./tmp/img%05d.png 
convert -delay 25 -loop 0 ./tmp/img*.png thumb.gif
0 голосов
/ 12 марта 2012

Libavfilter имеет фильтр миниатюр, который предназначен для выбора наиболее представительного кадра из серии кадров.Не уверен, как это работает, но вот документы http://ffmpeg.org/libavfilter.html#thumbnail

...