2016-04-08 9 views
0

Я планирую разработать простое решение, которое позволило бы мне выполнить очень простой анализ видеопотока «на лету». Я никогда раньше ничего подобного не делал, поэтому был очень общий и открытый вопрос. Основное внимание уделяется проверке того, идет ли поток без проблем, например, - заморозить кадры, черные экраны и если есть звук. Синхронизация выходит за рамки. Я читал об открытых библиотеках, таких как OpenCV и Xuggler, но они кажутся более сложными, чем для моих нужд. FFmpeg способен обнаруживать черные экраны, но не на лету.Анализ видеопотока на лету - советую?

Есть ли другие открытые библиотеки, на которые я мог бы смотреть? Не могли бы вы мне что-нибудь посоветовать? Я думаю об использовании Java или Python. Или, может быть, оба. Эффективность решения выходит за рамки, теперь я фокусируюсь только на кадрах замораживания и обнаружении черных экранов.

Любые советы приветствуются!

С наилучшими пожеланиями, Питер

+0

с OpenCV вы можете обнаруживать стоп-кадры и черные экраны без проблем и в нескольких строках, хотя для аудио-части вам понадобится что-то другое. OpenCV доступен в python и java. – api55

+0

Что вы подразумеваете под «FFmpeg не может обнаружить черные экраны на лету»? – aergistal

ответ

1

Вы можете анализировать поток в реальное время на лету с ffmpeg. Например:

ffmpeg -i <input> -filter:v blackdetect=d=9 -filter:a silencedetect=d=9 -t 10 -f null /dev/null

проверяет, если 9s из 10s видео черные или молчат. Повторение.

Для фреймов, которые не меняются, берут два снимка экрана в разное время и видят, отличаются ли они. Напр. с imagemagick вы можете сделать compare -metric <metric> <in1> <in2> <diff>.