камера uvc что это
Функция UVC в смартфоне: что это такое, как проверить
24.04.2020 2,864 Просмотры
Современные гаджеты обладают достаточно широким функционалом, который не только упрощает их эксплуатацию, но и приносит много пользы. В качестве примера можно назвать функцию UVC на смартфоне. Чаще всего она используется как расширение для Video Grabber или Веб-камеры.
Что это такое
Функция UVC Receiver служит для того, чтобы конвертировать аналоговое видео с любых устройств, подключенных к смартфону, и выводить их на телефонный дисплей. Спряжение между гаджетом и вторичным устройством (квадрокоптер, веб-камера, VR-устройства и т. д.) по умолчанию осуществляется через порт типа OTG. Но при использовании дополнительных утилит можно установить спряжение по типу USB.
Особенности функции
Функция UVC Receiver может использоваться для конвертации аналогового видео с устройств, поддерживающих протоколы UTV-007 HTV-600 и HTV-800. При этом воспроизводимое на экране смартфона видео не будет иметь аудиодорожки, так как данная опция не предусматривает поддержку аудиовыхода.
При смене типа спряжения с базового OTG на более универсальный USB качество трансляции будет потеряно. Ведь максимально допустимое разрешение для Video Grabber при использовании функции UVC составляет всего 640х480 пикселей.
Как проверить
Опция UVC зачастую входит в базовый функционал современных смартфонов. Но для того чтобы проверить, есть ли она на вашем устройстве, достаточно выполнить следующие простые действия:
Если функция UVC телефоном поддерживается, то на экране смартфона появится указатель в форме стрелочки. В противном случае гаджет не сможет распознать подключенное устройство, что будет указано в системном сообщении.
Захват видео с USB камер на устройствах под управлением Linux
Предыстория
Ограничения
Я не собирался искать решение, которое работает всегда и везде. Следующие ограничения меня вполне устраивали:
HW и SW
Предварительный анализ
Код UVC драйвера оказался готов к добавлению различного рода “специальных” решений, и я легко нашел место, где надо скорректировать размер буфера (функция uvc_fixup_video_ctrl()). Более того, драйвер поддерживает набор quirks, которые позволяют поддерживать камеры с разного рода отклонениями от стандарта UVC. В общем, разработчики драйвера сделали лучшее, что возможно для поддержки зоопарка камер.
Добавив коррекцию размера буфера, я получил стабильную работу в режиме 1280х720 и даже в режиме 1920х1080. Ура! Половина задачи решена!
В поисках новых приключений
Немного порадовавшись первой удаче, я вспомнил, что mjpg-streamer далек от совершенства. Наверняка можно сделать что-то простое, не такое универсальное как mjpg-streamer, но более подходящее для моих условий. Так я решил сделать uvc2http.
В mjpg-streamer мне не понравилось использование нескольких потоков и копирование буферов. Это определило архитектуру решения: 1 поток и никакого копирования. Используя non-blocking IO, это делается достаточно просто: захватываем кадр и без копирования отсылаем его клиенту. Есть небольшая проблема: пока мы отсылаем данные из буфера, мы не можем вернуть буфер обратно в очередь. А пока буфер не в очереди, драйвер не может положить в него новый кадр. Но если размер очереди > 1, то это становится возможным. Число буферов определяет максимальное количество подключений, которое можно гарантированно обслуживать. Т.е., если я хочу гарантированно поддерживать 1 клиента, то 3-х буферов достаточно (в один буфер пишет драйвер, из второго отсылаем данные, третий в запасе, чтобы избежать конкуренции с драйвером за буфер при попытке получить новый кадр).
Uvc2http
Uvc2http состоит из двух компонентов: UvcGrabber и HttpStreamer. Первый отвечает за получение буферов (кадров) из очереди и возврат их обратно в очередь. Второй отвечает за обслуживание клиентов по HTTP. Есть еще немного кода, который связывает эти компоненты. Подробности можно посмотреть в исходниках.
Неожиданная проблема
Все было замечательно: приложение работало и в разрешении 1280х720 выдавало 20+ кадров/сек. Я делал косметические изменения в коде. После очередной порции изменений я замерил частоту кадров. Результат был удручающий — меньше 15 кадров. Я бросился искать, что же привело к деградации. Я потратил, наверное, 2 часа в течение которых частота уменьшалась с каждым замером до значения 7 кадров/сек. В голову лезли разные мысли о деградации из-за долгой работы роутера, из-за его перегрева. Это было что-то непонятное. В какой-то момент я отключил стримминг и увидел, что просто один захват (без стримминга) давал те же 7 кадров. Я даже начал подозревать проблемы с камерой. В общем какая-то чушь. Дело было вечером и камера, повернутая в окно, показывала что-то серое. Дабы сменить мрачное изображение я повернул камеру внутрь комнаты. И, о чудо! Частота кадров увеличилась до 15 и я все понял. Камера автоматически подстраивала время экспозиции и в какой-то момент это время стало больше длительности кадра при заданной частоте. За эти два часа случилось следующее: сначала плавно темнело (это был вечер), а потом я повернул камеру внутрь освещенной комнаты. Направив камеру на люстру я получил 20+ кадров/сек. Ура.
Другие проблемы и нюансы использования
Результаты
Ниже табличка с результатами сравнения mjpg-streamer и uvc2http. Если коротко — есть значительный выигрыш в потреблении памяти и небольшой выигрыш в частоте кадров и загрузке CPU.
1280×720 | 1920×1080 | |||||||||||
VSZ, KB, 1 client | VSZ, KB, 2 clients | CPU, %, 1 client | CPU, %, 2 clients | FPS, f/s, 1 client | FPS, f/s, 2 clients | VSZ, KB, 1 client | VSZ, KB, 2 clients | CPU, %, 1 client | CPU, %, 2 clients | FPS, f/s, 1 client | FPS, f/s, 2 clients | |
Mjpg-streamer | 16860 | 19040 | 26 | 43 | 17.6 | 15 | 25456 | 25812 | 28 | 50 | 13.8 | 10 |
uvc2http | 3960 | 3960 | 26 | 43 | 22 | 19.6 | 7576 | 7576 | 28 | 43 | 15.5 | 12.2 |
Ну и конечно же видео, которое я сделал вместе с детьми:
Фото получившегося танка (получилось что-то вроде цыганской телеги):
Использование
Исходники находятся здесь. Для использования на PC Linux надо всего лишь собрать (при условии что вы не хотите патчить драйвер UVC). Утилита собирается с помощью CMake стандартным способом. Если же надо использовать в OpenWRT, то надо сделать дополнительные шаги:
Что дальше
Решение состоит из двух частей: патч драйвера и другой алгоритм стримминга. Патч драйвера можно было бы включить в новую версию ядра линукса, но это спорное решение, так как оно основано на предположении о минимальном коэффициенте сжатия. Утилита же, на мой взгляд, хорошо подходит для использования на слабых системах (игрушках, домашних системах видеонаблюдения), и ее можно немного улучшить, добавив возможность задавать настройки камеры через параметры.
Алгоритм стримминга можно улучшить так как есть запас по загрузке CPU и по ширине канала (я легко получал с роутера 50+ MBit подключая десяток клиентов). Также можно добавить поддержку звука.
Уникальная ВКС-камера от Yealink — оптимальное решение для ZOOM/Skype/Teams
В этой статье речь пойдёт о PTZ-камере Yealink UVC84, которая имеет разрешение 4K, 12-кратное оптическое увеличение и беспрецедентные возможности по интеграции.
Прошло немало лет с тех пор, как Yealink зарекомендовал себя в роли производителя качественных систем видеоконференцсвязи. Аппаратные SIP/H.323-терминалы Yealink стали достойной альтернативой решений Polycom, Cisco и прочих кодеков ВКС.
В совокупности с собственным программным решением Yealink Meeting Server, терминалы Yealink обеспечивают оптимальный баланс по стоимости и функционалу системы видеоконференцсвязи.
Но, за последние 2 года рынок видео коммуникаций ещё больше развернулся в сторону программных терминальных решений, использующих в качестве клиента обычный персональный компьютер. Для таких решений, как Skype, ZOOM, Teams и прочих облачных сервисов, как правило требуется USB-периферия, а не SIP/H.323-кодеки.
Для удовлетворения этой потребности рынка Yealink начал расширять модельный ряд своих решений сразу в трёх направлениях:
Терминалы «из коробки» для Teams и ZOOM
Универсальные терминалы SIP/H.323 + USB-режим
Камеры и спикерфоны с USB-подключением для ПК
О моноблоках для Teams и ZOOM я расскажу в следующей статье. Эти решения включают в себя микрофонный массив, динамики, камеру с автоматическим наведением на докладчика и встроенный программный клиент Teams или ZOOM, в зависимости от модели. Управление терминалом и конференцией происходит или с помощью пульта дистанционного управления, или при помощи сенсорной панели.
Универсальным терминалам, работающим по протоколам SIP или H.323, но имеющим возможность превращаться в 1 клик в USB-камеру/микрофон/динамик для ПК, уже посвящена целая статья Работа SIP/H.323-терминала ВКС с ZOOM и Skype в USB-режиме для ПК
В этой статье мы остановимся на третьем направлении решений Yealink: USB-периферия. В частности нас интересует камера Yealink UVC84
Прежде чем начать, будет уместно вспомнить основу уникальности всех решений Yealink, а именно удобство коммутации периферийных устройств, в том числе по витой паре.
Например, настольный микрофонный массив VCM34 каскадируется до 8 устройств в системе. Каждый такой массив имеет охват 360 градусов и максимальный радиус захвата до 6 метров.
Используя возможность последовательного подключения нескольких таких устройств, можно обеспечить качественный захват голоса в объёмных помещениях со столами большого размера или сложной формы.
Это потолочный микрофонный массив Yealink VCM38. В комплект входит телескопическая штанга для монтажа в зависимости от высоты потолков помещения.
Эти микрофоны также каскадируются по витой паре до 8 штук и обеспечивают круговой захват голоса в радиусе до 4 метров каждый.
Стерео саундбар Yealink MSpeaker II мощностью 10 Вт, оптимизирован для реалистичного воспроизведения речи. Имеет аналоговый вход, но для более качественной передачи звука использует LAN-интерфейс для подключения к терминалу. Каскадируется по UTP до 4 устройств в системе.
На этом список периферийных устройств Yealink не заканчивается, но мы остановимся именно на них, так как именно эти устройства мы будем интегрировать с камерой UVC84.
Характеристики Камеры Yealink UVC84
Режимы передачи видео
4K30, 1080p60/30, 720p60/30
12Х оптическое, 3Х цифровое
Штатный угол обзора
горизонтальный 73° / вертикальный 45°
Автоматическая / Ручная настройка
ATW / Автоматическая / Ручная настройка
1 x USB2.0 Type-B
1 x USB2.0 Type-A
1 х RJ45,
1 x Line-out
Поддержка ОС (официально)
Windows 7 и выше, Mac OS 10.10 и выше
Первая половина таблицы особо ничем не впечатляет. Таких камер на рынке немало, и возможно даже интересней по цене.
Нас особенно интересует раздел «Интерфейсы подключения». Здесь мы видим 2 интерфейса USB и переходим к первой фишке этой камеры.
В качестве интерфейса подключения к ПК камера имеет порт USB2.0 Type-B. В комплект поставки входит USB-кабель 7 метров.
А вот второй интерфейс USB2.0 Type-A камера использует для подключения USB-аудио устройств, спикерфонов или микрофонов, выступая в качестве USB-хаба. Это позволяет подключить к ПК, например, микрофоны и камеру, используя всего один порт USB.
У Yealink, к примеру, есть комплект беспроводных микрофонов CPW90. Они подключаются к терминалу ВКС с помощью DECT-адаптера. Причём один такой USB-донгл поддерживает работу до 4 беспроводных микрофонов.
Этот комплект микрофонов работает и с камерой UVC84. DECT-адаптер DD10 устанавливается как раз в порт USB2.0 Type-A. В результате чего мы получаем готовое решение: камера + 4 микрофона. Но это ещё не всё.
Совместимость с LAN-периферией Yealink
У камеры UVC84 есть 1 порт RJ45. В сценарии с аппаратными терминалами Yealink, он используется для подключения к кодекам моделей VC800 или VC880. Терминал Yealink VC880, например, поддерживает до 9 таких камер в одной системе.
Но, в разрезе этой статьи, нас интересует роль этого LAN-порта при работе камеры в USB-режиме.
Если мы подключим последовательно к камере цепь из проводных микрофонов и саундбар, ПК определит эти проприетарные LAN-устройства как USB-периферию. В результате, при помощи одной камеры UVC84 и высококачественного аудио оборудования Yealink, мы можем оборудовать переговорную комнату крупного размера, используя всего один кабель USB и стандартную UTP-коммутацию.
При этом суммарная стоимость такого комплекта будет существенно ниже любых аналогов на базе решений эквивалентного качества.
Для чего нужно столько микрофонных массивов?
Дело в том, что последние тенденции в дизайне переговорных комнат, пагубно влияют на качество звука в этих помещениях. Всё чаще можно увидеть комнаты состоящие из стекла и гипсокартона, не имеющие штор и ковролина. Звукопоглощению в таких комнатах, к сожалению, не уделяют должного внимания.
При более-менее нормальной акустической подготовке помещения, эта проблема частично решается установкой дополнительных микрофонов. Чем больше устройств захвата звука, тем равномерней они распределены на столе, и тем ближе они к каждому из участников конференции. Как следствие, микрофонные массивы смогут лучше определить голос докладчика и снизить уровень эха.
Автоматическое наведение на докладчика
Камера UVC84 по умолчанию унаследовала от терминалов Yealink серии Meeting Eye функцию отслеживания докладчика. Кадрирование происходит в автоматическом режиме и даже на очень близком расстоянии.
Горизонтального угла поворота камеры 200 градусов хватает на то, чтобы обеспечить наведение объектива на участников, сидящих по обе стороны от камеры на расстоянии около метра.
Конечно при таком близком размещении участников к камере штатного угла обзора 73 градуса не хватит для отображения всех в одном кадре, но навестись на каждого по отдельности возможностей поворотно-наклонного механизма хватит.
Заключение
Камера UVC84 является оптимальным решением для переговорных комнат средних и больших размеров, оборудованных программными терминалами для Skype, MS Teams, ZOOM или любым другим программным решением на базе Win/Mac.
Возможности аудио периферии Yealink превращают камеру в универсальное интеграционное решение для широкого спектра задач по оборудованию переговорных комнат и конференц-залов.
Функция UVC в смартфоне: что это
Современные гаджеты имеют широкий спектр функций, которые не только упрощают их эксплуатацию, но и приносят множество преимуществ. В качестве примера можно привести функцию UVC на смартфоне. Чаще всего он используется в качестве расширения для Video Grabber или Webcam.
Что это такое
Функция UVC-приемника используется для преобразования аналогового видео с любого устройства, подключенного к смартфону, и передачи его на дисплей телефона. Сопряжение между гаджетом и вторичным устройством (квадкоптером, веб-камерой, VR-устройствами и т.д.) осуществляется по умолчанию через порт типа OTG. Но с помощью дополнительных утилит можно настроить сопряжение по типу USB.
В двух словах, функция UVC-приемника позволяет использовать смартфон в качестве монитора для записывающих устройств, которые не имеют встроенного дисплея. До своего создания приложение FPViewer выполняло аналогичную роль, что требовало дальнейшей оптимизации.
Особенности функции
Функция приемника UVC может быть использована для преобразования аналогового видео с устройств, которые поддерживают протоколы UTV-007 HTV-600 и HTV-800. Однако видео, воспроизводимое на экране смартфона, не будет содержать звуковой дорожки, так как эта опция не поддерживает аудио выход.
Если вы измените тип спряжения от основного OTG к более универсальному USB, качество передачи будет потеряно. В конце концов, максимальное разрешение, допустимое для Video Grabber при использовании функции UVC, составляет всего 640×480 пикселей.
Помимо вещания, опция UVC предполагает запись видеофайлов во внутреннюю память смартфона. На выходе пользователь получит видео в формате MP4 без звуковой дорожки. Но эту функцию могут использовать только владельцы операционной системы Android 4.3 и выше (утилита работает в фоновом режиме, не блокируя текстовые уведомления и звонки, поступающие на телефон).
Как проверить
Опция UVC часто входит в базовую функциональность современных смартфонов. Но чтобы проверить, доступен ли он на вашем устройстве, просто выполните следующие простые действия:
Если функция UVC поддерживается вашим телефоном, на экране смартфона появится стрелочный указатель. В противном случае гаджет не сможет распознать подключенное устройство, на что будет указывать системное сообщение.
Камера uvc что это
FPViewer (Easycap & UVC Player)
версия: 1.3.3
Последнее обновление программы в шапке: 07.01.2019
Краткое описание:
Вывод изображения на экран Android устройства с подключенной камеры или FPV-приемника (UVC-камеры).
Кроме того, FPViewer предлагает оптимизированную функцию, позволяющую использовать устройства Android в качестве монитора FPV.
Возможности:
Отображение аналогового видео с помощью устройства захвата видео Easycap на устройстве Android.
Поддерживается только версия Easycap для UTV007, HTV600, HTV800 и не поддерживается аудиовход.
Работа в качестве FPV монитора для приемников FPV (5.8 ГГц)
Работает с приемниками Eachine ROTG01 / ROTG02, ATX03, R051 и т.п.
Отображение аналогового видео с помощью устройства захвата видео (UVC) на устройстве Android.
(Функция аналогична Easycap).
Кроме того, если USB-камера имеет тип UVC, вы можете использовать камеру с этим приложением (поддерживается только разрешение 640×480).
Запись видео
Сохранение отображаемого видео в формате MP4. (Android 4.3 или выше)
Разделение изображения для работы с очками VR
Поддержка режима Side by Side (VR), так что вы можете использовать Android-устройство в качестве очков FPV.
Always on Top
Возможно установить видеоокно на передний план. При этом экран просмотра никогда не исчезнет, даже если вы получите телефонный звонок или текстовое уведомление.
Требуется Android: 4.1 и выше
Русский интерфейс: Нет
Скачать: версия: 1.3.3FPViewer-v1.3.3-NoAd-v0.1.apk ( 1.35 МБ )
FPViewer_v1.3.3.apk ( 1.35 МБ )