LINUX.ORG.RU
ФорумAdmin

Как сделать трансляцию сразу нескольких камер на одной web-странице?

 ,


0

1

Сабж. А то у motion есть собственный мини http сервер, но он только на одну камеру.

Есть конечно ZoneMinder но это тормозное поделие не вытягивает 10 айпишных камер на 2ghz двухядерном процессоре.

★★★★★

Последнее исправление: Siado (всего исправлений: 1)

А в чем проблема-то? Нафигачил <img src="...«> — и готово. Или (по-современному): <video src=»…«>. Или по-элементарному: iframe'ы с адресом морд ip-камер.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Что-то об этом как-то и не думал, надо попробовать. Только вот пароль/логин к ипкамерам прямо в url чтоли писать? Кто угодно увидит же

Siado ★★★★★
() автор топика
Ответ на: комментарий от Siado

пароль/логин к ипкамерам

Простейший вариант — проксирование средствами апача. Чуть сложней — сделать свой обработчик, который будет опрашивать все камеры и складывать картинки в выделенные буферы. А SRC каждой картинки (mjpeg) будет CGI, читающий из нужного буфера и втыкающий разделители между изображениями.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Хмм, надо будет как-нить засесть да заморочиться, сделать решение полноценное, как надстройка над motion.

Еще вижу как вариант вмонтировать в <video> непосредственно моушеновские минисерверы.

Siado ★★★★★
() автор топика
Ответ на: комментарий от Siado

К сожалению только этот более менее бесплатен. Еще secure os есть.

petav ★★★★★
()
Ответ на: комментарий от petav

Не ну а че, motion достаточно шустрый и надежный, странно, что никакой надстройки над ним нет.

Думаю сейчас как бы лучше реализовать морду чтобы не зависимо от источника видео оно отображалось должным образом. Например вебки действительно выгоднее отображать напрямую, через прямой url к вебке и теги. Только оно не будет работать через nat да и чтобы не спалить логин/пас от камеры - то, как и посоветовал Eddy_Em, надо применять апачефичи.

Siado ★★★★★
() автор топика
Ответ на: комментарий от petav

А что, в охранных камерах есть звук?

// кстати, его тоже можно транслировать. Вот только особенности есть: в отличие от видео, где ты, регулируя выдачу кадров, подгоняешь таким образом fps под пропускную способность сети, для звука нельзя пропускать фреймы. Т.е. придется придумывать алгоритм, постоянно проверяющий по ответам от клиента скорость сети и изменяющий подобающим образом br звукового потока. Хотя, может быть есть и уже готовые решения на html5. Ну и тем паче, при выдаче данных с N-го количества камер звуковой канал надо транслировать лишь один (иначе каша получится несусветная).

// Еще интересно: motion умеет запись по звуковому событию?

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

А что, в охранных камерах есть звук?

Вполне есть.

petav ★★★★★
()
Ответ на: комментарий от petav

Впрочем действительно не поддерживает, помню статейку читал как удалось совместить motion с rtsp http://habrahabr.ru/post/72491/ . Но там rtsp через mencoder идет, а mencoder запускается когда motion на камерах через cgi движения распознает.

Siado ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Проще, но мне то звук пока не нужен. Пока что хочу просто морду к моушену, чтобы камеры мониторить =)

Siado ★★★★★
() автор топика
Ответ на: комментарий от petav

Нужны нам всего-то библиотеки v4l2 и OSS. При помощи v4l2 делаем захват видео (вот так я работал с веб-камерой, а так — с обычной видеокамерой). OSS используем для захвата звука (там вообще все элементарно). Алгоритмов определять движение на видео — пруд пруди, пользуемся одним из них (например, изучаем автокорреляционную функцию между кадрами, или — еще проще — изучаем разность между соседними кадрами). Определить наличие звука еще проще (выделяем некоторый порог, и как только амплитуда захваченного звука его превысит, считаем, что появился звук; со временем можно добавить фильтрацию шумов и даже распознавание посторонних звуков — как в методах отыскания движения на видео).

P.S. Буферизация выполняется нашим демоном в отведенную область разделяемой памяти. Через разделяемую же память происходит выдача информации о номере текущего буфера. При помощи UNIX queue можно реализовать общение клиента и демона. Выдачу изображений клиенту выполняет CGI, который с нужной частотой выбирает из буфера кадры, сжимает их, пишет разделитель и отправляет клиенту (mjpeg — простейший и самый универсальный способ выдачи видео). Со звуком, как я говорил выше, сложней (просто я еще не занимался выдачей звука по сети).

P.P.S. Если в буферы складывать уже сжатые изображения, клиентские CGI практически не нагружают сервер.

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.