запись потока с камер видеонаблюдения

akd

dive now, work later
Команда форума
Добрый вечер. прошу поделиться опытом у кого есть или просто посоветовать что-то поумнее, чем уже придумано.
Для начала что есть:
- х камер видеонаблюдения (статичные ип адреса, камеры отдают RTSP stream)
- сервер (линух) выделенный только под эту задачу.
- быстрый свич все это дело соединяющий.

задача: писать все потоки на сервер, хранить 2 недели, потом удалять.

проблема: камеры периодически отрубаются, отсюда задача номер два: быстро понять что, ничего не пишется и перезапустить процесс. (достаточно запустить процесс заново и все ок, какой-то глюк в прошивке камер, накат последней прошивки не помог).

для винды, производитель камер написал софтину, которая сама понимает шо камера дисконнектнулась и перезапускает запись.

на линух производитель забил.

что придумалось на данный момент и, мне кажется, будет работать.
шедуллером запускается Х процессов VLC плеера (или любого другого софта, способного сохранять RTSP поток. X = кол-во камер) , которые пишут куда-то свои PID и уходят в бекграунд. вместе в ПИДом пишется имя файла, куда данный процесс в настоящий момент пишет поток.
по крону, раз 2 (1||3||5||...) секунды оббегаю эти текущие файлики и пытаюсь поставить на них обычный лок.
- если лок не поставился - все ок, значит процесс живой и пишет туда. делать ничего не надо.
- если лок встал - значит процесс не пишет, нужно его перезапустить. убиваю процесс по пиду и запускаю заново.

я случайно не изобретаю велосипед? :)
 

tz-lom

Продвинутый новичок
глянь в сторону erlyvideo , если повезёт то он подхватит твои RSTP (архивация на диск у него есть,долбиться на упавший канал умеет) , если не повезёт - есть другие пути
VLC имеет telnet интерфейс управления собой, можешь его оседлать (сейчас считается устаревшим и предлагается переходить на dbus , если найдёшь хоть какую нибудь доку о dbus+ управление воркерами VLC [т.е. делать то же самое что он умеет через telnet ] - поделись пожалуйста , я нифига не нашёл и оседлал telnet ).
алсо у VLC есть рестарт стриминга по таймауту, хз как он работает,но вдруг это то что надо (если будешь это тестить напиши мне о результатах , самому погонять такое времени пока нет), хотя он может тупо грохать файл
если задача стоит тупо снимать потоки - liveMedia & C++ & руки & куча рук (документация ужастна) - работать будет, и можно сделать что работать будет хорошо . Апилка под твою задачу подходит оба раза (и не подходит под другие кошерные задачи типа рестриминга).
 

phprus

Moderator
Команда форума
почему же нельзя использовать винду тогда уж?
Потому, что винда давится большими потоками данных в сети (особенно на прием. Разница в 100-200Мбит/с при тестировании в случае замены винды на Linux, с максимально одинаковыми настройками TCP/IP-стеков получается просто из коробки. Инструмент тестирования iperf). Большими это от 500 Мбит/с на один сервер с виндой. Не повезло иметь один компьютер который подключен к устройству, которое умеет только винду (при этом все это вынуждено работать на 32-битной XP, что еще добавляет грусти и печали).
 

akd

dive now, work later
Команда форума
tz-lom, спасибо, все изучу. по результату расскажу как сделал.

iceman, можно, но это самый последний вариант. мне лично лень покупать и поддеживать винду на этой машине. я найду куда эти деньги применить более удачно. :)
 

DYPA

Настоящая dypa (c)
камеры случаем по ssh не доступны? я для axis писал скрипт который их перезапускал по ssh. у vlc был таймаут при записи буфера, посмотри доки
 

akd

dive now, work later
Команда форума
не, камеры простенькие, там управление по HTTP/S, и ща вот по тестам судя .. проблема в винде/софте производителя а не в камерах. под линухом все пишется без падений уже который час. все потоки. vlc местами выбрасывает в консоль ругань, но упорно не падает :)
 

DYPA

Настоящая dypa (c)
не, камеры простенькие, там управление по HTTP/S, и ща вот по тестам судя .. проблема в винде/софте производителя а не в камерах. под линухом все пишется без падений уже который час. все потоки. vlc местами выбрасывает в консоль ругань, но упорно не падает :)
у меня основная причина падений была это плохой инет... учти что там идёт буферизация, так что через некоторое время ты получишь то что у тебя будет не актуальная инфа
 

akd

dive now, work later
Команда форума
инета между камерами и сервером нет. не актуальная инфа в смысле? это понятно что там идет опоздание пара секунд .. ну или мусор если камера совсем слетела.
 

akd

dive now, work later
Команда форума
ща проверил, если камера совсем слетела, то просто запись останавливается .... по mtime вполне можно понять и попробовать перезапустить
 

iceman

говнокодер
а при слабом инете буферизация разве 1 секунду идет?
 

akd

dive now, work later
Команда форума
без понятия. говорю же, между камерами и серваком нет инета. есть кабеля и гигабитный свич, больше ничего.
 

tz-lom

Продвинутый новичок
конечно там идёт буферизация , RSTP может работать через UDP , и при этом правильно обрабатывает неправильный порядок пакетов
 

akd

dive now, work later
Команда форума
tz-lom, в итоге времени не оказалось на изучение всего. склепал с помощью vlc чтобы более менее стабильно работало.

в серваке два диска ... один под систему и 2ТБ под видео, который смонтирован в /video/disk0, в будущем будем балансить на disk1, disk2 ...
запись идет с 6 утра до 10 вечера. раз в час, на каждой камере запись рубается и начинается в новый файл.

в аттаче скрипты и кронтаб. еще в boot.local (suse) прописано /video/start.all

ща запустили, вроде все пишет, рубит, при отключке камеры посылает алерты. на первое время мне хватит, потом может перепишу шоб красивее было. спасибо за хелп. :)
 

Вложения

  • 3,5 KB Просмотры: 43

FRIE

Новичок
а где камеры используешь? просто есть avialle если для видеонаблюдения в офисе штука очень хорошая, установка и настройка до безумия простая
 
Сверху