Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 09:52
Оценка:
Году в 2014-м купил первый USB-эндоскоп, еще с камерой более 10 мм диаметром. Он честно поддерживал соответствующий USB class, и все винды, начиная с XP, прекрасно работали с ним через общий стандарный драйвер UsbVideo. Но, когда попытался подключить к моему тогдашнему смартфону на андроиде 4.2, меня ждал облом — оказалось, что для многих USB-камер нужны песциальные драйверы, которых в андроиде искаропки нету, их нужно устанавливать через рутование и приседания. Тогда я эту идею забросил.

После этого у меня был эндоскоп поменьше, который с тем смартфоном тоже не работал, нормально работал с андроидом 5.1, но только в двух приложениях — CameraFi и UsbWebCamera. В остальных видео жутко лагало с любым разрешением, приложения зависали, иногда и сам андроид начинал виснуть.

Последние несколько лет я пользовался 8-мм моделью на SunplusIT SPCA2092A (PID 2085).

Недавно купил еще один с кабелем подлиннее, он оказался на какой-то микросхеме Realtek (PID 0521). Все винды его снова отлично понимают, но CameraFi и UsbWebCamera на смартфонах с андроидом 5.1 и 9.0 не понимают напрочь. Получилось только в inskam, и только в андроиде 5.1 — в 9.0 не получилось.

Отчего весь этот ужас? В андроидах нет нормальной поддержки стандартных функций USB class, и каждому приложению приходится использовать свои костыли? Или нет более-менее устоявшегося API, и там регулярно меняются умолчания, предпочтения и прочее?

Как в последних андроидах с поддержкой USB-камер?
Re: Поддержка USB-камер в Android
От: aik Австралия  
Дата: 25.05.23 11:09
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Как в последних андроидах с поддержкой USB-камер?


pixel6, древняя "046d:0821 Logitech, Inc. HD Webcam C910" — родными средствами никак, но первые попавшиеся софтины из стора её подхватили — "usb camera" и "camerafi2".
Re[2]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 11:18
Оценка:
Здравствуйте, aik, Вы писали:

aik>первые попавшиеся софтины из стора её подхватили


Понятно, что в отдельных случаях можно найти рабочие комбинации. Меня удивляет то, что все без исключения USB-камеры, как и звуковые адаптеры, поддерживают соответствующие USB classes, интерфейсы которых давным-давно устоялись, и для которых в ОС должен быть единый, универсальный драйвер, которому по барабану VID/PID. В винде уже очень давно именно так. А вот почему в андроидах не так? Это особенности линукса, или именно андроида?
Re: Поддержка USB-камер в Android
От: kov_serg Россия  
Дата: 25.05.23 11:34
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Как в последних андроидах с поддержкой USB-камер?

Всё плохо. Пока у вас нет root-а вы не можете добавить нужный драйвер. Обновление драйверов в андройде выполняется обновлением устройства
Так что ищите камеру совместимую или ту что по wifi работает.
Re[2]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 11:41
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>не можете добавить нужный драйвер


А зачем его вообще добавлять? Винда прекрасно обходится одним UsbVideo.sys для всех без исключения устройств соответствующего класса. Что андроиду мешает?
Re[3]: Поддержка USB-камер в Android
От: kov_serg Россия  
Дата: 25.05.23 11:43
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А зачем его вообще добавлять? Винда прекрасно обходится одним UsbVideo.sys для всех без исключения устройств соответствующего класса. Что андроиду мешает?

Ничто не мешает. Там linux и эти дрова просто не включили в образ.
Re[3]: Поддержка USB-камер в Android
От: aik Австралия  
Дата: 25.05.23 11:44
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Понятно, что в отдельных случаях можно найти рабочие комбинации. Меня удивляет то, что все без исключения USB-камеры, как и звуковые адаптеры, поддерживают соответствующие USB classes, интерфейсы которых давным-давно устоялись, и для которых в ОС должен быть единый, универсальный драйвер, которому по барабану VID/PID. В винде уже очень давно именно так. А вот почему в андроидах не так? Это особенности линукса, или именно андроида?


Это очень сильный вывод. До сих пор у меня распознавались все USB камеры что на ноуте с федорой, что на андроиде с usb-otg. Ну, до пиксела (с родной прошивкой) у меня андроиды были только хакнутые — с cyanogenmod или lineageos, т.е. близко к ванильной прошивке. Понятно, что в отдельных случаях можно найти нерабочие комбинации, но мне повезло (?).
Re[4]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 11:58
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>эти дрова просто не включили в образ.


Какие "эти"? Вы в курсе, что такое USB Class?
Re[4]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 11:59
Оценка:
Здравствуйте, aik, Вы писали:

aik>у меня андроиды были только хакнутые — с cyanogenmod или lineageos


У меня все рутованные, но исключительно для уровне загрузчиков, ядра родные.
Re[5]: Поддержка USB-камер в Android
От: aik Австралия  
Дата: 25.05.23 12:21
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

aik>>у меня андроиды были только хакнутые — с cyanogenmod или lineageos

ЕМ>У меня все рутованные, но исключительно для уровне загрузчиков, ядра родные.

Наличие рута не говорит ничего о наличии драйвера и что там в /etc/modprobe.d и прочих udev конфигах. Меня вот до сих пор вымораживает как, почему ant+ не включён по дефолту в стоковых ядрах на поддерживающем железе (а это практически весь qualcomm последние лет так 7-10).
Re[5]: Поддержка USB-камер в Android
От: kov_serg Россия  
Дата: 25.05.23 12:34
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

_>>эти дрова просто не включили в образ.

ЕМ>Какие "эти"? Вы в курсе, что такое USB Class?

https://source.android.com/docs/core/camera/external-usb-cameras
Re[6]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 13:19
Оценка:
Здравствуйте, aik, Вы писали:

aik>Наличие рута не говорит ничего о наличии драйвера и что там в /etc/modprobe.d и прочих udev конфигах.


Если там универсальный драйвер, работающий именно с UVC, он обязан либо поддерживать любые камеры этого класса, либо не поддерживать никакие. А вот когда одни поддерживаются, а другие нет, чем это объяснить?
Re[6]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 13:23
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>>>эти дрова просто не включили в образ.


ЕМ>>Какие "эти"?


_>https://source.android.com/docs/core/camera/external-usb-cameras


Если в образе нет драйвера UVC, то не должны работать никакие камеры. Ну, или какие-то могут опознаваться по VID/PID, но это опять же означает, что все сделано через задницу.
Re[7]: Поддержка USB-камер в Android
От: aik Австралия  
Дата: 25.05.23 14:19
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если там универсальный драйвер, работающий именно с UVC, он обязан либо поддерживать любые камеры этого класса, либо не поддерживать никакие. А вот когда одни поддерживаются, а другие нет, чем это объяснить?


Вот хз как это сделано конкретно, но апп в андроиде может установить свой драйвер. Например, sdr (софтовое радио) так делает. Т.е. стоковый ведроид может не иметь этого драйвера вообще, а у аппа он будет, но только для "своих" девайсов.
Re[7]: Поддержка USB-камер в Android
От: kov_serg Россия  
Дата: 25.05.23 14:22
Оценка: +2 -1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если в образе нет драйвера UVC, то не должны работать никакие камеры. Ну, или какие-то могут опознаваться по VID/PID, но это опять же означает, что все сделано через задницу.

То что там всё через задницу уже давно ясно. Это не компьютеры для инженеров, а устройства для потребления контента биомассой и цифровой рынок и контроль.
Re[8]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.05.23 14:46
Оценка: +1
Здравствуйте, aik, Вы писали:

aik>апп в андроиде может установить свой драйвер.


В ядро — не может.

aik>sdr (софтовое радио) так делает. Т.е. стоковый ведроид может не иметь этого драйвера вообще, а у аппа он будет, но только для "своих" девайсов.


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

Возможно, в андроидах до сих пор какая-то ограниченная поддержка UVC, хуже даже той, что была в XP двадцать лет назад, и приложения вынуждены реализовывать часть функций самостоятельно, если само устройство их не поддерживает (или поддерживает по-разному).
Re[9]: Поддержка USB-камер в Android
От: kov_serg Россия  
Дата: 26.05.23 05:45
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Возможно, в андроидах до сих пор какая-то ограниченная поддержка UVC, хуже даже той, что была в XP двадцать лет назад, и приложения вынуждены реализовывать часть функций самостоятельно, если само устройство их не поддерживает (или поддерживает по-разному).


Может это поможет:
https://github.com/jiangdongguo/AndroidUSBCamera
https://github.com/saki4510t/UVCCamera
https://github.com/openxc/android-webcam

До кучи:
https://developer.android.com/guide/topics/connectivity/usb/host
https://www.spinelelectronics.com/pdf/UVC%201.5%20Class%20specification.pdf
Re: Поддержка USB-камер в Android
От: mike_rs Россия  
Дата: 26.05.23 07:56
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Как в последних андроидах с поддержкой USB-камер?


на самсунгах S-серии все отлично как 10 лет назад так и сейчас.
Re[10]: Поддержка USB-камер в Android
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.05.23 10:21
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Может это поможет:

_>https://github.com/jiangdongguo/AndroidUSBCamera
_>https://github.com/saki4510t/UVCCamera
_>https://github.com/openxc/android-webcam

Все это может помочь лишь осознать, что в андроиде с UVC все крайне убого — гораздо хуже, чем в в XP двадцать лет назад.

Приложение из этих трех проектов — только первое, остальные два — библиотеки для разработчиков. Но и в первом проекте, если перейти по ссылке с APK, попадаешь на чисто китайский сайт. Что, кстати, хорошо отражает культуру разработки.
Re[9]: Поддержка USB-камер в Android
От: vsb Казахстан  
Дата: 27.05.23 12:02
Оценка: 1 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Возможно, в андроидах до сих пор какая-то ограниченная поддержка UVC, хуже даже той, что была в XP двадцать лет назад, и приложения вынуждены реализовывать часть функций самостоятельно, если само устройство их не поддерживает (или поддерживает по-разному).


В андроиде вообще никаких драйверов нет для посторонних устройств. Недавно с этим столкнулся. Даже для UART через USB нет драйвера (точней драйвер есть, это же линукс, но доступа к этому драйверу у приложений нет).

Всё, что андроид даёт приложению, это сырые интерфейсы USB. А дальше уже из userspace предлагается реализовывать руками этот драйвер.

Конкретно с USB-камерами не разбирался, но подозреваю, что ситуация идентичная.
Отредактировано 27.05.2023 12:04 vsb . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.