[Sysadmins] I: zoneminder is back

Michael A. Kangin mak на complife.ru
Чт Апр 24 14:16:09 MSK 2014


21.04.2014 17:47, Anton Farygin пишет:


>> Этого нет, хотя есть механизм внешних тревог - при каком то внешнем
>> событии (например детектер движения в IP камере. Для разных событий
>> можно написать хелперов) создаётся тревога с временем и текстовым
>> описанием, кусок видео с настраиваевым количеством секунд до и после
>> может быть сохранено с другим качеством, чем остальное видео, и ему
>> может быть присвоен другой коэффициент выживания - когда место на диске
>> заканчивается, старое видео стирается, но особо-важное может оставаться
>> очень надолго
>
> Я только по тревогам пишу - у меня камер слишком много, что бы писать
> всё в качестве 720p, а ресурсов на СХД мало ;)

Ну mjpeg да.
Я видео перекодирую в весьма компактный x264, с индивидуальными 
настроечками для каждой камеры.
т.е. какой-нибудь серверочек с 16-20 аналоговых камер с разрешением 
где-нибудь 512*384 (больше по оцифровке не вытягивается) с 2тб спейса 
архив вполне вмещается на пару месяцев. Сплошной записи.


>> Этого сколько угодно, потоки могут многократно дуплицироваться и
>> кодироваться с разными форматами/качествами. Правда, в интерфейсе есть
>> только full/preview. Надо будет знать непосредственные ЮРЛы видеопотоков.
>
> А ресурсы при кодировании и отдаче на просмотр как потребляет ? ну, у
> меня например больше 30 камер при десятке одновременных сеансов с
> разными конфигурациями просмотра.

Мне сдаётся, что VLC при отдаче говотого потока вообще ничего не 
потребляет. Я не заметил по крайней мере.
Кодирование потребляет, но всё зависит от :)
Скажем, с бевардами я поступаю так - у них почти замечательное h264, но 
rtsp не годится для длительного просмотра - через несколько дней vlc от 
него виснет. Поэтому я беру с них видео (1280x720) в два потока - 
rtsp/h264 режу на файлики и кладу на диск, а mjpeg жму до 640/480 и 
отдаю как превью. Это пережатие занимает где-то 9-11% от ядра 
современного ксеона.

с аналоговыми камерами сначала всё кодируется в mjpeg (иногда двух 
потоков - для превью и полное видео для просмотра и сохранения на диск), 
сбрасывается на диск и перекодируется в h264 требуемого качества.

С выдающими только mjpeg перекодируем только preview поток, на диск 
кидаем готовое видео (впоследствии пережимаемое)

С выдающими только очень корявый для сохранения h264 приходится 
няньчиться больше всего - сначала перекодируем в mjpeg (что при условии 
начального h264 гораздо хуже по ресурсам), и потом уже его сохраняем на 
диск и опять перекодируем в h264.

перекодирование сохранённого mjpeg'а в финальный h264 происходит с 
идловым приоритетом, и в этом серверу могут помогать другие компьютеры.
Например, что зря мониторинговые компьютеры охранников простаивают.
На этом этапе можно пережать видео с поддержкой тревог - разные 
фрагменты с разным качеством, наложить какой нибудь текст с 
изображением. Всё что ffmpeg (или как там он по новому называется) позволит.
Я обычно пережимаю на veryfast профиле, с фильтрами против гребёнки (для 
аналоговых камер), шумов и несколько пониженным (8-16) fpsом. Там где 
много резких движений, с -trellis=1.


>> Вот мне эта "масса проблем" оказалась роковой. В большом круглосуточном
>> супермаркете детектор движения нафиг не сдался, а вот поддержка
>> пяти-шести десятков камер с постоянной записью... хм.
>
> Да, с постоянной записью у Zoneminder кривулька.
>
> А камеры в каком качестве поток отдают ?

С бевардов я беру 1280x720, h264 vb и mjpeg где-то на 50-60q.
C всяких старлайнов получается 720*576.
Дешёвые уличные гонят 640*480 15fps.
C аналогов - на что ресурсов хватит, до d1.
Самое весёлое с платами оцифровки на PCI - они больше 4 камер в 
нормальном разрешении не прокачивают. Приходится к одному серверу 
ставить несколько тощеклиентиков только на оцифровку. А сервер принимает 
с них MJPEGи.





Подробная информация о списке рассылки Sysadmins