Usb video device что это за программа
По популярности видеокамера, сегодня, стоит в одном ряду с микрофоном и наушниками. Она используется в различных направлениях, таких как распознавание объектов, дополненная реальность, видеоконференции и множество других. Но что же скрыто под капотом этих сложнейших программ? Как мы получаем картинку с видеокамеры? Этот цикл статей позволит взглянуть на простоту работы с видеокамерой на низком уровне, обработку полученного изображения.
Для начала, немного информации о работе с устройствами в системе Linux. Устройства в nix системах представляют собой файл. С некоторыми файлами-устройств мы можем работать как с обычными файлами. Например:
эта команда выведет на экран весь диск sda.
Есть устройства с которыми нельзя работать напрямую, к ним относится видеокамера.При попытке это сделать мы получим такую реакцию системы:
*Где /dev/video0 это файл-устройство найшей видеокамеры.
Для работы с ней нам понадобится системная функция ioctl детальнее о ней можно ознакомится [1]. Попробуем это применить. Вот код позволяющий считать информации с устройства (альтернатива команде cat для видеоустройств):
В первых строках кода считываются параметры с которой запущено приложение. Если параметров нету то device_name принимает стандартоне значение "/dev/video0".
В блоке «Open Device» происходит открытие устройства системной функцией open (нужно подключить header fcntl.h). Обязательный параметр O_RDWR отвечает за открытие устройства считывания/записи. Если при подключении возникла ошибка, то функция open вернет -1.
Блок «Read Params From Device» — это сердце нашей маленькой программы. Для его использования надо подключить билиотеку возможно прийдется её установить, у каждого дистрибутива свой пакет под эту библиотеку
Системная функция ioctl имеет три параметра:
file_device — дескриптор нашего устройства
VIDIOC_QUERYCAP — функция ядра, которую применяем для нашего устройства.
device_params — область памяти куда будет сброшен результат функции «VIDIOC_QUERYCAP».
device_params это структура состоящая из таких полей:
если возникла ошибка ioctl вернет -1
Блок «Close Device» закрывает дескриптор устройства.
Посмотрим программу в действии.
устройство не определилось ядром либо не подключено уборщица опять ненужные провода дергала.
Подключаем и заново запуск. Получаем такую информацию:
поле capabilities и device capabilities можно расшифровать благодаря константам из файла videodev2.h:
На этом вводная статья заканчивается. В следующих обзорах будут затронуты, такие темы как memory-mapping, виодеформаты изображения, настройка камеры, вывод изображения в текстуру, работа с несколькими камерами.
If you are providing a driver for a webcam or a digital camcorder, consider using the system-supplied universal serial bus (USB) Video Class driver, Usbvideo.sys. The USB Video Class (UVC) driver is a Microsoft-provided AVStream minidriver that provides driver support for USB Video Class devices. When your device uses UVC, you do not need to supply your own driver. Instead, the device works automatically with the system-supplied driver.
In the USB Video Class model, vendors do not write drivers; instead, vendors implement video streaming hardware according to the guidelines in the Universal Serial Bus Device Class Definition for Video Devices Specification document located on the USB Implementers Forum website. The UVC driver queries the hardware directly to obtain its capabilities and then drives the device, with no proprietary driver required.
You can optionally extend UVC driver functionality to add vendor-specific processing.
The following table shows support for UVC in different versions of Windows:
UVC Version | Windows 7 | Windows 8 |
---|---|---|
USB Video Class 1.5 (H.264 video codec) | Not supported | Supported |
USB Video Class 1.1 | Supported | Supported |
USB Video Class 1.0 | Supported | Supported |
Beginning with Windows 8, the H.264 video codec (encoder/decoder) is supported. H.264 is an open standard that allows efficient video compression techniques for reducing the use of network bandwidth and storage space. This leads to a higher video quality for a given bit rate. For more information, see USB H.264 Video Cameras Support. Also refer to Microsoft Proposed Extensions to the USB Video Class for H.264.
The following list shows some advantages to using the Usbvideo.sys driver:
No CD required for installation
No driver writing cost
No maintenance cost
Opportunity for vendors to add functionality
Easier debugging with public symbols
Works with Driver Verifier
Works with checked OS builds
Compliant with ACPI power management
Compliant with Selective Suspend power management
Supports multimedia APIs in Media Foundation and DirectShow
The system-supplied Usbvideo.sys driver supports the following UVC features in different versions of Windows:
UVC feature | Windows 7 | Windows 8 |
---|---|---|
Single video control interface and one or more video streaming interfaces | Supported | Supported |
Standard units and terminals, including Extension units | Supported | Supported |
Still image capture support for all three methods defined in the UVC specification | Supported | Supported |
Bulk and isochronous devices | Supported | Supported |
Streaming parameter negotiation using probe commit controls | Supported | Supported |
Compressed formats: MJPEG, DV | Supported | Supported |
Uncompressed formats: YUY2, NV12 | Supported | Supported |
Supports both capture and render devices | Supported | Supported |
Compressed format: MPEG2TS | Not Supported | Not Supported |
Stream-based and frame-based formats | Supported | Supported |
H.264 video codec | Not Supported | Supported |
Customizing the UVC Driver
You can customize your support for UVC by supplying an Extension Unit plug-in. Extension units provide a private control channel between device and vendor-supplied application.
Additional Resources
To test your UVC implementation, you can use the following tools:
For more information about these tools, see AVStream Testing and Debugging.
You can find specifications for USB Video Class 1.1 on the USB Implementers Forum website.
Практически каждый пользователь подключает к компьютеру телефон, планшет, ридер, флешки и внешние HDD. При работе с этими устройствами ОС Windows устанавливает их драйвера. По окончании эксплуатации они не удаляются с компьютера (то есть постепенно накапливаются) и так же, как временные файлы, ненужные записи в реестре захламляют систему.
Вдобавок к этому, если устройства отсоединяются от USB порта некорректно (выдёргиваются без программного отключения функцией «Извлечь»), то установленные драйвера не только остаются в системе, но и ещё продолжают функционировать. Из-за чего нередко становятся причиной программного конфликта в процессе подключения другого USB-устройства (система «не видит» девайс, выдаёт ошибки, виснет).
Данная статья поможет вам избежать всех этих неприятностей: расскажет, как удалить драйвер неиспользуемого USB-накопителя или гаджета из операционной системы полностью, как автоматически деинсталлировать все USB-драйвера.
Удаление штатными средствами
Поверхностная очистка
1. Откройте меню «Пуск».
2. Клацните правой кнопкой мышки в появившейся панели «Компьютер». В перечне команд выберите «Свойства».
3. В колонке слева клацните «Диспетчер устройств».
4. В окне диспетчера, в горизонтальном меню, откройте раздел «Вид» и нажмите «Показать скрытые устройства».
5. Откройте директорию «Контроллеры USB».
6. Удалите старый или неиспользуемый драйвер: клацните по его названию правой кнопкой → нажмите «Удалить».
Глубокая очистка
1. Удерживая клавишу «Win», нажмите клавишу «Pause/Break». Или откройте: Пуск → правой кнопкой «Компьютер» → Свойства.
2. В открывшемся окне, в левой панели, кликните «Дополнительные параметры системы».
3. На вкладке «Дополнительно» нажмите кнопку «Переменные среды».
4. В верхнем блоке щёлкните «Создать».
5. В окне «Новая пользовательская переменная»:
- в строке «Имя переменной» введите — devmgr_show_nonpresent_devices;
- в «Значение переменной» — 1.
6. Нажмите «OK» в панели переменной и в окне «Переменные среды».
7. Вернитесь в окно свойств системы (Win+Break) и клацните «Диспетчер устройств».
8. В диспетчере откройте: Вид → Показать скрытые…
10. Иконки неиспользуемых драйверов в диспетчере окрашены в серый цвет (то есть можно удалить этот драйвер). Поочерёдно откройте следующие директории и уберите ненужные элементы (клик правой кнопкой по названию → Удалить):
Драйверы несамонастраиваемых устройств
Совет! В этой директории вы также можете удалить старые драйвера, установленные программами, которые уже деинсталлированы из Windows (например, пакет фаервола Comodo).
Контроллеры USB
Дисковые устройства
В этом разделе устройств отображаются проинсталлированные драйвера флешек, ридеров, винчестеров. Прозрачные иконки объектов говорят о том, что они не используются (не подключены). А значит, от них можно смело избавляться.
11. По завершении очистки перезагрузите ПК.
Автоматическое удаление утилитой USBDeview
2. На открывшейся странице:
- если у вас 32-разрядная система, клацните первую ссылку «Download USBDeview»;
- если 64-x, вторую — «… for x64 systems».
3. Распакуйте скачанный архив: клацните по нему правой кнопкой → выберите «Извлечь всё… » → в окне «Распаковка… » нажмите «Извлечь».
4. Откройте распакованную папку. Запустите с правами администратора исполняемый файл USBDeview.
5. В окне утилиты отображается список всех установленных в систему драйверов. Красными «фишками» отмечены отключенные элементы.
Чтобы убрать драйвер из Windows, выделите его кликом мышки, а затем нажмите иконку «Корзина» в панели USBDeview. Или щёлкните по нему правой кнопкой и выберите в контекстном меню «Uninstall Selected Devices».
Примечание. Кроме функции удаления, USBDeview предоставляет возможность пользователю отключить/включить драйвер, посмотреть его свойства.
Удаление всех драйверов USB-устройств
1. Распакуйте загруженный на компьютер архив.
2. Если у вас Windows 32-разрядная, откройте папку «Win32», если 64-х, соответственно, «x64».
3. Запустите от имени администратора файл «DriveCleanup».
Драйвер это по своей сути связующее звено между операционной системой, то есть программным обеспечением и железом, то есть физическими устройствами, таким как видеокарты, принтеры, процессоры и т.д. В операционной системе могут быть заложены базовые драйвера для самых необходимых устройств - мышка, клавиатура, но для всего остального потребуются свежие драйвера.
Как установить драйвер?
1.Самый простой способ, если имеется установочный файл, то необходимо просто запустить его и следовать инструкциям установщика.
2.Если в наличии нет установщика, а присутствуют только файлы с расширениями *.inf , *.dll, *.vxt ,*.sys, *.drv., то алгоритм действий должен примерно следующий:
a) Для начала надо на рабочем столе выбрать значок (Мой компьютер) и нажать по нему правой кнопкой мыши, в выпадающем меню выбрать (Свойства).
b) Теперь переходим на вкладку (Оборудование) и нажимает на кнопку (Диспетчер устройств).
c) Теперь необходимо выбрать устройство для которого будет устанавливаться/обновляться драйвер. На строке с устройством надо нажать правой кнопкой мыши и в выпадающем меню выбрать (Свойства), либо можно просто дважды по нему щелкнуть, чтобы перейти в нужные настройки.
d) Переходим на вкладку (Драйвер), выбираем кнопку (Обновить).
e) В появившемся диалоговом окне выбираем пункт (Нет, не в этот раз) и переходим (Далее).
f) На этом этапе есть два вариант. Можно попытаться установить драйвера в автоматическому режиме, тогда ОС сама попытается найти подходящие устройству драйвера и установить их, для этого выбираем (Автоматическая установка (рекомендуется)) , если попытка завершится неудачно, то надо переходить ко второму пункту (Установка из указанного места) и выбираем (Далее).
g) Этот пункт меню подразумевает выбор между поиском драйвера на сменных носителях и вариантом указать папку с драйвером самостоятельно. Поэтому если в наличии есть диск с драйверами, то надо вставьте диск в CD-rom и выбрать вариант (Поиск на сменных носителях (дискетах, компакт-дисках..)) и перейти (Далее).
Если драйвер найден и скачен в интернете самостоятельно, то надо указать в ручную путь к папке в которой находятся установочный данные для драйвера следующим образом. Выбираем пункт (Включить следующее место поиска:) и переходим в (Обзор), теперь из списка выбираем папку с драйвером и кликаем на кнопку (ОК). Теперь смело переходим (Далее), если все сделано правильно, то начнется установка необходимого драйвера.
Читайте также: