Программа слежения через камеру ноутбука. ISpy — удаленное видеонаблюдение через веб камеру Камера следит? Вариант на скорую руку

Использовать цифровую камеру в качестве веб-камеры можно двумя способами - используя встроенный режим web-камеры или используя камеру в качестве устройства для видеозахвата. Рассмотрим каждый из этих вариантов.

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


Порядок действий:

  • Подключите вашу камеру к компьютеру - подключение возможно как через USB-кабель так и (в случае если это необходимо) при помощи аудио/видео кабелей, которые могут поставляться в комплекте с камерой.
  • Перейдите в "Мой компьютер" (при использовании Windows 7, 8 или 8.1) и нажмите на иконку USB-устройства видеозахвата. Скорее всего появится захваченное видео с камеры. Если этого не произошло, проверьте подключен ли блок питания к камере. Некоторые камеры не могут работать как веб-камеры, пока не подключен внешний источник питания. В режиме веб-камеры требуется больше энергии и встроенного аккумулятора или батарей недостаточно.
  • Используйте отдельный микрофон, если ваша камера не передает звук.
  • Выясните фокусное расстояние камеры. Минимальное фокусное расстояние линз определяет минимальную дистанцию к объекту. Обычно, чем меньше фокусное расстояние, тем ближе можно расположить объект съемки.
  • Проследите чтобы кабели были подключены крепко, чтобы избежать обрыва во время трансляции.
  • Выбрать необходимую web-камеру можно в программе которую вы будете использовать (Skype и т.п.)
Выбрать качественную камеру или фотоаппарат вы можете в нашем или .

Во втором случае, если камера не имеет режима работы в качестве веб-камеры, однако умеет транслировать изображение по видеокабелю, вам понадобятся не только драйвера, но и специализированное ПО для перенаправления видеосигнала в интернет (например программы ManyCam, Active WebCam, SplitCam). Стандартные программы видеозахвата могут сохранять снимаемые камерой видеозаписи на жесткий диск, но транслировать этот сигнал в сеть они не могут - потому необходимо озаботится выбором необходимой программы заранее.

Для организации работы камеры как веб-камеры необходимо на компьютере иметь устройство видеозахвата (Capture Video). Таким устройством для захвата видео может быть ТВ-тюнер, видеокарта или специальный адаптер. На входе обычно используется видеовход для видео в виде разъема "тюльпан". Через него и осуществляется подключение камеры.

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

Видеонаблюдение – один из эффективнейших методов охраны всевозможных предприятий, территорий и даже отдельных личностей. Современные технологии шагнули далеко вперёд и подарили человечеству существенный спектр различных методов видеонаблюдения, и один из них, который будет разобран в этой статье – наблюдение через веб-камеру. Ту самую, что имеется у большинства семей у себя дома.

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

Наблюдение через видеокамеру может пригодиться как в бытовых целях (слежка за подъездом, если имеются подозрительные гости и/или соседи; слежка за рабочим местом, то есть, недалеко от компьютера), так и может заменить , ибо с несколькими камерами можно развернуть целую систему.

Преимущества

Экономность и доступность. Собирается ли человек использовать одну-две камеры в бытовых целях (без надобности в Full HD), или целый десяток на рабочем месте по всему офису – выйдет в любом случае дешевле полноценных камер с их установкой, поскольку самая дорогая камера с высочайшим разрешением стоит от шести тысяч рублей.

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

Объём информации. Как уже было сказано, для слежки не обязательно нужна дорогостоящая камера с отличным качеством картинки, а отсюда следует, что и вес видеозаписи вне зависимости от её длительности будет достаточно мал, чтобы оставлять драгоценные гигабайты жёсткого диска для прочих нужд пользователя.

Недостатки

Казалось бы, зачем нужны остальные виды видеонаблюдения, если веб-камера обладает всеми необходимыми свойствами? Потому, что экономность и качество не всегда идут рука об руку. Выбирая слежку через веб-камеру, пользователь принимает на себя и ряд минусов:

Качество съёмки. Желая исполнить свою мечту и в довесок сэкономить, человек сталкивается с тем, что качествово картинки недостаточно хорошее, чтобы, например, сходу идентифицировать личность подозрительного человека в подъезде и тем самым, в случае чего, облегчить работу сотрудников полиции. А если на этажном пролёте отсутствует освещение, то съёмка ночных часов становится просто бесполезной тратой места на жёстком диске и времени. Фатальнее этот минус становится, если камера имеет и наилучшее разрешение: в темноте всё равно будет сложно что-то разглядеть.

Угол обзора. Если нужно вести слежку за обширной территорией (склад, рекреация, целая улица и так далее) – фиксированные веб-камеры без способности самостоятельно менять угол слежки вынуждают пользователя размещать в том же месте ещё одну камеру, чтобы ничего не упустить из виду. Если уж и экономить – то, как бы это парадоксально не звучало, стоит покупать камеру дороже, имеющую подвижную раму.

Непрочность. Так исторически сложилось, что люди не очень любят, когда их снимают без их разрешения. Если жители дома сами собрали средства и сдали их на установку профессиональных камер, то не имеется никаких претензий. Но всё меняется, когда слежку устраивает один-единственный энтузиаст на свои собственные средства, чем он может вызвать очень разнообразный спектр эмоций у соседей: от скрытого возмущения до открытой ненависти и смелого демонтажа любезно устроенной системы.

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

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

Установка своими руками: как это работает?

В первую очередь, пользователю необходимо обладать следующими ресурсами:

  1. Веб-камера;
  2. USB-удлинитель (на вопрос экономии никак не влияет, стоит копейки);
  3. Знание и умение обращаться с драйверами, программным обеспечением;
  4. Компьютер или ноутбук, в зависимости от того, куда будет подключаться камера.

При необходимости удалённого наблюдения, в онлайн-режиме, нужно установить отдельный софт, дающий такую возможность.

Удалённая слежка имеет ряд преимуществ:

  • Экономия дискового пространства;
  • Следить за записью можно с абсолютно любого устройства;
  • Онлайн-наблюдение позволяет реагировать на происходящее в кадре в разы быстрее.

Программное обеспечение на примере IVideon

Софта для реализации онлайн-слежки существует великое множество, и в их число входит даже всем известный Skype. Функция автоматического принятия вызова и автоматической трансляции творит чудеса. Но одной из лидирующих программ в данной области была и остаётся бесплатная IVideon.

IVideon – простая в освоении, интуитивно понятная программа онлайн-наблюдения. Как же она работает?

После установки программа потребует пройти процедуру регистрации и выбора конфигурации;

  1. После прохождения регистрации в появившемся списке появится перечень подключённых к компьютеру камер.
  2. Следующее окно даст пользователю возможность самостоятельно выбрать диапазон дискового места, под которое будет выделена запись. В зависимости от целей, камер и их количества необходимо задать нужный размер в гигабайтах, но выделять рекомендуется не менее 50-70ГБ для комфортного круглосуточного записывания.
  3. Дальнейшие настройки дадут пользователю возможность автоматического запуска программы при включении компьютера, старт записи по расписанию, звуку, движению и многие другие приятные возможности.

Установленные также IVideon Client и IVideon Server позволяют пользователю вести онлайн-слежку сразу за несколькими камерами, настроить доступ и приватность к просмотру.

Другие программы

Помимо уже озвученных программ существуют следующие конкуренты:

WebcamXP . Условно-бесплатная утилита, в своей бесплатной версии дающая пользователям ограниченный спектр возможностей. В частности – только один поток слежения. Платная версия позволяет настроить наблюдение по движению, онлайн-трансляцию прямо на сайт разработчика с облачным хранением.

Xeota. Данная программа позволяет в своей пробной версии вести наблюдение с четырёх камер одновременно. Поддерживает аналоговые, веб-, IP- и беспроводные камеры наиболее популярных издателей. Помимо функций скрытого наблюдения также может использоваться в качестве сигнализации (с выбором звука сирены) с автоматической отправкой изображений происходящего в кадре на почтовый адрес или телефон.

AbelCam . Онлайн-транслятор изображения с веб-камеры и видеоредактор в одном флаконе. Как и WebcamXP, в пробной версии позволяет вести наблюдение только по одному потоку, по одной камере. Поддерживает камеры высокого разрешения и вышеописанных видов, форматы.AVI и.WMV, имеет встроенный детектор движения.

Globoss . Серьёзная программа, имеющая полный спектр функций: 12 камер в платной версии (2 – в бесплатной), датчик шума и движения, запись по времени, поддержка IP-камер, а сервис разработчика позволяет вести удалённое наблюдение.

WebCamMonitor. Однопоточная программа, поддерживающая только веб-камеры, но имеющая все вышеперечисленные функции: датчик движения (с возможной настройкой определения движения только в одной конкретно взятой области кадра), шума (с настройкой громкости) и возможностью отсылать предупреждающие сообщения на почту и телефон.

AxxonNext. Внушительная программа, позволяющая развернуть систему наблюдения вплоть до шестнадцати камер, обходит все предыдущие по таким двум функциям, как слежка и полное управление с телефона и поиск необходимого объекта на кадре по определённым параметрам, но уступает по удобности и привлекательности интерфейса.

AtHome Video Streamer. В отличие от всех остальных программ, является мультиплатформенной программой, т.е имеет равные возможности и одинаковый функционал как на Windows, так и на Ubuntu с MacOS, Android и IOS. Имеет отдельное облачное хранилище и лёгкое подключение к прочим хранилищам подобного типа. В остальном – всё та же возможность записи по движению, звуку, времени и рассылкой тревожных предупреждений на телефон.

EyeLine Video Surveillance. Рекордсмен по поддержке потоков – ни больше, ни меньше – сто камер. Приятный минималистичный интерфейс и двухнедельный пробный период с возможностью подписки по символической цене дают полноценный и разношёрстный функционал (выбор редакции!).

Fraps. Несмотря на известность этой программы, как софта для захвата изображения с экрана компьютера, последние обновления ввели новшество в лице параллельной с захватом изображения записи картинки с видеокамеры, на чём можно, естественно, спекулировать и получить очередную программу видеонаблюдения, но сильно ограниченную в функционале – ни датчиков движения, звука, записи по времени, облачного хранения и удалённого слежения у этой утилиты не имеется.

Полезное видео

Смотрите о том, как установить домашнее видеонаблюдение на основе веб-камеры с софтом IVideon.

Заключение

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

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

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

Как проверить, камера следит за пользователем или нет?

Здравствуйте, сегодня мы поговорим о том, как проверить, работает ли сейчас веб-камера вашего ноутбука или компьютера, и камера следит сейчас за вашими движениями, или же вы можете преспокойно себе ковырять в носу?

То, что любое мобильное устройство сейчас снабжено камерой, чертовски удобно. А вы не задумывались, что камера может снимать и без вашего разрешения? Ведь она своим только существованием нацелена на того, кто устроился напротив монитора. То есть вас.

Следуем далее. Если камера встроена, то помигивающий рядом с ней светодиод часто «выдаёт» процесс работы. Такой же «глаз» расположен и на монтируемом на мониторе стационарного ПК устройстве. Ну… хорошо, если так, и вы вдруг обратили на это внимание. А если нет, и камера следит за вами прямо сейчас? Она может это делать и не помигивая…

Сразу о неприятном.

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

  • троянской программы, причём она будет скомпонована не только ради того, чтобы транслировать изображение с камеры. Ведь картинка сама по себе значения не имеет. Иногда включение камеры и последующая запись идёт вкупе с другим, огромным количеством программ, которые позволяют, в том числе, и отключать большинство функций безопасности Windows. Типичный и самый элементарный пример такого трояна – .
  • кто не знает, (он же метер ), советую с ним хоть поверхностно, но познакомиться. И если в первом пункте ловкость хакера может сойти на нет благодаря хорошему антивирусному пакету, то от этого панацеи нет – антивирус открытую сессию метера не вычленяет. А в числе запущенных служб там может быть запущена и запись скриншотов с экрана или вебкамеры. Читайте статью по ссылке.

Камера следит? Вариант на скорую руку.

Давайте-ка проверим …

Но для начала я попрошу вас скачать очень хорошую программку под названием Process Explorer . Она очень полезна для тех, кто интересуется природой тех или иных процессов, которые протекают в Windows , позволяя отследить программы и , запущенные в системе. С её помощью легко выявлять вирусы и прочую дрянь, которая удачно маскируется под популярные процессы. Программа Process Explorer будет фигурировать в моих статьях не раз, вам давно пора ею обзавестись. Она на английском, установки не потребует, простой исполнительный файл.

Но вернёмся к “нашим баранам” и проверим, за кем камера следит.

Качаем программу Process Explorer с сайта Microsoft в zip-архиве

Чтобы проверить подробности работы вашего устройства (да любого!), вам понадобится его полное название. Диспетчер устройств в Windows выдаст его с потрохами. Компьютер (через Пуск ) – правой мышкой Свойства Диспетчер устройств .

Теперь найдите устройства обработки изображений. Разверните пункт. И щёлкните правой мышкой Свойства . Скопируйте название устройства во вкладке Описание устройства :

Теперь запускаем Process Explorer . Напоминает она Диспетчер задач windows. Слева в панели инструментов найдите значок с биноклем. Щёлкните по нему и вставьте скопированное. Нажмите Search

Если вас уже что-то насторожило, убейте процесс с помощью двух кнопок выше, начинающихся с Kill . Посмотрите, что произойдёт с работоспособностью камеры и программы для работы с камерой. Если не произошло ничего – вариант задуматься о том, что кто-то ещё знает, как выглядит ваше лицо перед монитором. А то, что камера следит за вами, считайте уже доказанным фактом.

  • чтобы верно определить свою камеру среди прочих устройств компьютера и ноутбука, вам понадобится её полное имя в списке оборудования. Лучше Диспетчера Windows этого вам никто не скажет. Жмём WIN + R , набираем команду
devmgmt.msc

Скопируйте имя из вкладки Сведения под пунктом Описание устройства и введите его в открытом окне поиска Process Explorer (CTRL + F). Как действовать дальше, вы знаете. Проверьте и удостоверьтесь.

Как предотвратить?

Скажу по секрету – хорошо спрятанный троян спрячет “процесс” так, что никто его уже не заметит. Следовательно, проследите чтобы зараза в компьютер не попадала. Если хорошего антивирусного пакета нет – ваш компьютер открыт для наблюдения. А он решит большинство проблем. Обойти защиту антивируса, а иногда даже на уровне Difender -а от Windows 10, может далеко не каждый “хакер”. Профессионалов, которые будут посягать на вашу камеру, немного найдётся. И без антивируса в сети вообще делать нечего. Проблема ведь иногда в том, что хакеры нередко имеют вполне конкретные звания и должности.

Есть возможность – отключите. И включайте только на время сеанса. Камера встроенная? В наверняка есть возможность отключить камеру оттуда. Пляшите от слова camera в настройках CMOS. Этим и воспользуйтесь. Если же пользуетесь часто – подойдёт следующий вариант.

Некоторые люди опасаются, что встроенная в их ноутбуки вебкамера может за
ними подглядывать. Они опасаются этого настолько серьезно, что порой даже
заклеивают изолентой ее недремлющее око. Делают они это не зря. Мы расскажем,
как можно программно овладеть встроенной в ноутбук веб-камерой и использовать ее
функционал как в мирных, так и не очень целях.

Начинаем реализацию: первые досадные огорчения

Я был очень удивлен и расстроен, когда узнал, что в великом и могучем.NET
Framework напрочь отсутствует возможность простого взаимодействия с веб-камерами.
В четвертой версии ситуация улучшилась (для SilverLight-проектов точно появились
соответствующие классы), но протестировать я их не успел, поскольку пример для
данной статьи я начал писать еще до официального выхода VS2010 и 4-го.NET’a.

Практически отчаявшись, я плотно засел в гугле. Результаты поиска по рунету
меня не вдохновили – все, что я нашел – это ссылки на MSDN и технологию
DirectDraw. Я даже попробовал набросать простенький примерчик, но из-за
отсутствия опыта работы с DirectDraw меня постиг облом. У меня получилось
собрать совсем простенькое приложение, но я так и не смог выловить в нем все
глюки.

Еще больше отчаявшись, я принялся шерстить ресурсы наших западных товарищей.
Проштудировав несколько десятков ссылок, я смог нарыть много вкусностей. Среди
них были всевозможные примеры и небольшие статейки (американцы не любят много
писать). Мне даже удалось найти рабочий пример на основе DirectDraw, но, когда я
увидел код – ужаснулся. Разобраться в нем было тяжело. Поэтому я решил с ним не
заморачиваться, а попытаться найти способ попроще. Не успел я распрощаться с
примером на DirectDraw, как на глаза мне попался еще один. Автор примера закодил
целую библиотеку для работы с веб-камерами и другими устройствами видеозахвата,
используя технологию VFW (Video For Windows).

Жаль, что проект автора (я про библиотеку) был максимально кастрирован. Все,
что позволяла сделать библиотека – вывести изображение с веб-камеры. Ни захвата
отдельных кадров, ни записи видео и других полезных нам фич не было.

И тем не менее, мое подсознание решительно сказало мне, что этот проект и
есть то, что я искал. Не успел я беглым взглядом пробежаться по его коду, как
увидел имена знакомых win-сообщений и не менее знакомых названий WinAPI функций.
Когда-то давным-давно мне приходилось писать приложение для работы с веб-камерой
на Delphi. Тогда я и столкнулся с этими функциями впервые.

Посмотрев сорцы, я решил написать свою версию библиотеки и снабдить ее нужным
функционалом.

Взвод, готовность №1

Вполне возможно, что в одном компе/ноуте может быть несколько веб-камер. За
примером далеко ходить не надо. Мне по работе часто приходится организовывать
простенькие видеоконференции. Обычно в них участвуют два человека. Каждого из
участников снимает отдельная камера. Сами камеры подключены к моему компу. Когда
я начинаю съемку, то выбираю в программе для работы с видеокамерами нужную в
настоящий момент камеру. Раз уж мы решили взять камеру под контроль, то обязаны
разобраться, как получать список установленных устройств видеозахвата и выбрать
то, с которым будем работать в настоящий момент.

Для решения этой нехитрой задачи в WindowsAPI предусмотрена функция
capGetDriverDescription(). Она принимает пять параметров:

  1. wDriverIndex – индекс драйвера видеозахвата. Значение индекса может
    варьироваться от 0 до 9;
  2. lpszName – указатель на буфер, содержащий соответствующее имя драйвера;
  3. cbName – размер (в байтах) буфера lpszName;
  4. lpszVer – указатель на буфер, содержащий описание определенного
    драйвера;
  5. cbVer – размер буфера (в байтах), в котором хранится описание драйвера.

В случае успешного выполнения, функция вернет TRUE. Описание функции у нас
есть, теперь посмотрим, как определить ее в C#. Делается это так:


protected static extern bool capGetDriverDescriptionA (short wDriverIndex,
ref String lpszName, int cbName, ref
String lpszVer, int cbVer);

Обрати внимание, что перед тем, как указать имя подключаемой функции, в
обязательном порядке требуется написать имя DLL, в которой она определена. В
нашем случае это avicap32.dll.

Так, функция импортирована, теперь можно написать класс, в котором она будет
использоваться. Весь код класса для получения списка устройств я приводить не
стану, покажу лишь код ключевого метода:

public static Device GetAllCapturesDevices()
{
String dName = "".PadRight(100);
String dVersion = "".PadRight(100);

for (short i = 0; i < 10; i++)
{
if (capGetDriverDescriptionA(i,
ref dName, 100, ref dVersion,
100))
{
Device d = new Device(i);
d.Name = dName.Trim();
d.Version = dVersion.Trim();

devices.Add(d);
}
}
return (Device)devices.ToArray
(typeof(Device));
}

Код выглядит проще некуда. Самое интересное место в нем – цикл, в котором
происходит вызов упомянутой выше функции capGetDriverDescription. Из MSDN мы
знаем, что индекс (первый параметр функции capGetDriverDescription()) может
варьироваться от 0 до 9, поэтому мы целенаправленно запускаем цикл в этом
диапазоне. Результатом выполнения метода будет массив классов Device (этот класс
я определил самостоятельно, смотри соответствующие исходники).

С получением списка устройств разобрались, теперь позаботимся об отображении
видеопотока с камеры. Тут нам сослужит хорошую службу функция
capCreateCaptureWindow(), предназначенная для создания окна захвата.

Немного забегая вперед, скажу, что дальнейшие действия с камерой будут
происходить путем банальной отправки сообщений окну захвата. Да, именно так,
придется воспользоваться до боли знакомой windows-программисту (и приколисту)
функцией SendMessage().

Теперь присмотримся внимательнее к функции capCreateCaptureWindow(). Ей
требуется передать шесть аргументов:

  1. lpszWindowName – нуль-терминальная строка, содержащая имя окна захвата;
  2. dwStyle – стиль окна;
  3. x – координата X;
  4. y – координата Y;
  5. nWidth – ширина окна;
  6. nHeight – высота окна;
  7. hWnd – handle родительского окна;
  8. nID – идентификатор окна.

Результатом выполнения функции будет handle созданного окна или NULL в случае
ошибки. Поскольку эта функция также относится к WinAPI, то ее опять-таки нужно
импортировать. Код импортирования приводить не буду, поскольку он практически
идентичен тому, что я писал для функции capGetDriverDescription(). Лучше сразу
взглянем на процесс инициализации камеры:

deviceHandle = capCreateCaptureWindowA (ref deviceIndex, WS_VISIBLE |
WS_CHILD, 0, 0, windowWidth, windowHeight, handle, 0);

if (SendMessage(deviceHandle, WM_CAP_DRIVER_CONNECT, this.index, 0) > 0)
{
SendMessage(deviceHandle, WM_CAP_SET_SCALE, -1, 0);
SendMessage(deviceHandle, WM_CAP_SET_PREVIEWRATE, 0x42, 0);
SendMessage(deviceHandle, WM_CAP_SET_PREVIEW, -1, 0);

SetWindowPos(deviceHandle, 1, 0, 0, windowWidth, windowHeight, 6);
}

В этом коде сразу после создания окна производится попытка отправки сообщения
WM_CAP_DRIVER_CONNECT. Отличный от нуля результат выполнения функции расскажет
нам о ее успешности.

Теперь представим, что сегодня боги на нашей стороне и произведем
незамедлительную отправку нескольких сообщений: WM_CAP_SET_SCALE,
WM_CAP_SET_PREVIEWRATE, WM_CAP_SET_PREVIEW. Увы, как и в случае с функциями, C#
ничего не знает о существовании этих констант. Тебе опять придется определять их
самостоятельно. Список всех необходимых констант с комментариями я привел ниже.

//Пользовательское сообщение
private const int WM_CAP = 0x400;
//Соединение с драйвером устройства видеозахвата
private const int WM_CAP_DRIVER_CONNECT = 0x40a;
//Разрыв связи с драйвером видеозахвата
private const int WM_CAP_DRIVER_DISCONNECT = 0x40b;
//Копирование кадра в буффер обмена
private const int WM_CAP_EDIT_COPY = 0x41e;
//Включение/отключение режима предпосмотра
private const int WM_CAP_SET_PREVIEW = 0x432;
//Включение/отключение режима оверлей
private const int WM_CAP_SET_OVERLAY = 0x433;
//Скорость previewrate
private const int WM_CAP_SET_PREVIEWRATE = 0x434;
//Включение/отключение масштабирования
private const int WM_CAP_SET_SCALE = 0x435;
private const int WS_CHILD = 0x40000000;
private const int WS_VISIBLE = 0x10000000;
//Установка callback-функции для preview
private const int WM_CAP_SET_CALLBACK_FRAME = 0x405;
//Получение одиночного фрейма с драйвера видеозахвата
private const int WM_CAP_GRAB_FRAME = 0x43c;
//Сохранение кадра с камеры в файл
private const int WM_CAP_SAVEDIB = 0x419;

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

Всего в библиотеке я реализовал (точнее, дописал) пару методов: GetAllDevices
(уже рассматривали), GetDevice (получение драйвера устройства видеозахвата по
индексу), ShowWindow (отображение изображения с веб-камеры), GetFrame (захват
отдельного кадра в графический файл) и GetCapture (захват видеопотока).

В качестве демонстрации работоспособности изготовленной либы я набросал
небольшое приложение. На форме я расположил один компонент ComboBox
(используется для хранения списка имеющихся устройств видеозахвата) и несколько
кнопок – "Обновить", "Пуск", "Остановить" и "Скриншот". Ах да, еще на моей форме
пестреет компонент Image. Его я применяю для отображения видео с камеры.

Разбор полетов начнем с кнопки "Обновить". По ее нажатию я получаю список
всех установленных устройств видеозахвата. Начинка этого обработчика события:

Device devices = DeviceManager.GetAllDevices();
foreach (Device d in devices)
{
cmbDevices.Items.Add(d);
}

Правда, все просто? Разработанная нами библиотека берет на себя все черную
работу и нам остается лишь наслаждаться объектно-ориентированным
программированием. Еще проще выглядит код для включения отображения видеопотока
с камеры:


selectedDevice.ShowWindow(this.picCapture);

Опять же, все проще пареной репы. Ну и теперь взглянем на код кнопки "Скриншот":

Device selectedDevice = DeviceManager.GetDevice(cmbDevices.SelectedIndex);
selectedDevice.FrameGrabber();

Я не стал уделять особого внимания методу FrameGrabber(). В моем исходнике
вызов метода приводит к сохранению текущего кадра прямо в корень системного
диска. Разумеется, это не очень корректно, поэтому перед боевым применением
программы не забудь внести все необходимые поправки.

Готовность № 3

Теперь настало время поговорить о том, как соорудить простенькую, но надежную
систему видеонаблюдения. Обычно такие системы базируются на двух алгоритмах:
различие двух фреймов и простое моделирование фона. Их реализация (код)
достаточно объемна, поэтому в самый последний момент я решил пойти по более
простому пути. Под легким путем подразумевается использование мощного, но пока
малоизвестного фреймворка для.NET – AForge.NET.

AForge.NET в первую очередь предназначен для разработчиков и исследователей.
С его помощью, девелоперы могут существенно облегчить свой труд при разработке
проектов для следующих областей: нейросети, работа с изображениями (наложение
фильтров, редактирование изображений, попиксельная фильтрация, изменение
размера, поворот изображения), генетика, робототехника, взаимодействие с видео
устройствами и т.д. С фреймворком поставляется хорошая документация. В ней
описаны абсолютно все возможности продукта. Не поленись хорошенько с ней
ознакомиться. Особенно мне хочется отметить качество кода этого продукта. Все
написано цивильно и копаться в коде – одно удовольствие.

Теперь вернемся к нашей непосредственной задаче. Скажу честно, средствами
фреймворка она решается как дважды два. "Тогда зачем ты мне парил мозг WinAPI
функциями?" – недовольно спросишь ты. А за тем, чтобы ты не был ни в чем
ограничен. Сам ведь знаешь, что проекты бывают разные. Где-то удобнее применить
махину.NET, а где-то проще обойтись старым добрым WinAPI.

Вернемся к нашей задачке. Для реализации детектора движений нам придется
воспользоваться классом MotionDetector из вышеупомянутого фреймворка. Класс
отлично оперирует объектами типа Bitmap и позволяет быстренько вычислить процент
расхождения между двумя изображениями. В виде кода это будет выглядеть примерно
так:

MotionDetector detector = new MotionDetector(
new TwoFramesDifferenceDetector(),
new MotionAreaHighlighting());

//Обработка очередного кадра
if (detector != null)
{
float motionLevel = detector.ProcessFrame(image);

if (motionLevel > motionAlarmLevel)
{
flash = (int) (2 * (1000 / alarmTimer.Interval));
}

if (detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing)
{
BlobCountingObjectsProcessing countingDetector = (BlobCountingObjectsProcessing)
detector.MotionProcessingAlgorithm;
objectsCountLabel.Text = "Objects: " + countingDetector.ObjectsCount.ToString(
);
}
else
{
objectsCountLabel.Text = "";
}

Вышеприведенный код (не считая инициализацию класса MotionDetector) у меня
выполняется при получении очередного кадра с веб-камеры. Получив кадр, я
выполняю банальное сравнение (метод ProcessFrame): если значение переменной
motionlevel больше motionLevelAlarm (0.015f), то значит, надо бить тревогу!
Движение обнаружено. На одном из скришотов хорошо видна работа демонстрация
детектора движений.

Готовность №4

Веб-камеру можно запросто приспособить для распознавания лиц и создания
продвинутого способа лог-она в систему? Если переварив весь этот материал, ты
думаешь, что это сложно, то ты ошибаешься! В конце марта на сайте
http://codeplex.com (хостинг
для OpenSource проектов от MS) появился пример (а затем и ссылка на статью),
демонстрирующий реализацию программы для распознавания лиц с использованием
веб-камеры. Сам пример основан на использовании новых возможностей.NET и
SilverLight. Разобрать этот пример в рамках журнальной статьи нереально, так как
автор исходника постарался и сделал все максимально шикарно. Тут тебе и
алгоритмы для работы с изображениями (фильтр размытия, уменьшения шума,
попиксельное сравнение, растяжка и т.д.) и демонстрация новинок SilverLight и
много чего еще. Одним словом, must use! Ссылку на проект и статью ищи ниже.

Конец фильма

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

Вспомни статью про . В ней я говорил, что времена клавиатурных шпионов уже прошли.
Сейчас особенно актуальны аудио и видеоданные. Если учесть, что сегодня
веб-камера – обязательный атрибут любого ноутбука, то нетрудно представить,
сколько интересного видео ты сможешь заснять, подсунув жертве "полезную
программку"… Однако я тебе этого не говорил:). Удачи в программировании, а
будут вопросы – пиши.

WWW

http://blogs.msdn.com/
– Русская версия статьи "Silverlight 4 real-time Face Detection"
(распознавание лиц в реальном времени при помощи SilverLight).


http://facelight.codeplex.com/ – здесь хостится проект "Facelight",
позволяющий распознавать лица в реальном времени. Если ты собрался закодить
серьезную софтину для определения лиц или логона в систему, то посмотреть на
этот проект просто обязан.


http://www.aforgenet.com/framework/ – тут ты
найдешь AForge .NET – отличный и простой в использовании фреймворк для работы с
видео, изображениями и т.д.

http://vr-online.ru
– все исходники примеров, а также кучу дополнительной информации ты
можешь слить с сайта проекта VR-Online.

Самое популярное ПО для организации видеонаблюдения, которое работает со всеми существующими камерами. Xeoma запускается на любых компьютерах и даже не требует установки.

У программы лаконичный интерфейс и почти безграничные возможности. Помимо привычного детектора движения, в Xeoma реализовано распознавание автомобильных номеров, лиц и даже эмоций. Все функции работают в виде модулей, которые можно объединять в цепочки и очень тонко настраивать.

В бесплатной версии количество модулей ограничено тремя, чего будет достаточно для дома и несложных сценариев. Для более серьёзных задач есть три типа лицензий, цена которых зависит от количества камер.

  • Платформы: Linux, iOS, Android.

Мощный инструмент с открытым исходным кодом и активным сообществом, который годится для организации видеонаблюдения любой сложности. После настройки просматривать видео можно с компьютера или смартфона, из любого браузера.

Zoneminder работает с камерами любых типов, позволяя записывать и анализировать картинку с них. Благодаря расширенным настройкам, для каждой камеры можно задать несколько зон определения движений и их чувствительность. Умеет отправлять оповещения на или СМС о заданных событиях.

Приложение полностью бесплатно как для домашнего, так и для коммерческого использования.

3. iSpy

  • Платформы: Windows, iOS, Android.

iSpy имеет открытый исходный код, что предоставляет широкие возможности для модернизации программы и делает детальную настройку очень удобной. Расширить функциональность можно с помощью плагинов для распознавания автомобильных номерных знаков, наложения текста, сканирования штрихкодов.

Можно подключить неограниченное количество источников. Есть датчик движения, сетевое вещание, уведомления. Кроме того, iSpy поддерживает загрузку на YouTube, Dropbox или FTP‑сервер.

В качестве источника можно использовать не только USB- и IP‑камеры, но и изображение рабочего стола.

  • Платформы:

Эта мультиплатформенная программа может похвастаться умным датчиком движения, который способен отличить человека от автомобиля или домашнего животного. Умеет работать с IP- и веб‑камерами, но в бесплатной версии можно стримить видео только с одного источника.

Sighthound Video способна сохранять ролики в облачные сервисы и имеет много полезных возможностей для тех, кому импонирует концепция .

На официальном сайте можно купить набор, который обеспечит безопасность, например, загородного дома, а сама программа умеет работать со службой автоматизации IFTTT.

  • Платформы: Windows, macOS, iOS, Android.

Главное достоинство AtHome Video Streamer - мультиплатформенность. Помимо мобильных приложений для слежки, у программы есть полноформатные версии для Windows и macOS.

Предоставляется возможность вести запись по расписанию, сохранять видео в и отправлять уведомления на смартфон при обнаружении движения. В качестве источников используются камеры USB, IP, Smart TV, iOS- и Android‑устройств.

  • Платформа: Windows.

EyeLine Video Surveillance может задействовать до 100 каналов одновременно. В качестве источников позволяет использовать как веб-, так и IP‑камеры.

Программа оснащена детектором движения, менеджером архивных записей и возможностью загрузки видео на FTP‑сервер. Уведомления о событиях можно получать по электронной почте или СМС.

EyeLine Video Surveillance - отличный вариант для тех, кому нужна простая и эффективная система видеонаблюдения. Программа имеет двухнедельный пробный период и предлагает несколько вариантов подписки с расширенной функциональностью.

  • Платформы: Windows, iOS, Android.

Готовое решение от Milestone, которое сочетает простоту работы и массу полезных возможностей. XProtect Essential+ подойдёт для точек и домашнего использования.

Программа поддерживает до восьми IP-, USB- и веб‑камер, умеет вести запись по движению в кадре, а также позволяет настраивать отдельные зоны обнаружения большей точности. Просматривать потоки можно с неограниченного количества компьютеров и мобильных устройств.

XProtect Essential+ не требует активации, а бесплатная версия ограничена лишь количеством камер. При необходимости она легко масштабируется до платной с сохранением всех настроек.