@Trollevskiy
Студент

Как можно проверять статус ip-камер видеонаблюдения?

Добрый день.
Видеонаблюдение реализовано с использованием ip-камер, которые передают поток на сервер с запущенным ffmpeg, который конвертирует видео и пересылает его на сервер с nginx, на котором крутится сайт, на котором и отображается видео.
Вопрос: куда в данной цепочке можно впихнуть проверку камеры (online/offline).
Возможна ли данная проверка средствами ffmpeg?
Пример: запущен ffmpeg с параметрами, которые включают в себя формат, в который нужно преобразовать поток, ip камеры, с которой принимать поток и ip сервера, которому передавать поток.
Допустим, камера исправно транслировала поток, но затем потеряла соединение с сетью.
Как это можно отследить средствами ffmpeg?
  • Вопрос задан
  • 2519 просмотров
Решения вопроса 1
@monah_tuk
Настройке таймаут (-timeout): нет данных ffmpeg благополучно отвалится, вернув не нулевой код возврата (в Unix shell можно проверить через значение $?). Запустите его в скрипте, как отвалится - можно из консоли дернуть какой-то REST api при помощи того-же curl - поднять ошибку в базе /к примеру/ (хотя если вообще отвалился - что-то пошло не так). С серверной стороны можно настроить колбек на появление стрима (Wowza, nginx-rtmp это умеют) который эту ошибку заресетит.

Аналогично можно попытаться полностью обойтись колбеками на принимающем сервере.

Да, попробую быть телепатом, раз IP камера, значит поток от неё, скорее всего, RTSP или MJPEG (HTTP), следовательно смотреть документацию: ffmpeg.org/ffmpeg-protocols.html#rtsp и опцию -stimeout. Возможно придётся зафорсировать транспорт: -rtsp_transport tcp.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ernillew
@Ernillew
Администрирую *nix-системы с 1997 года
Пинг покажет только отвечает ли камера по ICMP, а ведь она может еще и подвиснуть так, что пинговаться будет, а данных нет.
Я бы предложил смотреть на наличие потока с камеры на сервер. Идут данные, значит жива. IPшники же камер известны, значит можно посмотреть льется ли с них что-то.
Ответ написан
Комментировать
zmeyjr
@zmeyjr
Дисклеймер в профиле.
Может просто ping
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы