Подключение к веб камере другого компьютера в локальной сети
Как стало известно из недавнего опроса 158 пользователей FlexiHub, все они используют его для управления доступом к веб-камере по сети на своих компьютерах под управлением Windows. Это удивило меня и я решила изучить подробные онлайн-руководства по этой теме. Google Поиск выдал множество сайтов с вопросами и ответами, но подходящего руководства я так и не нашла. Вопросы были двух типов - одни хотели полного контроля над веб-камерой другого компьютера, а другие хотели знать, как им передавать изображение с одного компьютера на другой или непосредственно в сеть.
Ниже я приведу для вас самые лучшие методы и решения на сегодняшний день.
76% пользователей Windows полагают, что для того, чтобы удаленный компьютер мог получить доступ к веб-камере, нужно потратить уйму времени на настройку параметров Windows. В связи с этим, было бы интересно узнать, существует ли программное обеспечение, способное легко предоставлять доступ к веб-камере удаленным компьютерам? - К счастью, да!
Скачайте FlexiHub и установите его на оба компьютера. При этом неважно, какая ОС установлена на вашем компьютере - приложение поддерживает Windows, macOS и Linux.
Альтернативные варианты удаленного доступа
Чтобы начать им пользоваться, нужно пройти регистрацию и скачать программное обеспечение. Стоит заметить, что знание IP-адреса камеры недостаточно для ее просмотра. Чтобы получить полный доступ, потребуется другая дополнительная информация.
При бесплатном использовании ресурса доступно подключение лишь двух камер. Чтобы иметь большее количество камер, требуется перейти на платный тариф. Кроме того, на платном тарифе существует возможность записи и хранения в Интернете видеороликов, записанных по расписанию или при появлении в поле зрения объектива движущегося объекта съемки.
Благодаря подключению видеорегистратора к Интернету, можно просмотреть видео, полученное с охранных видеокамер, находясь на удаленном расстоянии от объекта.
Беспроводные видеоглазки имеют множество достоинств по сравнению с обычными дверными глазками, а также по сравнению с другими системами наблюдения. Узнать об их преимуществах можно тут.
Если имеется готовая система видеонаблюдения, управляемая с одного устройства, то зачастую в нем есть гнездо для подключения интернет-кабеля. Таким образом, можно получить доступ ко всей локальной сети. Но при использовании такого подключения следует устанавливать сложные логин и пароль для предотвращения несанкционированного доступа.
Иногда злоумышленники могут получить доступ к USB-камере, подключенной к компьютеру с выходом в Интернет. Для этого ПК заражается вирусом, представляющим собой программу для разрешения удаленного доступа.
Зачастую это случается при открытии на почте писем от неизвестных отправителей, имеющих какие-то вложения. При своей работе программа-вирус отправляет злоумышленникам необходимую для подключения информацию. Это позволяет использовать камеру без ведома ее хозяина.
Руководство по совместному использованию веб-камеры в Windows
Сначала необходимо создать аккаунт FlexiHub. Откройте страницу с регистрационной формой в вашем браузере, заполните ее и нажмите «Создать Аккаунт». После создания аккаунта, откройте FlexiHub и введите свой логин и пароль.
Вам, наверное, интересно, зачем создавать аккаунт, если вы просто хотите предоставить доступ к своей веб-камере? Все просто: вам нужен аккаунт для совместного использования устройств по сети, не LAN. Так, все устройства, к которым вы предоставляете доступ из вашего аккаунта, не будут доступны всем другим пользователям по локальной сети или Интернет.
Вернемся к вашей камере и программному обеспечению.
После того как вы войдете в систему с подключенной к ней веб-камерой и откроете FlexiHub, вы увидите свою веб-камеру (точнее, ее имя). Кликните "Подключиться" на другом компьютере с установленным FlexiHub.
Еще один способ предоставить доступ к USB через Wi-Fi и/или подключить USB-устройство к удаленному компьютеру по беспроводной сети - использовать USB Network Gate.
Windows 7/8/10, Server 2008 R2/2012/2016/2019, macOS 10.14-11.4, Linux: Ubuntu 18.04, 20.04, CentOS 8, Raspberry Pi: Debian Stretch, Debian Buster, RPM-based Linux, Android 5.0+
Мы используем FlexiHub для совместного использования нескольких веб-камер в наших прямых трансляциях. FlexiHub делает это возможным с практически нулевой задержкой. В лучшем качестве загрузка занимает 5 МБ / сек, но качество безупречное, а видео с камеры не задерживается и не разбегается. Раньше мы пробовали несколько альтернатив, но FlexiHub просто лучший в этом классе.
Администратор Broadcast Media
Как транслировать удаленную веб-камеру с помощью VLC Player
Удобнее всего настроить передачу потокового видео на Linux используя VLC player.
Шаг 1 - установка
Для установки VLC на Debian, Ubuntu или Linux Mint:
$ sudo apt-get install vlc
Чтобы установить VLC на Fedora, сначала включите репозиторий RPM Fusion free, а затем запустите:
$ sudo yum install vlc
Шаг 2 - Проверьте веб-камеру в VLC
Убедитесь, что ваша веб-камера обнаружена системой Linux и VLC.
Для этого вам нужно знать название веб-камеры. В приведенном ниже примере веб-камера называется
/dev/video0.
$ ls /dev/video*
/dev/video0
Затем вам необходимо проверить видео с вашей веб-камеры. Используйте следующую команду (не забудьте заменить "video0" на название вашего устройства).
$ vlc v4l2:///dev/video0
После того как VLC успешно обнаружит вашу веб-камеру, вы тоже сможете увидеть вашу трансляцию.
Шаг 3 - Настройте передачу потокового видео с веб-камеры в VLC
Успешно обнаружив свою веб-камеру в VLC, вы можете настроить потоковую передачу видео с веб-камеры.
В меню VLC выберите "Трансляция".
Проверьте видеоисточник, напр.: v4l2:///dev/video , и нажмите "Далее".
Выберите назначение, т.е. метод/аудиторию вашей трансляции с веб-камеры. В нашем примере мы выбираем HTTP из выпадающего списка и нажимаем "Добавить".
Затем укажите номер порта и путь потокового сервиса. Введите 8080 для номера порта, он не должен быть занят, и "/stream.wmv" - для пути. Для транскодирования выберите "Видео - WMV + WMA (ASF)" из выпадающего списка. Нажмите "Далее".
На следующем экране отобразится автоматически сгенерированная строка выходного потока. Запишите ее и нажмите кнопку "Начать трансляцию".
Убедитесь, что VLC работает правильно на TCP-порту 8080, выполните следующую команду, затем отыщите VLC.
$ sudo netstat -nap | grep 8080
Если вы тестируете канал с того же хоста, используйте вместо него адрес обратной связи 127.0.0.1.
Во многих случаях, когда имеется система видеонаблюдения или персональные веб камеры, возникает необходимость просмотра получаемого с них изображения в удаленном режиме.
Причин для этого может быть несколько. К примеру, владелец дома хочет иметь доступ к наблюдению за зданием или руководитель решил присмотреть за своими сотрудниками.
Содержание:
Для осуществления этой цели понадобятся как сами видеокамеры, так и дополнительное программное обеспечение. Если все соединить и настроить, то администратор сети сможет просматривать видеопоток в любом месте, в котором имеется подключение к Интернету.
Также стоит учитывать тот факт, что данный доступ может быть настроен без получения разрешения со стороны хозяина системы. Такое случается, если злоумышленник заражает компьютер специальной вирусной программой и получает доступ к веб-камере ничего не подозревающего абонента.
Воспроизведение на телефоне
Также видеотрансляцию можно просматривать на экране мобильного телефона на Android с помощью приложения IP Cam Viewer.
Недавно на Geektimes была опубликована статья про домашнее видеонаблюдение — «Домашнее видеонаблюдение». Автор её так и не смог настроить просмотр камер через web-интерфейс. Решил поделиться своим опытом в этом деле. Далее собственно статья с картинками о том, как это легко и быстро настроить у себя. Также вспомнил, что у меня были вопросы по ходу настройки, в связи с этим решил более подробно расписать весь процесс настройки. Внимание, много картинок.
Чтобы свою систему не ломать переустановкой, сделал всё на виртуалке, с самого начала.
— Компьютер с Win7 или выше;
— Софт – упомянутый в предыдущей статье Securos Lite (скачивается на сайте производителя) и модуль WebView. И если первое легко скачивает на сайте производителя, то вот ссылку на второе я уже и не помню как искал;
— Камера. Здесь, конечно, каждый сам должен выбирать исходя из качества изображения/цены/целей и т.д. Общие рекомендации: если на камере есть наклейка Onvif, скорее всего она заведется в любом софте. Если в описании камеры на сайте, в документации, либо на форуме написано, как завести её в VLC, то видео с такой камеры с вероятностью 99% так же сможете получить, по крайней мере в Секуросе есть механизм получения видеоизображения с любой камеры, которые показываются в VLC. Разница в HDReady и FullHD прилично влияет на архив, но если пару десятков гигов есть свободных, то лучше брать FullHD.
Настраиваем камеру
Заходим на веб-интерфейс камеры, задаем сетевые настройки (если у вас дома роутер), логин/пароль, проверяем, что она показывает в этом самом интерфейсе.
Ставим софт
Ничего сложного тут нет. Сперва запускаем первый инсталлятор. Несколько раз прощёлкиваем «Далее» и всё, программа установлена. В установке и удалении программ так же появился Postgres. Запускаем второй инсталлятор (вроде можно и потом его доставить), опять пару раз «Далее», видно, как ставится Java и сервер TomCat. Установку Томката также прощелкиваем.
Первый запуск
Замечу, что тех. поддержка заявила, что это уже поправлено в готовящейся к выпуску следующей версии 8.7. Там вручную ничего делать не надо будет, даже если включён UAC.
После запуска появляется Мастер первоначальной настройки:
В принципе, тоже его быстро прощёлкиваем. Самое главное там – это выбрать диск куда будет архив писаться, главное на SSD не указать его. Там же есть страница, где можно вручную добавить камеры, но в ней нет автопоиска, да и потом можно будет вызвать более удобный инструмент добавления камер. Так что пропустим его. Ещё одна особенность: можно сразу добавить удаленный клиент, например, свой рабочий комп. Про это я подробнее ниже напишу, сейчас это можно пропустить. В общем прощёлкиваем до конца, жмем Завершить, и появляется пустой (так как мы не добавляли камер) Монитор.
Здесь сразу сделаю отступление: как я понял, в Секуроса есть 2 встроенных средств работы с камерами. Они называются Монитор и МедиаКлиент. Как я понимаю, старый и новый. Старый функциональнее (кнопок там ненужных нам больше), второй красивее, удобнее, и с рабочего компьютера, почему-то в несколько раз меньше CPU есть (2% вместо 8%). В общем, рекомендую сразу заменить созданный по умолчанию Монитор на МедиаКлиент. Для этого вызовем дерево с объектами (правый клик по иконке в трее, показать панель, на ней нажимаем шестеренку).
В нем удаляем «Монитор», встаём на «Рабочий стол», нажимает создать, выбираем «Медиа Клиент».
Заводим камеру
На панели находим и нажимаем кнопку «Менеджер IP-устройств». Появляется окно этого менеджера. В нижней половине есть кнопка искать. Мой Beward он нашел сам. Единственное, я сразу вручную исправил модель с default на BDSeries. Если камера не нашлась, то можно вручную попытаться настроить, на скриншоте вот я выбрал ONVIF (половина камер сейчас его поддерживает, даже если на коробке с камерой нет такого слова, то в первую очередь рекомендую попробовать настроить как ONVIF). Нажимаем «Добавить», в верхней части водим логин/пароль, нажимаем «Применить», закрываем менеджер. Камера сразу показывается в медиаклиенте.
Включаем запись архива
Здесь сразу лучше проверить, что она пишет архив (поставить на запись в медиаклиенте, снять через несколько минут, зайти в архив). Если на кнопке «Запись» появился тревожный треугольник, то всё плохо, архив не пишется. По личному опыту знаю, что обычно такая проблема возникает, когда на диске мало места. Как в итоге оказалось, у меня проблема возникла по тому, что под архив я выделил диск всего на 20 гигов. А так как ставим мы всё-таки бесплатную версию коммерческого продукта, то видимо и настройки по умолчанию там для серьёзных систем. Поиск по инету, поиск настроек в реестре и даже небольшой разговор с тех. поддержкой дал найти нужные настройки. В 32-битной винде это ветка HKEY_LOCAL_MACHINE\SOFTWARE\ISS\Xpress\Niss400\Video (на 64-х битной системе: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ISS\Xpress\Niss400\Video). Я выставил параметры так: MinDelMB – 1700, FreeMB – 1350.
Далее для экономии места на диске (чтобы больше была история хранилась) лучше запись сразу отключить и подумать, как вообще будет удобнее ставить камеру на «охрану» (режим, когда архив пишется только при наличии движения на изображении). Я сперва настроил временную зону (под объектом SecurOS Lite) и две Макрокоманды, которые автоматически ставили камеру на охрану утром, и снимали с охраны вечером. Ниже пример настройки одной из макрокоманд.
Но в итоге, так как я ухожу/прихожу из дома в разное время, мне удобнее оказалось управлять записью вручную с работы, т.е. приехал на работу, поставил на «охрану», приехал домой – «снял с охраны».
Настройка Веб-Сервиса
Подошли к самому интересному. В дереве объектов создаём объект WebView Сервер, у него в настройках добавляем нашу камеру. Далее под ним создаём объект WebView Монитор. В его настройках выбираем нашу камеру (Просто нажать кнопку «Все»).
Последние шаги
Для авторизации через веб-интерфейс нельзя использовать аккаунт супер-пользователя Секуроса (написано из-за небезопасности передачи пароля). Поэтому чтобы работать дальше надо вручную создать пользователя. Опять открываем дерево объектов, выделяем объект SecurOS Lite, нажимаем Создать, выбираем в меню Отдел. Под ним тут же создаём пользователя. Название лучше сразу написать что-то адекватное, я, например, задал webview. Далее переходим в дереве на Права пользователей -> Права опытных пользователей, и в окне настройки в блоке пользователи выбираем нашего пользователя, и задаём ему пароль.
Переходим обратно в браузер, вводим webview/password, жмем Continue. Появляется страница выбора мониторов. У нас он один, выбираем его. Если браузер InternetExplorer, то предложится ActiveX поставиться. Лучше поставить, после его установки, резко снижается нагрузка на сеть (как я понимаю, гонится по сетке поток H.264). В общем сейчас можно зайти на этот web-интерфейс с любого браузера, (в том числе с мобильного) и смотреть видео, смотреть архив, который по детектору движения пишется. Чтобы ставить камеры на охрану/снимать с охраны я использовал выше упомянутые макросы. Единственный недостаток – если использовать мобильный трафик, то большой расход получится, в первом отпуске, помню, смотрел камеру только в отеле через WiFi. Кстати, этот сервер тоже умеет отдать сжатое видео (которое мало трафика потребляет, как через ActiveX в IE) по rtsp. Если кто по-продвинутей и знает, как в VLC добавлять rtsp ссылки, то всё будет работать, в том числе на смартфонах. Но это, конечно вариант только для просмотра живого видео, без архива, и без управления камерой.
Что-же получилось в итоге
Написано много, но в первый раз я запустил всё быстрее, когда ставил на реальную систему (у меня не возникло проблем с записью из-за виртуалки, да и других не было), помню осталось только приятное воспоминание, как быстро всё заработало.
И теперь опишу как это у меня сейчас работает. Мне для работы со всем этим гораздо удобнее оказался использовать клиент для виндоуз. Сделал я следующее:
— дома настроил доступ на работу через OpenVPN (на самом деле он у меня уже был). Для тех, у кого в компании нет такого, можно использовать VPN через TeamViewer. Также уверен, что можно легко и через интернет настроить, но там уже небольшие хаки нужны (либо статический ip, либо no-ip использовать ). Если будут проблемы обращайтесь в личку, постараюсь помочь;
— дома в Секуросе создал ещё один компьютер типа «Рабочее место оператора». Под ним создал Медиа Клиент. Пробовал и старый Монитор, но разница очень большая между ними. Медиа Клиент на порядок меньше грузит процессор, приятнее и удобнее;
— на работе поставил Секурос, в режиме «рабочее место оператора». Из того-же дистрибутива, только сейчас уже не прощёлкиваем быстро страницы, а находим страницу, где он спрашивает тип установки, в комбо-боксе выбираем, что это Рабочее место оператора;
— далее запускаем Секурос, вводим IP или имя (если это имя резолвится), нажимаем подсоединиться. Логин можно всё тот-же: webview. Возникает окно Медиа Клиента. Единственное, что плохо, настроить его можно только с домашнего компьютера. Т.е. я его сначала на весь экран сделал, было неудобно. Пришлось подключаться на домашний комп по TeamViewer’у и настраивать, где и как должен Медиа Клиент показываться.
Алгоритм работы у меня сейчас такой. Прихожу на работу, в Медиа Клиенте нажимаю кнопку «поставить на охрану», перед уходом с работы (или уже дома) нажимаю снять с охраны. Быстренько на 4x/8x/16x просматриваю, не было ли чего подозрительного.
Как итог
Настроить веб-интерфейс можно, это не сложно, если пол вечера не жалко, то всё получится. Если что-то не получится самому, то тех. поддержка помогает, что на самом деле удивительно для бесплатного продукта, видимо забота о бренде. Из приятного уже сейчас множество дополнительных плюшек (в том числе и нотификации, слежение за работоспособностью, работа со звуком (надо к камере подключить микрофон, и тогда при выборе камеры в Медиа Клиенте с неё ещё и звук идёт) и множество того, что я не использую, ибо даже не представляю зачем они мне нужны (это как с Фотошопом – использую только 5-10 процентов его функционала). Радует, что тех. поддержка обещает появления множества новых плюшек, которые могут лично мне понадобиться: всё-таки нативный клиент под Андроид (так как иногда всё-таки хочется поглядеть на телефоне, сейчас через мобильный браузер не самый удобный вариант), переработанный веб-интерфейс, управление потоком, который в сеть отдавать (как я понял, с камеры будут браться 2 картинки, одна будет писаться в архив, а второй с меньшим разрешением транслироваться через веб-сервер (это как я понял уже и сейчас можно сделать и с Монитором и с Медиа Клиентом).
Updated: Разобрался в новой версией софта с таким понятием как «мульти-поточность».
Мульти-поточность — это возможность забирать одновременно 2 и более картинки с камеры, разного разрешения и/или уровня сжатия, и потом возможность управлять что с этими потоками делать. Т.е. для записи в архив можно сохранять картинку в хорошем качестве (например, FullHD), а через сеть можно посылать видео, скажем среднего разрешения.
Пришлось камеру понастраивать и софт немного. Зато теперь ещё быстрее стало видео, на 3g — без тормозов и лагов. Если кому интересно, и не получилось настроить самому, пишите в личку, постараюсь всё подробно объяснить в скриншотах, какие настройки надо делать на самой камере через веб-интрерфейс, и какие в софте.
Решение задачи онлайн-вещания с IP-камеры, вообще говоря, не требует применения WebRTC. Камера сама является сервером, обладает IP-адресом и может быть подключена напрямую к маршрутизатору с целью раздачи видео-контента. Так зачем же применять технологию WebRTC?
На это есть как минимум две причины:
1. По мере увеличения числа зрителей Ethernet-трансляции все больше будет ощущаться сперва нехватка толщины канала, а затем и ресурсов самой камеры.
Или же это будет RTSP/RTP и H.264, в этом случае в браузере должен быть установлен плагин видеоплеера, такой как VLC или QuickTime. Такой плагин будет забирать и проигрывать видео, как и сам плеер. Но нам то ведь нужен настоящий браузерный стриминг без установки дополнительных костылей/плагинов.
Для начала поснифаем IP камеру чтобы узнать что именно отправляет этот девайс в сторону браузера. В качестве подопытного будет камера D-Link DCS 7010L:
Подробнее об установке и настройке камеры вы сможете прочесть ниже, а здесь мы просто посмотрим что она использует для видео стриминга. При попадании в админку камеры через web-интерфейс наблюдаем примерно такую картинку (пардоньте за пейзаж):
Здесь видим последовательность TCP фрагментов длиной 1514 байт
Если заглянуть в HTML страницы админки камеры, увидим вот такой интересный код:
RTSP/RTP — это как раз то что нужно для правильного воспроизведения видео. Но будет ли это работать в браузере? — Нет. А вот если установить плагин QuickTime — все будет работать. Но мы-то делаем чисто-браузерный стриминг.
Здесь можно упомянуть еще Flash Player, который может через подходящий сервер типа Wowza получать RTMP поток, сконвертированный из RTSP, RTP, H.264. Но Flash Player, как известно тоже браузерный плагин, хотя несравненно более популярный чем VLC или QuickTime.
В данном случае, мы протестируем тот же RTSP/RTP re-streaming, но в качестве проигрывающего устройства будет использоваться WebRTC-совместимый браузер без всяких дополнительных браузерных плагинов и других костылей. Мы настроим сервер-ретранслятор, который заберет поток у IP-камеры и отдаст его в Интернет произвольному числу пользователей, использующих браузеры с поддержкой WebRTC.
Подключение IP-камеры
Как уже упоминалось выше, для тестирования была выбрана простая IP-камера D-Link DCS-7010L. Ключевым критерием выбора здесь была поддержка устройством протокола RTSP, поскольку именно по нему наш сервер будет забирать видеопоток с камеры.
Камеру подключаем к маршрутизатору идущим в комплекте патч-кордом. После включения питания и подключения к маршрутизатору, камера взяла IP-адрес по DHCP, в нашем случае это был 192.168.1.34 (Если зайти в настройки маршрутизатора, вы увидите, что подключено устройство DCS 7010L — это она и есть). Самое время протестировать камеру.
Открываем указанный IP-адрес в браузере 192.168.1.34, чтобы попасть в веб-интерфейс администратора камеры. По умолчанию пароль отсутствует.
Как видно, в админской панели видео с камеры транслируется исправно. При этом заметны периодические подлагивания. Это мы и будем фиксить с помощью WebRTC.
Настройка камеры
Сначала в настройках камеры мы отключаем аутентификацию – в рамках тестирования будем отдавать поток всем, кто попросит. Для этого в веб-интерфейсе камеры заходим в настройки Setup – Network и выставляем значение опции Authentication в Disable.
Там же проверяем значение порта протокола RTSP, по умолчанию он равен 554. Формат отдаваемого видео определяется используемым профилем. В камере их можно задать до трех штук, мы воспользуемся первым, live1.sdp – по умолчанию он настроен на использование H.264 для видео и G.711 для аудио. Поменять настройки при необходимости можно в разделе Setup – Audio and Video.
Теперь можно проверить работу камеры через RTSP. Открываем VLC Player (можно любой другой, поддерживающий RTSP — QuickTime, Windows Media Player, RealPlayer и др.) и в диалоге Open URL задаем RTSP адрес камеры: rtsp://192.168.1.34/live1.sdp
Что ж, все работает, как и должно. Камера исправно воспроизводит видеопоток в плеере через протокол RTSP.
Кстати, поток воспроизводится достаточно плавно и без артефактов. Ждем того же и от WebRTC.
Установка сервера
Забиваем соответствующие настройки в маршрутизатор…
…и проверяем внешний IP адрес и RTSP порт с помощью telnet:
telnet 178.51.142.223 554
Убедившись, что по данному порту идет ответ, приступаем к установке WebRTC сервера.
За хостинг будет отвечать виртуальный сервер на Centos 64 bit на Amazon EC2.
Чтобы не иметь проблем с производительностью, выбрали m3.medium инстанс с одним VCPU:
Да, да, есть еще Linode и DigitalOcean, но в данном случае захотелось поамазонить.
Забегая вперед, напишу что в панели управления Amazon EC2 нужно добавить несколько правил(пробросить порты), без которых пример не будет работать. Это порты для WebRTC(SRTP, RTCP, ICE) трафика и порты для RTSP/RTP трафика. Если будете пробовать, в правилах Amazon должно быть нечто похожее для входящего трафика:
С DigitalOcean кстати все будет проще, достаточно открыть эти порты на firewall или заглушить последний. По последнему опыту эксплуатации инстансов DO, там пока еще выдают статический IP адрес и не заморачваются с NAT-ами, а значит и проброс портов, как в случае Амазона, не нужен.
В качестве серверного ПО, ретранслирующего RTSP/RTP поток в WebRTC будем использовать WebRTC Media & Broadcasting Server от Flashphoner. Стриминг сервер очень похож на Wowza, которая умеет отдавать RTSP/RTP поток на Flash. Единственное отличие в том, что этот поток будет отдан на WebRTC, а не на Flash. Т.е. между браузером и сервером пройдет честный DTLS, установится SRTP сессия и поток, закодированный в VP8 пойдет зрителю.
Для установки нам потребуется SSH-доступ.
По идее, вместо пункта 10 правильно было бы задать все необходимые порты и правила firewall, но для целей тестирования решили просто отключить брэндмауэр.
Настройка сервера
Напомним, что структура нашей WebRTC трансляции такова:
Установку основных элементов этой диаграммы мы уже произвели, осталось наладить «стрелочки» взаимодействий.
Связь между браузером и WebRTC сервером обеспечивает web-клиент, который есть на гитхабе:. Набор JS, CSS и HTML файлов просто закидывается в /var/www/html на этапе установки (см. выше под спойлером пункт 9).
Взаимодействие браузера и сервера настраивается в конфигурационном XML-файле flashphoner.xml. Туда нужно вписать IP-адрес сервера, чтобы web-клиент смог подключаться к WebRTC серверу по HTML5 Websockets (пункт 9 выше).
Настройка сервера на этом заканчивается, можно проверить его работу:
А так поддержка DDNS выглядит в самом роутере:
Теперь можно приступить к тестированию и оценить результаты.
Тестирование
После открытия ссылки в браузере идет подключение к WebRTC серверу, который отсылает запрос к IP-камере на получение видеопотока. Весь процесс занимает несколько секунд.
В это время устанавливается соединение браузера с сервером по вебсокетам, далее сервер запрашивает IP камеру по RTSP, получает поток H.264 по RTP и транскодирует его в VP8 / SRTP — который в итоге воспроизводит WebRTC- браузер.
Далее после небольшого ожидания, отображается уже знакомая картинка.
В нижней части видео отображается URL видеопотока, который можно скопировать и открыть для просмотра из другого браузера или таба.
Убеждаемся что это действительно WebRTC.
А вот что показывает chrome://webrtc-internals
По показаниям графиков, мы имеем битрейт с IP камеры 1Mbps. Исходящий трафик тоже есть, скорее всего это RTCP и ICE пакеты. RTT до Amazon сервера составляет около 300 миллисекунд.
Теперь заглянем в Wireshark, там отчетливо видно UDP трафик с IP адреса сервера. На картинке ниже пакеты по 1468 байт. Это и есть WebRTC. Точнее SRTP пакеты несущие VP8 видео фреймы, которые мы можем наблюдать на экране браузера. Кроме это проскакивают STUN запросы(самый нижний пакет на картинке) — это WebRTC ICE заботливо проверяет соединение.
Следующий тест — подключение других зрителей. Удалось открыть 10 окон Chrome, и каждое из них показывало картинку. При этом сам Chrome начал немного тупить. При открытии 11-го окна на другом компьютере, воспроизведение оставалось плавным.
Про WebRTC на мобильных устройствах
Как известно, WebRTC поддерживают Chrome и Firefox браузеры на платформе Android.
Проверим, будет ли там отображаться наша трансляция:
На картинке HTC телефон, в Firefox браузере отображается видео с камеры. Отличий в плавности воспроизведения от десктопа нет.
Заключение
В результате нам удалось запустить WebRTC онлайн-трансляцию с IP-камеры на несколько браузеров с минимальными усилиями. Не потребовалось ни плясок с бубном, ни rocket-science – только базовые знания Linux и SSH-консоли.
Качество трансляции было на приемлемом уровне, а задержка воспроизведения была незаметна на глаз.
Подводя итог, можно сказать что браузерные WebRTC трансляции имеют право на существование, т.к. в нашем случае WebRTC это уже не костыль или плагин, а реальная платформа для воспроизведения видео в браузере.
Почему же мы не видим повсеместного внедрения WebRTC?
Главный тормоз, пожалуй, недостаток кодеков. WebRTC сообществу и вендорам следовало бы сделать усилие и ввести в WebRTC кодек H.264. Против VP8 сказать нечего, но зачем отказываться от миллионов совместимых девайсов и ПО, которые работают с H.264? Патенты, такие патенты…
На втором месте, не полная поддержка в браузерах. C IE и Safari, например вопрос остается открытым и там придется переходить на другой тип стриминга или использовать плагин типа webrtc4all.
Так что в будущем, надеемся увидеть более интересные решения, в которых не нужен будет транскодинг и конвертация потоков и большинство браузеров смогут отыгривать потоки с различных устройств уже напрямую.
Настройка удаленного доступа
Для того чтобы удаленный доступ работал и был стабильным, необходимо правильно внести настройки в программу, а также настроить доступ к Интернету. В случае домашнего использования, роутер может стать проблемой при соединении с веб-камерой.
Чтобы этого не случилось, в нем следует открыть доступ к тем портам, на которых подключены веб камеры.
Для настройки хранения готовых файлов и возможности работы с ними необходимо указать период времени для их записи и папку для архивации. Некоторые программы позволяют использовать для хранения облачные жесткие диски, размещенные на серверах в Интернете. За такое удобство, как правило, нужно платить.
Подводя итог, можно дать следующие рекомендации общего характера.
Если необходимо создать систему удаленного доступа, то в первую очередь нужно выяснить количество веб камер. От этого будет зависеть выбор программы. Далее нужно выяснить, какой режим наблюдения более предпочтителен. Если требуется пересмотр нескольких промежутков записи на протяжении дня, то подойдут программы с автоматической записью происходящего.
Для контроля объектов, в которых используются камеры с PTZ-управлением, потребуется специализированное программное обеспечение. Оно позволит качественно управлять камерой.
Если наблюдение будет происходить в частном доме, то для настройки лучше использовать автоматизированные программы управления. Например, приложение ContaCam способно самостоятельно сканировать адреса веб-камер, избавляя тем самым пользователя от лишних действий по настройке доступа.
Веб-камеру компьютера можно использовать как камеру видеонаблюдения для вещания видео по локальной сети, а если у вас выделенный IP, — настроить перенаправление портов в роутере и транслировать видео через Интернет.
Для трансляции картинки с веб-камеры подключенной к компьютеру воспользуемся бесплатным плеером VLC Media Player. Сначала произведем настройку программы.
Что нужно для организации удаленного доступа
В зависимости от нужд того, кто хочет настроить удаленный доступ, понадобится следующий набор программ и устройств:
- Установленная камера. Она предназначена для захвата изображения и передачи его в нужном направлении.
- Пакет программного обеспечения для управление веб-камерой.
- Вспомогательное оборудование, состав и набор которого зависит от вида локальной сети.
Помимо этих программ и устройств, потребуется специалист, который должен уметь производить настройку и вносить в нее необходимые изменения.
Такая ситуация может возникнуть, когда камеры соединяются через Wi-Fi и в локальной сети имеются ретрансляторы сигнала.
Настройка управления
Чтобы настроить удаленное управление и наблюдение web-камерой первого типа, потребуется узнать IP компьютера, к которому она подключена. После этого для установления удаленного доступа потребуется установить специальную программу на управляющее устройство.
Для этой цели разработано большое количество софта. Выбирать его следует в зависимости от задач и необходимых дополнительных функций. Одними из самых популярных программ являются: DigiCams, WebCam Spy, webcamXP PRO и другие.
Все они представляют собой средства, обеспечивающие просмотр на компьютере изображения и запись с веб камер удаленно. Также существуют программы для удаленного подключения на смартфоне. К примеру, это может быть GPPRemoteViewer. Она проста в использовании и не требует сложных настроек.
Подключение видеорегистратора к компьютеру производится посредством локальной сети. Поэтому на компьютере должна быть установлена сетевая карта.
При покупке хорошего видеодомофона с записью, прежде всего, следует определиться с тем, что человек от него ожидает. О том, как выбрать необходимое устройство читайте в этой статье.
Для удаленного управления IP-камерами, соединенными в локальную сеть, потребуется специальное программное обеспечение. Как правило, его нет в бесплатном доступе, а для обеспечения его работы необходим специалист по настройке.
В основном такие системы используются для видеоконтроля в частных домах, офисах, квартирах и в других местах. Для экономии ресурсов используется периодический режим работы, при котором удаленная вебкамера автоматически включается при появлении движущегося объекта съемки.
Как транслировать видео с удаленной веб-камеры
Для передачи потокового видео вы можете использовать различные веб-платформы, YouTube или всевозможные программные решения.
Примечание: здесь мы будем говорить о передаче потокового видео посредством YouTube. Если вас интересует передача потокового видео с помощью программного обеспечения - воспользуйтесь ниже приведенным руководством для macOS или приложением Yawcam для Windows.
Для передачи потокового видео на Windows выполните следующие действия:
Типы веб-камер
Поскольку разные пользователи используют камеры от различных производителей, то соответственные настройки будут отличаться. Большое значение имеет тип также камеры.
В зависимости от назначения, различают несколько видов камер.
USB-веб-камера. Она используется для самых базовых потребностей. Это могут быть видеозвонки по Интернету и другие мультимедийные использования. Иногда такую камеру приобретают с целью сделать из нее наблюдательное устройство в доме за детьми, пользователями компьютера и для других несложных применений.
IP-камера с беспроводным способом передачи сигнала. Удаленное подключение к web-камере такого типа осуществляется посредством Wi-Fi. Она относится уже к профессиональным средствам удаленного наблюдения.
Такие камеры обычно имеют защиту от влаги и могут работать на открытом воздухе. Кроме того, они имеют свой персональный IP-адрес (отсюда и их название), поэтому могут самостоятельно передавать данные напрямую в Интернет.
Камеры, имеющие PTZ-управление. По сути, это те же IP-камеры, но у них дополнительно имеется возможность контролировать угол наклона и поворот. При желании получаемое с них изображение легко масштабируется. Если задать определенный алгоритм, то можно с помощью одной такой камеры следить за большой территорией.
Имеются также аналоговые камеры, которые используются для видеонаблюдения, но они работают с другими устройствами. Это автономные аппараты, снабженные собственными кодировщиками в цифровой формат и жесткими дисками для хранения отснятого видео.
Настройка плеера
Запускаем программу и выбираем опцию меню "Медиа > Передавать…".
Переходим на вкладку "Устройство захвата". В выпадающем списке "Режим захвата" оставляем значение "Direct Show", хотя если выбрать значение "Экран", то можно транслировать картинку с дисплея вашего компьютера. В списке "Название видеоустройства" выбираем подключенную веб-камеру. Так как у меня камера встроена в ноутбук, она называется: "Integrated Webcam". В списке "Название аудиоустройства" выбираем микрофон.
В разделе "Параметры" нажимаем кнопку "Другие", в открывшимся диалоге ставим галочку "Настройки устройства" и нажимаем "ОК".
Нажимаем кнопку "Поток". Откроется мастер настройки вещания. На первом шаге просто жмем "Next >".
На втором шаге, в выпадающем списке "Новое назначение" выбираем "HTTP" и нажимаем на кнопку "Добавить".
Откроется диалог для настройки порта и URI оставляем все по умолчанию и переходим к следующему шагу нажав "Next >".
В выпадающем списке "Профиль" выбираем "Video – WMV + WMA (ASF)", хотя можно выбрать и другой кодек. Нажимаем на кнопку настроек "Отвертка с гаечным ключом".
На вкладке "Видеокодек" в параметрах кодирования задаем битрейт. Чем меньше у вас скорость соединения тем меньше ставьте битрейт.
На вкладке аудиокодек также задаем битрейт звука и выставляем количество каналов. У меня моно микрофон, поэтому я выбрал 1 канал.
Нажимаем на кнопку "Сохранить" и преходим к следующему шагу нажав "Next >" На последнем шаге нажимаем кнопочку "Stream".
Запустятся детальные настройки видео и аудио. В первом окне просто нажимаем "ОК".
Во втором окне задаем разрешение транслируемой картинки и нажимаем "Применить" и "ОК".
В третьем окне просто нажимаем "ОК". Начнется трансляция видео в сеть.
Чтобы открыть его на другом компьютере, находящемся в общей сети с вещающим компьютером, вам нужно знать IP адрес вещающего компьютера. Для этого на компьютере с веб-камерой нажмите сочетание клавиш "Windows+R" или кликните по кнопке "Пуск" в Windows 7, затем в поиске наберите "Выполнить" и кликните по программе "Выполнить". Наберите "cmd" и нажмите Enter. Запустится оболочка командной строки, наберите команду "ipconfig" и нажмите Enter. В строке "IPv4-адрес" будет IP адрес вещающего компьютера!
Руководство по совместному использованию веб-камеры в Windows
Сначала необходимо создать аккаунт FlexiHub. Откройте страницу с регистрационной формой в вашем браузере, заполните ее и нажмите «Создать Аккаунт». После создания аккаунта, откройте FlexiHub и введите свой логин и пароль.
Вам, наверное, интересно, зачем создавать аккаунт, если вы просто хотите предоставить доступ к своей веб-камере? Все просто: вам нужен аккаунт для совместного использования устройств по сети, не LAN. Так, все устройства, к которым вы предоставляете доступ из вашего аккаунта, не будут доступны всем другим пользователям по локальной сети или Интернет.
Вернемся к вашей камере и программному обеспечению.
После того как вы войдете в систему с подключенной к ней веб-камерой и откроете FlexiHub, вы увидите свою веб-камеру (точнее, ее имя). Кликните "Подключиться" на другом компьютере с установленным FlexiHub.
Еще один способ предоставить доступ к USB через Wi-Fi и/или подключить USB-устройство к удаленному компьютеру по беспроводной сети - использовать USB Network Gate.
Windows 7/8/10, Server 2008 R2/2012/2016/2019, macOS 10.14-11.4, Linux: Ubuntu 18.04, 20.04, CentOS 8, Raspberry Pi: Debian Stretch, Debian Buster, RPM-based Linux, Android 5.0+
Мы используем FlexiHub для совместного использования нескольких веб-камер в наших прямых трансляциях. FlexiHub делает это возможным с практически нулевой задержкой. В лучшем качестве загрузка занимает 5 МБ / сек, но качество безупречное, а видео с камеры не задерживается и не разбегается. Раньше мы пробовали несколько альтернатив, но FlexiHub просто лучший в этом классе.
Администратор Broadcast Media
Воспроизведение на другом компьютере
Теперь открываем на другом компьютере встроенный в систему Windows Media Player, и нажимаем "Файл > Открыть URL-адрес", или нажимаем клавиши "Ctrl+U".
Вводим адрес в формате "http://IP-адрес:порт" и нажимаем кнопку "OK".
Ждем несколько секунд (может и больше минуты, зависит от скорости соединения и времени буферизации) и появится картинка с камеры другого компьютера.
Сеть веб-камеры в Linux (Ubuntu, Debian, Fedora и CentOS)
Получение доступа
Для совместного использования веб-камеры мы будем использовать USB Network Gate.
Шаг 1
Используйте следующие команды:
Для установки программного обеспечения на ваш компьютер:
dpkg -i [package]
Чтобы установить все зависимости автоматически:
dpkg -i [package]
sudo apt-get update
apt-get install -f
dpkg -i [package]
Для установки или обновления пакета rpm:
yum install [package]
Шаг 2
Откройте приложение и сделайте следующее:
Все, теперь у другого компьютера есть полный доступ к веб-камере, словно она физически к нему подключена.
Читайте также: