Сейчас для получения скриншотов из видео под Linux мы используем программу mtn, movie thumbnailer
moviethumbnail.sourceforg.... Главный ее плюс это алгоритм игнорирования темных и размытых кадров
moviethumbnail.sourceforg... раздел Edge detection & blur evasion. В итоге на результаты работы mtn можно смотреть не боясь. Кроме того она умеет собирать скриншоты в одну картинку, что нам как раз нужно наши скриншоты выглядят вот так
www.irk.fm/files/tmp/gips... Проблема в том что программа не поддерживается и ее ошибки не исправляются. А она не работает с некоторыми форматами видео и, что хуже, иногда делает 100% CPU на несколько минут. В общем, надо эту же задачу решать другими средствами.
Задача: написать на Python модуль, который будет -
1) с помощью MPlayer вытаскивать из видео отдельные кадры.
2) анализировать их аналогично mtn и отбрасывать нечеткие кадры
3) результат собирать в одну картинку (см. пример выше), питоном или imagemagik.
4) делать его уменьшенную копию шириной 120px.
Всего должно получиться 6-8 кадров, равномерно распределенных по длине видео. Кроме скриншотов, модуль должен создать текстовый файл с ТТХ файла его разрешение, длительность, размер в байтах.
Автор mtn описывает свою идею по анализу четкости, но ничто не запрещает ее изменять/улучшать, главное результат.
Ваши предложения ?