Размножение ресурсов

Как подключить много клиентов к одной и той же камере? Ресурсы одной камеры ограничены. Дешевые от силы тянут один «большой поток» в своем полном разрешении и, как правило, позволяют присоединиться еще одному «маленькому потоку» - в низком разрешении. Дорогие поддерживают 2-3, а очень дорогие и более «больших потоков». Некоторые позволяют делать выбор индивидуальных кодеков на разных потоках, большинство – нет, что мешает работать нескольким разным задачам. При этом производители как-то замалчивают этот вопрос, как будто его нет.

ресурсы IP-камер ограничены

А смотреть одну и ту же IP-камеру хотят сразу 20, а в больших городах, если что-то случается и 100 клиентов. Что в этом сложного, ведь в Интернете полно WEB-камер, которые транслируются на огромную аудиторию? Есть такое дело, только вы все равно не подключите к своей IP-камере много просмотрщиков. Увы, сама камера действительно не может, нужен специальный софт и, как всегда, компьютерные ресурсы для размножения видео канала. Некоторые про это забывают, планируя свои Безопасные города и села без таких технологических посредников, другие вообще считают, что это невозможно, и даже не планируют. Мы каждый день сталкиваемся и с теми, и с другими. Для всех пишем эту статью. Прочитайте, пожалуйста, постараемся максимально редко употреблять непонятные протоколы.

подключите к своей IP-камере много просмотрщиков

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

В самом простом варианте - это Стрим-сервер, который берет с камеры один поток и выдает из себя много - уже большому количеству клиентов по RTSP. Естественно нужен компьютер, который крутит эту программу, один ПК может размножать сразу много камер на много клиентов. Стрим-сервер также может и записывать видео, при этом размножая архив большому числу клиентов (АРМ-ов). Но с архивами отдельная песня, о них в другой статье.

Стрим-сервер

К сожалению, эти варианты достаточно примитивны, по сути, мы имеем «смотрелку-писалку». Хотя и с возможностью работать с ней группе людей. Но все-таки тенденция видеонаблюдения в том, чтобы не только смотреть (тем более, долго в экраны все равно никто не смотрит), а еще и анализировать. И это уже умная программа, которая каждый кадр разбирает по понятиям: и на тревожную панель выдает важные моменты, и в архив пишет поисковые теги. Если мы ставим такую прогу, то получаем новое звено, которое нужно раздавать клиентам. И, собсна говоря, правильнее размножать не камеру, а аналитический поток с умной программы – именно он более интересен миру.

Видеосервер с видеоаналитикой GOALcity

Видите, какой неожиданный поворот! От камеры мы перешли на новый уровень, который обычно называют Видеосервер. И нам надо решить все тот же вопрос – обеспечения теперь уже интеллектуальным «видевом» всех операторов видеонаблюдения, и даже тех, которые сейчас не подключены, но при желании хотят иметь свою видео струю.

Раздача более тяжелых потоков требует и больших ресурсов. Например, если у вас на видеосервере 20 камер, то каждый новый клиент будет отбирать порядка 5% - 10% процессорной мощности, в зависимости от крутости компа. А если вы обращаетесь к архиву, то и борьба за обладание пишущей-читающей головкой будет острее, а значит, ответы медленнее. Поэтому, рассчитывая мощности ПК для Видеосерверов нужно закладывать ресурс не только на работу самих Видеосерверов, но и на доступ к ним клиентов. По нормам Спецлаб, один Видеосервер не должен быть загружен более чем на 70%, при этом вы сможете свободно обслужить до 5 сетевых клиентов. Это порядка 100 потоков от 20 камер. При этом неважно, как распределяются эти потоки: 100 человек может смотреть одну камеру или 5 человек только по 20 камер.

Мультипликатор

Но что делать, когда сетевых клиентов особенно много, например, 50? Ведь никаких ресурсов никакого компа не хватит. Можно размножать и такие потоки, и вариантов тоже много. Рассмотрим конкретно те, которые есть в системе GOALcity. Естественно, для масштабирования нужны ресурсы, добавляем свободный ПК, который задействуем только на эту задачу – «размножение». На него накатываем ПО такого же Видеосервера, который получает видео не с камер, а с предыдущего видеосервера. Он не применяет к видео нагрузочных аналитических задач - мы просто транслируем уже проанализированное видео на своих клиентов - тем самым используя процессор только для размножения каналов. Такой стандартный ПК - один уже может потянуть более 20 АРМ-ов, а крутой комп и в несколько раз больше. С главного сервера берем всего по одному потоку с каждой камеры, а раздаем их уже на 20 пользователей по 20 камер, в сумме 400 потоков.

Мультипликатор

Не забываем, что мы можем взять 5 таких потоков. А значит, поставив 5 таких ПК, получаем уже 100 АРМ-ов, которые смогут показывать по 20 камер или 2 000 потоков с одной охранной камеры.

Мультипликатор

Только какой в этом смысл? Ведь даже 100 клиентов не будут в один и тот же момент осматривать все камеры всех серверов - у них тупо на это мониторов не хватит. Да и, если на каждый первичный сервер ставить по 5 компьютеров, дороговато будет. У вас всего 100 камер, приходящих на 5 Видеосерверов, а к ним нужно еще 25 ПК!

Реально одну и ту же камеру смотрят только тогда, когда что-то случилось, и размножение нужно лишь в этот момент, и только для тех камер, которые задействуются. Поэтому 5 дополнительных ПК не нужно ставить на каждый первичный Видеосервер, а можно выделить ОДИН сразу на все. Через них будет заход и перераспределение нагрузки. Этот сервер у нас называется Мультипликатор (Multiplicator).

Multiplicator

Мощность стандартного ПК с Мультипликатором – 400 каналов. Т.е. 400 клиентов может смотреть одну и ту же камеру, или 10 клиентов одни и те же 40 камер, или 20 клиентов одни и те же 20 камер, и т.д. Если этого не достаточно, добавляем еще один мультипликатор, причем масштабирование неограниченно.

И добавлять «множители» можно в любой момент, не меняя настроек системы, просто подключается еще один ПК с программой распределения нагрузки «Мультипликатор». Всё отлично видно в общей графической консоли, где вы простым движением мышки соединяете прямоугольнички.

console.jpg

console2.jpg

Да, вот еще что, мы забыли, что первичный видеосервер сам по себе тянет 5 каналов, а не один, как в предыдущей схеме, т.е. мы можем нарастить мощность группировки прямыми подключениями. Более того, такая схема и чем-то более надежна, т.к. исключает промежуточный девайс. По крайней мере, она более скоростная, т.к. нет дополнительного кэширования на промежуточном сетевом оборудовании.

Multiplicator

И это не значит, что клиенты смогут иметь доступ только к одному пулу камеры – именно этого видеосервера - сеть не имеет границ - по другим адресам они смогут брать другие камеры всё с того же Сервера распределения ресурсов «Multiplicator».

Тем не менее, на практике чаще всего за каждым Видеосервером закрепляется свой АРМ – под определенную задачу. Например, контроль лиц, или школ, или ЖКХ, или ПДД, или… Иногда пула камер одного Видеосервера мало, и один АРМ напрямую подключается к нескольким Видеосерверам. Возможны любые перекрещивания в пределах четырех коннектов на один Видеосервер (пятый идет на размножение).

Multiplicator

Чаще всего на выходе мы получаем вот такую классическую схему, где есть более-менее постоянные задачи и возможность подключиться оперативникам к вообще любым камерам.

Multiplicator

Как правило, одного ПК распределения нагрузки «Multiplicator» хватает для пяти Видеосерверов, каждый из которых имеет пул в 20 камер. Поверьте, это более чем щадящий режим, здесь даже заложен ресурс под то, что является основной технологией нашей компании – видеоаналитику. Ведь основные мощности тратятся на нее, а не на размножение.

Причем, Multiplicator устроен очень умно, специалисты Спецлаб вложили в него много идей. Например, если вообще нет временных клиентов, то он не нагружает Видеосервера даже этим одним своим каналом. Только во время запроса клиента и на время просмотра устанавливается соединение с пробросом к нужному видеосерверу. Естественно, это делается моментально. И неважно, какие камеры с каких видеосерверов запрашиваются, берутся потоки именно и только этих камер, остальные отдыхают. Т.е. экономия ресурсов на лицо (или на монитор).

Multiplicator

Вот поэтому лишь одного компьютера, оснащенного ПО «Multiplicator», хватает, чтобы размножить видеопотоки при одновременных подключениях к выбранному пулу камер большого числа клиентов.   

Но и это не всё, мы говорили об АРМ-ах, которые умеют работать в паре с Видеосерверами, т.е. это составные части одной программы или одного производителя, иногда интегрированного ПО. Но часто мы сталкиваемся со сборной солянкой, которая образовалась в течение длительного времени установок разными фирмами разного программного обеспечения. Не у всех хватает духа и денег, чтобы отказаться от старого, у кого-то политика плюрализма - в общем, доступ к одним и тем же камерам нужен от разных несовместимых между собой программных продуктов. И что с этим делать?

logo-cctv

В системе GOALcity для этого предусмотрен RTSP-выходы, т.е. сама программа GOALcity может являться размножителем видеоканалов с камер, беря при этом и себе рабочий канал. Т.е. к любому Видеосерверу или к Мультипликатору можно подключиться любой другой программой – совершено также, как если бы там была IP-камера. И таких RTSP-потоков на каждую камеру тоже можно получать много, каждый из них будет лишь на несколько процентов увеличивать загрузку проца. По сути, мы стримем камеру в её же протоколе с возможностью подключения большого количества клиентов, и это количество зависит уже не от слабого процессора дешевой камеры, а от мощного ПК.

Мультипликатор

Видите, мы бережно относимся и к своим конкурентам, позволяя работать вместе и сообща, обеспечивая любые потребности Заказчика. А в данном случае, и в любых количествах.