Как превратить старый Android в четкую веб-камеру для Windows без рекламы и водяных знаков

16 авг 2026

Репозиторий давно не обновлялся

Последнее обновление было 7 месяцев назад.

429
52
5
7 месяцев

Купить нормальную внешнюю веб-камеру сегодня — сомнительное удовольствие. Бюджетные модели выдают мыльную картинку в 720p с ужасным динамическим диапазоном, а нормальные устройства вроде решений от Logitech стоят неразумных денег. При этом у большинства из нас в ящике стола пылится старый смартфон, оптика и матрица которого в разы превосходят любую офисную вебку.

Обычно попытка завести телефон как веб-камеру упирается в проприетарный софт вроде DroidCam или Iriun. В бесплатных версиях там либо режут разрешение, либо лепят водяные знаки прямо поверх видео, либо постоянно крутят баннеры. Недавно я наткнулся на открытый проект VCamdroid, создатели которого решили эту проблему прямо и без лишней коммерческой мишуры.

VCamdroid Demo

Что под капотом

Проект состоит из двух частей: Android-приложения на Kotlin и клиентской части для Windows на C++. Принцип работы достаточно элегантный.

Телефон захватывает поток через Camera2 API, на лету прогоняет кадры через шейдеры OpenGL (там происходят поворот, зеркалирование, коррекция цвета и экспозиции) и скармливает результат аппаратному энкодеру MediaCodec в H.264 или H.265. За упаковку видеопотока в RTP отвечает библиотека RootEncoder, после чего телефон поднимает RTSP-сервер.

Реклама

Pipeline

На стороне Windows клиент цепляется к потоку через FFmpeg, распаковывает кадры и отправляет их в виртуальное устройство DirectShow. Для этого используется библиотека Softcam, которая регистрирует драйвер softcam.dll. Любая программа на ПК — будь то OBS, Zoom, Telegram или Discord — видит смартфон как обычную физическую USB-камеру.

Связь по проводу и воздуху

Стримить видео можно двумя способами:

  1. По Wi-Fi. Компьютер и телефон должны находиться в одной подсети. В десктопном клиенте открывается вкладка Connect с QR-кодом, вы наводите камеру телефона, подтверждаете подключение, и трансляция запускается.
  2. По USB через ADB. Это основной и самый надежный сценарий. По кабелю задержка минимальна, а сигнал не страдает от забитого соседскими роутерами диапазона 2.4 ГГц.

Network

Интересный инженерный нюанс: утилита ADB умеет пробрасывать порты только по протоколу TCP. По умолчанию RTSP часто гоняет RTP-пакеты через UDP, но здесь поток туннелируется строго через TCP interleaved mode. В итоге мы получаем стабильный канал прямо через localhost без потерь пакетов.

Чем проект интересен на практике

В отличие от громоздких решений, VCamdroid настраивается быстро и не требует аккаунтов.

Вот что умеет связка:

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

Картинка получается чистой, с честными 1080p и 60 кадрами в секунду, если возможности сенсора вашего телефона это поддерживают.

Быстрый запуск

Для работы на ПК потребуется Windows 10 или 11, а на телефоне — Android версии 7.0 или новее.

Сначала настраиваем Windows:

  1. Скачиваем архив со страницы Releases репозитория.
  2. Распаковываем и запускаем install.bat от имени администратора. Этот скрипт регистрирует DirectShow-фильтр в системе.
  3. В окне брандмауэра Windows разрешаем приложению доступ как для частных, так и для публичных сетей.

Дальше ставим клиент на телефон:

  1. Включаем режим разработчика на Android (семь раз тапаем по номеру сборки в настройках телефона) и активируем переключатель USB Debugging.
  2. Подключаем телефон к компьютеру кабелем и запускаем скрипт install_apk.bat. Он автоматически зальет APK-файл на устройство через ADB.

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

Сборка из исходников

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

Для Android-части нужен свежий Android Studio. Вся логика захвата и стриминга собрана в каталоге android/.

Для Windows-клиента понадобятся Visual Studio и менеджер пакетов vcpkg. Зависимости подтягиваются одной командой:

vcpkg install wxwidgets:x64-windows ffmpeg:x64-windows
vcpkg integrate install

Затем собираем библиотеку softcam, открываем windows/VCamdroid.sln, выбираем конфигурацию Release x64 и компилируем проект.

Ограничения и шероховатости

У проекта около 400 звезд на GitHub, и код местами еще свежий. Если у вас редкая или специфическая прошивка Android, MediaCodec может вести себя нестабильно.

Иногда брандмауэр Windows молча блокирует RTSP-трафик при работе по Wi-Fi. В этом случае приходится лезть в настройки защитника руками или проверять пинги через adb shell ping. Также важно помнить, что для работы DirectShow-фильтра на ПК должны стоять свежие библиотеки Visual C++ Redistributable, иначе приложение просто вылетит без внятной ошибки.

VCamdroid отлично подойдет тем, кому надоело качество встроенных веб-камер на ноутбуках или кто не хочет тратить деньги на отдельную оптику для редких созвонов. Проект полностью бесплатный, с открытым кодом под лицензией MIT, без ограничений по времени работы и водяных знаков. Если у вас на полке скучает старый смартфон с приличной камерой, это отличный способ вернуть его в строй.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.