ffmpeg - взять кроп, гибкое решение

ffmpeg -i "+file+" -ss 10 -t 20 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print  $NF }' | tail -1

Получаю кроп анализируя кадры с 10 по 20 секунду. Есть моменты в которых с 10 по 20 секунду просто черный экран или как то иначе, топорный анализ.

Ищу решение при котором данные случаи будут исключаться. То есть гибкий вариан

Возможно не указывать отрезок, тогда проанализируем все кадры. Было бы то что надо, не будь столько долгим процессом.

Скажем видео длиться 5 часов и для того чтобы получить кроп, потребуется в моем случаи около часа. А необходимо не более 10-20 секунд.

Решение вроде бы нашел, но не совсем понимаю как оно работает.

-vf select='gt(scene\,0.4)',cropdetect -frames:v 5

Не сказать что быстро, но не более 20 секунд занимает времени. И тут есть трудность, если продолжительность видеофайла около 30-60 секунд. Не отдает координаты, то есть ответ вовсе пустой.

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

Скажем решение при котором на всем отрезке, через каждые 10%, берется по 5 кадров для анализа. Возможен ли данный вариант и будет ли он быстрым по исполнению?


Ответы (0 шт):