[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