USB カメラからの映像を WebRTC で配信する Android アプリケーションの製作

 2025/03/01, 2025/03/03 -  ~

依頼内容

  • Android に USB カメラを接続して、WEB RTC で配信させたい。

解決方法

  • Android に USB カメラを接続するアプリケーションが github にいくつかあったので、それらのソースコードを参考することとした。参考にしたソースコードでは、libusb と libuvc を改造したものであった。
  • WEB RTC をサポートするサーバとしては、LiveKit というサーバがあり、お客様の要件に合っていた。
  • LiveKit には、Android 用の SDK が提供されていた。

こういった状況であり、以下のようにした。

  • Android アプリケーションとして実装した。言語は、Kotlin/Compose を使用。
  • libusb/libuvc (Cライブラリ) をネイティブコンパイルして shared object として参照するように構成した。
  • LiveKit Andoid SDK を使用。
  • libusb/libuvc から取得したイメージを、LiveKit Android SDK の BitmapFrameCapturerer クラスを派生させたクラスでハンドンリングするようにした。

構成

  • Kotlin / Compose
  • libusb / libuvc (Cライブラリ)