Как сделать веб-камеру. Личный пример на этом сайте

Начну с конца – после долгих мучений и тотальной не хватки времени организовать Трансляцию веб-камеры на сайте в реальном времени мне удалось (точнее удалось сделать именно таким путем, каким я хотел). Результат вы можете видеть тут – Вебкамера г. Бронницы. Процесс покупки, установки и настройки растянулся у меня почти пол-года.

Ну а теперь по порядку расскажу о всех этапах: На самом деле пойти можно по нескольким путям: Первый вариант с аналоговой камерой на мой взгляд практически не имеет преимуществ…он дорог и не практичен (говорю уверенно, т. к. имел опыт организации системы видеонаблюдения с аналоговыми камерами на коаксиальном кабеле).

Но есть один плюс – если УЖЕ имеется система видео наблюдения и имеется желание с неё организовать онлайн трансляцию – то это Ваш вариант. Вебкамера + сервер. Самый доступный вариант…

этакий “skype вариант”- USB веб-камера стоит от 200 рублей, а в качестве сервера можно использовать собственный персональный компьютер. Собственно из плюсов этого способа – только дешевизна.

Из минусов – масса неудобств: — Уличное исполнение usb камер я не встречал.

— У USB кабеля сильное ограничение по длине (я не считаю вариантов активного кабеля с повторителем сигнала) — с домашним ПК в качестве сервера постоянное вещание 24х7 трудно реализовать в плане надежности и удобства использования компьютера пользователем.

Всё время будешь думать о том, как бы не отрубить случайно камеру, не убить вещание при перезагрузке и т. д. и т. п. Вариант с USB камерой я рекомендую для пробы…

”тренировки на кошках”. Чтобы понять что такое веб-камера и зачем оно вам надо Вариант с IP-камерой для онлайн трансляции на мой взгляд Оптимален. Если глубоко копать то: IP-камера это и есть матрица+АЦП+сервер – т. е. самая последняя на данный момент стадия эволюции камеры.

Этот вариант более затратен чем вариант реализации схемы вещания б), но менее затратен, чем вариант а). Посему остановимся на IP-камере и далее все действия я буду описывать касательно её. Хотел написать “не мудрствуя лукаво я выбрал…

” – ан нет…мудрствовал я долго.

Начальных посылов при выборе было три: Вопрос цены решился быстро и практически без вопросов – полем для выбора стали китайский онлайн магазины и ebay…

где в пределах 100$ можно было взять что то стоящее.

Для сравнения в России IP камеры стоят как минимум в 2 раза дороже.

А вот со вторым и третьим пунктом пришлось как всегда заморочиться…

прочитал горы русско — и не русскоязычных форумов. Но подробной информации по китайским “товарищам” ооочень мало до сих пор и выбор делался в “слепую”.

Выбор мой пал на камеру с говорящим названием “IP Wired 300K CMOS Camera” с известного магазина Dealextreme.

com. Магазин проверенный, я лично покупал в нем более 2х десятков раз. Выбранная камера не самая дешевая – обошлась мне в 72$ (хотя в магазине есть варианты и за 55$.) Меня подкупил железный корпус (довольно крепкий на вид) и технические характеристики.

Выбор сделан – камера была заказана в конце января.

Зачем мне нужен был прочный корпус? Изначально планировал я повесить камеру на улице под крышей – опасался, что от стекла окна будут блики (и не зря опасался).

Камера должна была быть под крышей т. е. защищена от прямого дождя, но ветер/мороз и прочие погодные условия никто не отменял. Тут надо сказать, что недавно на DX появились уличные IP-камеры идеально подходящие для такой установки, но на момент моей покупки их не было…

Так вот по получении камеры выяснилось, что установка на улице технически затруднена да и взяли сомнения по поводу её эксплуатации зимой – посему стоит моя камера на балконе вплотную у стекла (но вечером блики от ламп всё равно есть) Сейчас есть уже довольно много обзоров китайских камер на ebay-forum. ru Мини обзор моей камеры IP Wired 300K CMOS Camera. Камера пришла в большой коробке с хорошей пластиковой прослойкой внутри.

В комплектесама камера, подвес-стойка, дюбели для крепления и блок питания.

Корпус действительно из металла.

Качество сборки очень хорошее…

Объектив сменный.

Легко схватила IP по DHCP.

В общем всё хорошо…

Единственный большой минус данной IP камеры (да и наверное большинства подобных) это матрица, которая напрочь отказывается понимать зелёный цвет. Он становится серым на изображении.

Связано это с тем, что камера рассчитана также и на ночную съёмку, а в угоду этому диапазон чувствительности матрицы смещён в сторону красного цвета. Встроенное в камеру ПО позволяет определять движение в кадре, отправлть скриншоты по e-mail и на FTP и т. д. и т. п. Это всё конечно интересно для целей безопасности, но для меня не особо важно…

а вот важные для меня настройки самого изображдения практически отсутствуют. Единственная корректировка 50Hz/60Hz/Outdoor практически не влияла на изображение.

Камера шла долго…больше чем два месяца.

За это время я искал решения, каким путем организовать трансляцию.

И это не так просто как кажется.

Скажете – да в чем проблема?

поставил на сайт плагин – подключил вебкамеру – и вещай! Но: А) Это китайская камера и нормального видео потока не выдает Б) исходящий видео поток на Каждого клиента при условии домашнего интернета крайне плохое решение.

Поток шириной в 300 кб/с уже при 5 онлайн смотрящих полностью забъёт весь канал с всеми вытекающими…

В) не у всех браузеры имеют плагины для просмотра потокового видео.

Имея всё перечисленное в виду я решил сделать следующим образом.

Организовать на внешнем сервере (где у меня крутится сайт) сервер ретрансляции.

Который забирал бы поток с камеры и уже от себя раздавал потоки всем желающим. Начитвашись статей на habrhabr установил на сервер Red5 но разбираться с ним времени не было…

потом начались запары на работе, поэтому проект веб-камеры вообще был заброшен на месяц. Когда время появилось снова и руки добрались до проекта камеры, я осознал, что при всей понтовости и гиковости затея с Red5 в рамках моего сайтика это абсурд Поэтому поиск решение пошел по другому пути.

IP-камера, купленная мною, умела по FTP с заданным интервалом загружать скриншоты с камеры на сервер.

Но все изображения сохранялись с именем включавшими дату и время… Заставить камеру сохранять все скриншоты под одним именем (путем замены) скорее всего можно…

но заниматься мне этим также не захотелось Поэтому был найден Третий путь: сервер сам забирает с камеры изображения. Также о путях реализации вы можете почитать на Habrahabr Кроме загрузки по FTP IP-камера умеет еще и выдавать скриншоты..

правда реализовано это тоже довольно странно. Для того чтоб получить скриншот надо отправить камере запрос типа Http://IP:port/snapshot. cgi? usr=name&pwd=pass&filename=test. jpg Полное руководство по cgi коммандам китайской IP камеры Сервер у меня VDS на FreeBSD (хехе…

надо будет купить футболку с красным чёртиком ) поэтому на shell забор скриншота с камеры занимает одну строчку через wget.

У меня получилось так: /usr/local/bin/wget — p — b — q –output-document=/folder/subfolder/test. jpg –input-file=/file В качестве параметра URL у меня стоит –input-file=/file т. е. считывать адрес из файла т. к. у меня Wget не захотел понимать адрес запроса к камере напрямую в коммандной строке…

но это мой частный случай. Далее.

Этот запрос надо как то зациклить – самое простое это через Cron, но крон не умеет выполнять команду чаще раза в минуту, поэтому делаем скрипт с бесконечным верным условием While true ; Ставим задержку sleep – вуаля, всё работает Теперь frontend – решение тривиальное – картинку запихиваем в iframe и обновляем содержимое фрейма через JavaScript c заданой периодичностью.

Код следующий: <IMG align=”center” src=”test.

jpg” width=”480″ height=”360″ border=”1″ name=”refresh”> <SCRIPT language=”JavaScript” type=”text/javascript”> Tmp = new Date(); Start(); // –> </SCRIPT> Ну об основных моментах наверное всё. Я еще планировал рассказать о том, как сделать наложение водяного знака, защиту доступа и прочие улучшения вебкамеры…но об этом я думаю – в следующей статье.

Комментарии запрещены.

Поиск