category icon
2023-05-23
Other

AndroidでのUVCCamera(OTGカメラ)について調べたこと

profile
hikaru
Software Developer / DIY'er

UVC 規格について

UVC(USB Video Class)とは、USBカメラの通信に関する標準規格。このドライバーは通常OS側が用意しているので、USBカメラのメーカーからドライバーを取得してインストールする必要がない。

UVCCameraライブラリ

https://github.com/saki4510t/UVCCamera
ルート化されていない Android デバイスで UVC Web カメラにアクセスするためのライブラリとサンプル。

UVCCameraライブラリ内のサンプルについて

  • usbCameraTest2

    MediaCodec と MediaMuxer を使用して UVC カメラからのフレーム データを使用してムービーをキャプチャする方法。
    このサンプルには、少なくとも Android 4.3(API>=18) が必要。この制限はライブラリ自体によるものではなく、MediaMuxer と MediaCodec#createInputSurface の制限によるもの。

  • usbCameraTest3

    UVC カメラと内部マイクからのフレーム データを MediaCodec と MediaMuxer で使用してオーディオとムービーを同時にキャプチャする方法。
    このサンプルには、少なくとも Android 4.3(API>=18) が必要。この制限はライブラリ自体によるものではなく、MediaMuxer と MediaCodec#createInputSurface の制限によるもの。

  • usbCameraTest4

    オフスクリーン レンダリングの使用方法と、ディスプレイなしでムービーを録画する方法。
    カメラとの通信はサービスとして実行され、アプリを停止しても動作し続ける。 カメラ通信を停止する場合は「サービス停止」ボタンをクリック。

  • usbCameraTest5

    フレーム データを ByteArray として取得する IFrameCallback インターフェイスと、コールバック メソッドの使用方法。

  • usbCameraTest6

    ビデオ画像を 2 つの TextureView に同時に並べて表示する方法。

  • usbCameraTest7

    2 つのカメラを同時に使用する方法。

  • usbCameraTest8

    明るさなどの UVC コントロールを設定/取得する方法。

android.comに記載されている外部USBカメラについて

https://source.android.com/docs/core/camera/external-usb-cameras?hl=ja
上記、公式のページによると、標準の Android Camera2 API で USB カメラ(Webカメラ)の使用をサポートしていると書かれています。(未検証)