Как проверить наличие RTSP потока от видеорегистратора с помощью C#?
*необязательно к прочтению* Суть такова, работаю в МБУ занимающимся видеонаблюдением в городе. И нам был дан указ примерно полгода назад подключить все детские сады и школы. Но у них всех разные видеорегистраторы, везде разные пароли, разные учетки, сотрудники разной степени халатности и системотехники разной степени знаний *хотя сам я тоже не то чтобы профи. И всего это около 80 объектов, за подключением к которым нас призывают следить. Они то отключаются, то подключаются, то вновь отключаются. *необязательно к прочтению*
Вопрос такой, есть ли у вас идеи или знания о том как реализовать C# скрипт, который сможет проверять наличие RTSP потока от видеорегистраторов. Мы их подключаем банально пробрасывая открывая и пробрасывая http и rtsp порты и заходя на веб морду регистратора уже смотрим как там на территории школы. То есть нужно чтобы скрипт, проверял доступ по ip, затем доступ к видеорегистратору по порту проброшенному через роутер в настройках NAT, как-то авторизовывался на регистраторе, и затем, чтобы он проверял идут ли RTSP потоки, если нет, выдавал что этот объект, не видно. Если я тупой и не указал что-то важное, прошу сказать это прямо сюда)
а почему именно С# то??
тот же VLC вконсоли умеет получить RTSP и ffmpeg умеет... и инфу о потоке дать....
там простая строчка с IP+лог\пасс и сразу ясно живой поток или нет
но мы уже давно ставим в "разрез" сети у заказчика микротик и по впн стучимся внутрь сети... оказалось проще поставить микротики везед чем ходить пробрасывать порты постоянно. с учетом что дохнут иногда всякие роутеры(которые от провайдера или dlink домашние) все скидывают перенастраивают
Идеальный вариант - по микротику с VPN на каждую точку, которые подключаются клиентами к вашему IP - тогда никакие порты пробрасывать не надо и все настройки можно пилить удаленно или вообще через аркестр
По пингу, скорости и прочему - Zabbix стандартными проверками, если регики/камеры умеют в SMNP - туда же их
По тесту RTSP как уже выше написали bash скрипт парсинга ответа ffmpeg с выгрузкой в заббикс
Ну и на графане это все по красивее задизайнить
Есть затруднение для вашего плана: вам надо проверять есть ли уже активный поток в сторону вашего видеоприложения, а не может ли камера создать новый поток. Вам ведь нужна автоматизация обнаружения неисправностей, так? Так вот, два случая отказа вашей концепции:
1. камера, процесс что формирует видеопоток в вашу сторону завис, watchdog это проглядел. Но камера сможет отдать новый видеопоток, ваша программа запрашивает его и получает -- ложноотрицательный результат.
2. камера исправно передает в ваше видеоприложение поток, но ее ресурсы не позволяют создать новый (видео и так получают директор садика, охрана, и вы). Ваша программа запрашивает видеопоток и не получает его -- ложноположительный результат.
Может быть вы найдете mib-ы на свои камеры и настроите как следует zabbix?
А еще можно отзеркалить траффик идущий в ваше видеоприложение и проверять в нем наличие заголовков или транспортных пакетов от списка адресов. Я бы конечно не связывался с таким, а выпил бы побольше в компании друзей технарей и еще подумал))
У нас стоит Zabbix, нам говорят так. следите за тем чтобы у школ и садиков был архив и чтобы мы могли его экспортировать и чтоб писался этот архив не у нас а у этих самых школ и садиков, воооот. Я прост думал написать скрипт который будет проверять доступ к видеорегистратору, и проверять работает ли он, чтобы проверять было меньше. Единственная проблема, если на каком-то видике в садике или школе полетит жесткий диск, то мы не заметим, по крайней мере не представляю как такое можно проверять на автомате
Да, я тоже не представляю автоматическую проверку, особенно с разнообразными китайскими регистраторами. Было бы на одном вендоре, можно было бы использовать их sdk для доступа к записи, но тоже задача для шарписта на недельку. А с разнообразием, придется писать бооооольшооооой комбайн. Хотя вот если взть mib-ы для хиквижина и дахуа то они кое что умеют рапортовать. Дахуа побольше может, хик на забикс не подключал, по описанию - поменьше.
Зачем тут С? Думаю будет правильней bash+ffmpeg+html5
Если что, любой админ сможет подправить баш, да и проще
НО
Тут у вас главная проблема будет с висячими камерами, они будут работать, но будут отваливаться потоки.
Решается это только ребутом тупой железяки, не думаю что школы смогут потянуть такое.