USB или Wi-Fi для веб-камеры из телефона
Все гиды на эту тему говорят одно и то же: USB быстрее, Wi-Fi удобнее. Это правда, и пользы от неё немного, потому что она не говорит, насколько быстрее, почему и когда разница вообще имеет значение.
Вот откуда на самом деле берётся задержка в схеме «телефон как веб-камера», с теми частями, которые мы измерили в TapCam, и как выбрать между двумя вариантами.
Где на самом деле сидит задержка
Между сенсором телефона и картинкой на вашем ПК кадр проходит четыре стадии.
- Захват и кодирование на телефоне. Камера выдаёт кадр, а телефон сжимает его в H.264. На обеих платформах это делает аппаратура, и делает быстро.
- Линия. Сжатый кадр уходит на ПК, по Wi-Fi или по кабелю.
- Буферизация. ПК может ненадолго придержать кадр перед показом, чтобы сгладить неравномерность прихода.
- Декодирование и вывод. ПК распаковывает кадр и отдаёт его Windows как кадр камеры.
Интересно то, какие из них вообще чего-то стоят. В TapCam четвёртая стадия не проблема: декодирование кадра 720p занимает на ПК около 4 миллисекунд, то есть запас примерно в 250 кадров в секунду против потока в 30 кадров в секунду. Декодирование и близко не узкое место, и никакой более быстрый ПК не заставит картинку прийти раньше.
Разница между кабелем и Wi-Fi живёт на второй и третьей стадиях.
Почему Wi-Fi нужен буфер и чего это стоит
Wi-Fi не доставляет кадры равномерно. Большинство он доставляет быстро, а часть с опозданием, потому что делит эфир со всем, что есть в радиусе. Видеокодировщики нарочно делают это хуже: время от времени они отправляют ключевой кадр, который в несколько раз больше обычного и идёт соответственно дольше.
Показывайте каждый кадр в момент его прихода, и получится не плавность, а дёрганье: пачка кадров приходит рано и слипается, потом один опаздывает, и картинка на мгновение замирает. У TapCam была ровно эта проблема, в виде периодического рывка примерно каждые десять секунд, и причиной были всплески ключевых кадров.
Лекарством служит буфер джиттера: придержать каждый кадр ненадолго, а затем выпускать кадры с ровной скоростью. TapCam держит один кадр, а это при 30 кадрах в секунду около 33 миллисекунд. Такова цена плавного движения по Wi-Fi, и платить её стоит, потому что рывок заметен куда сильнее, чем тридцатая доля секунды задержки.
По кабелю TapCam эту задержку пропускает целиком. У кабеля нет той неравномерности прихода, ради которой буфер и существует, поэтому сглаживать нечего. Отсюда и берётся разница примерно в 33 миллисекунды: не оттого что кабель загадочным образом быстрее, а из-за буфера, который нужен Wi-Fi и не нужен USB.

Так важны ли 33 миллисекунды?
Честно говоря, для большинства звонков нет. Триста миллисекунд были бы заметной задержкой в разговоре. Тридцать три нет, и собственный сетевой путь вашего видеоприложения добавит больше по дороге к остальным участникам.
Значение это имеет в трёх ситуациях.
- Запись или стрим, когда вы сводите видео с отдельно записанным звуком. Именно накопленная задержка уводит губы от речи.
- Всё, где вы смотрите на себя на экране во время движения, например когда что-то показываете руками. Видеть собственное движение с опозданием дезориентирует не так, как опоздание чужого.
- Когда вы и так на грани, в загруженной сети, где буфер делает настоящую работу.
Если ничего из этого к вам не относится, выбирайте по другим критериям ниже, а не по задержке.
Остальные различия, которые часто важнее
Зарядка. Её недооценивают. Работа веб-камерой для телефона тяжёлая: камера, видеокодировщик и радиомодуль работают одновременно, и телефон способен терять заряд на удивление быстро. Кабель держит его заряженным. По Wi-Fi долгая встреча вполне может кончиться телефоном, которому всё равно нужна зарядка.
Надёжность в сети, которой вы не управляете. Гостевой Wi-Fi, отели, офисы и кампусы очень часто изолируют клиентов друг от друга, а это не даёт работать ни одному приложению «телефон как веб-камера» в такой сети. Кабеля всё это не касается, потому что в цепочке нет сети.
Размещение. Вот настоящее преимущество Wi-Fi, и оно большое. На кабеле телефон живёт в метре-двух от ПК. По Wi-Fi он может стоять на штативе через комнату, цепляться к верхней кромке монитора, смотреть вниз на верстак или быть направленным на доску. Если кадру нужен телефон там, куда кабель не дотянется, вопрос решён.
Провода на столе. Мелочь, но вполне реальная для стола, на который вы смотрите каждый день.
Что нужно кабелю на каждой платформе
Кабель здесь не просто провод. Он несёт сетевое соединение, поэтому говорить по нему должны уметь оба конца.
На iPhone Windows нужна Apple Mobile Device Service, фоновая служба, которую ставит iTunes. Установите iTunes или приложение Apple Devices, откройте его один раз и проверьте в services.msc, что у службы стоит автоматический запуск. Без неё кабель заряжает телефон, и больше ничего не происходит.
На Android дополнительного софта на ПК не нужно, но телефон может попросить подтвердить подключение в первый раз.
На обоих используйте кабель для передачи данных. Немалая доля кабелей, которые продают для зарядки, передаёт только питание, и это самая частая причина, по которой схема с USB не работает. Если телефон заряжается, а ПК его так и не видит, подозревайте кабель раньше всего остального.
Как выбрать
Берите кабель, когда телефон может стоять рядом с компьютером, и особенно когда вы записываете, ведёте эфир, находитесь в сети, которой не управляете, или сидите долгую сессию, где важен заряд.
Берите Wi-Fi, когда кадру нужен телефон в другом месте комнаты. Это настоящее творческое преимущество, а не компромисс, и 33 миллисекунды за него небольшая цена.
Если вы не уверены, начните с Wi-Fi. Он быстрее настраивается, его хватает почти на любой звонок, а перейти потом на кабель можно за пару секунд.
Частые вопросы
Насколько USB реально быстрее?+
В TapCam примерно на 33 миллисекунды, и причина конкретная: по Wi-Fi один кадр держится в буфере джиттера, чтобы сгладить неравномерный приход, а по кабелю эта задержка пропускается, потому что сглаживать нечего. Дело не в том, что кабель загадочным образом быстрее.
Хватает ли мощности ПК на декодирование видео?+
С запасом. Декодирование кадра 720p занимает около 4 миллисекунд, то есть запас примерно в 250 кадров в секунду против потока в 30 кадров в секунду. Задержка сидит не в декодировании.
Важны ли 33 миллисекунды?+
Для обычного звонка нет. Они важны при записи и стриме, когда вы смотрите на своё движение на экране, что-то показывая, и в загруженной сети, где буфер делает настоящую работу.
Почему мой USB-кабель не работает?+
Чаще всего потому, что это кабель только для зарядки, а не для передачи данных. На iPhone Windows дополнительно нужна Apple Mobile Device Service, которую ставит iTunes или приложение Apple Devices.
Когда Wi-Fi предпочтительнее?+
Всякий раз, когда кадру нужен телефон там, куда кабель не дотянется: на штативе через комнату, на прищепке на мониторе, направленным вниз на верстак. Это настоящее творческое преимущество, и небольшая добавка задержки за него честная цена.



