Используйте USB-камеру в приложении Android - PullRequest
23 голосов
/ 22 января 2012

Мне нужно отобразить видео, переданное с помощью USB-камеры, подключенной к моему планшету на Android 3.2.

Как я могу это сделать?

Я не могу использовать камеру планшета, потому что мой планшет установлен на борту.

Ответы [ 3 ]

34 голосов
/ 24 января 2012

(Я написал это в 2012 году, когда не было поддержки USB-камеры. Я больше не работаю на Android ... поэтому я не могу объяснить, как это сделать с помощью API последней Android. Если вы знаете какое-либо лучшее решение, пожалуйста, напишитеэто здесь.)

Обсуждение справедливо только в том случае, если датчик внутри USB-камеры совместим с UVC (большинство современных камер совместимы).

На дату публикации(1 марта 2012 г.), по умолчанию нет Android API, доступного для работы на внешней камере.Так что, если вы серьезно относитесь к проекту, работа, которую вы выполняете, будет включать в себя написание прошивки, которая взаимодействует с драйверами ядра, и затем отображение данных на уровне приложений Android.

Когда вы вставляете камеру USB, Есть несколько вещей, которые вы должны проверить в первую очередь.

1) Ваша камера получает питание от порта USB? (Для этого ваш порт USB должен иметь поддержку USB-OTG-Порт USB может выступать в качестве цели и хоста. Проверьте, светятся ли индикаторы на камере (если они есть) или нет?)

2) Создается ли узел в каталоге / dev? (Узел будет создан только в том случае, если в ядре включена поддержка v4l2 и поддержка UVC.Если узел создается, теперь у вас есть доступ к реальному оборудованию, которое является USB-камерой, и с этого момента ваша работа будет легкой.проверить, есть ли в файловой системе android ls -l / dev / v * и проверить, создается ли video0 или video1.

4) Если узел создан, вам нужно написать прошивку (UVC) и получить кадр от реального оборудования. It (UVC) поддерживает различные вызовы ioctl, которые взаимодействуют со слоем v4l2 в ядре и будут извлекать вам кадры.

Эти кадры будут в основном иметь форматФормат YUYV422 или YUYV420.

Как только вы получите кадры, преобразуйте их в RGB или Jpeg (в Android есть поддержка для конвертации) и отобразите на холсте или в виде изображения в зависимости от того, что вам нравится.

Для записи вы можетедолжны использовать ffmpeg для кодирования.Это преобразует изображения в видео.

1 голос
/ 02 марта 2012

Прежде чем начать, стоит проверить, работает ли ваш USB-кабель с мышью, клавиатурой и USB-накопителем (для работы USB-накопителя вам понадобится приложение StickMount на некоторых устройствах).

Я также ищу USB-веб-камеру, работающую на Android, и пытаюсь воспроизвести то, что было сделано на http://brain.cc.kogakuin.ac.jp/research/usb-e.html. Наконец, я услышал, что веб-камеры Bluetooth работают "из коробки".

0 голосов
/ 21 марта 2017

В настоящее время (2017 г.) существуют приложения для Android, поддерживающие видеовход USB:

https://play.google.com/store/apps/details?id=labsp.android.viewer&hl=it

Возможно, требуется кабель OTG в форме буквы Y (кабель OTG в форме буквы Y)разрешить питание внешнего устройства)

...