AndroidをWebカメラとして使うアプリがありますが、あのようなアプリはどのような仕組みで動いているのでしょうか?

Android自体をUVC(USB Video Class)対応のデバイスとして動作させるようなことはできなかったと思うのですが、  
どのようにカメラから映像を取得して、USBカメラとしてPC側に認識させているのでしょうか?  
(もしかして: Android Accessory
ProtocolのドライバをPC側にインストールしてPC側をホストとして認識させてカメラの映像を流している?)

勉強のためにDroidCamのようなアプリを作ってみたいのですがどこから始めればよいのかわからないのです。  
(Androidのアプリはいくつか作ったことがあります)  
どうすればよいのでしょうか?
CC BY-SA 4.0
2020-04-21T16:54:24.600
65831
2020-04-22T12:21:32.800
5246
question
android usb
AndroidをWeb Cameraとして使うアプリの仕組み
間近に迫ったWindows10のアップデート(20H1)でネットワークカメラのサポートが行われるようです。

[Windows 10 デバイスへのネットワーク カメラの接続 (ビルド 18995)](https://docs.microsoft.com/ja-
jp/windows-insider/at-home/whats-new-wip-at-
home-20h1#windows-10-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%B8%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AE%E6%8E%A5%E7%B6%9A-%E3%83%93%E3%83%AB%E3%83%89-18995connecting-
network-cameras-to-windows-10-devices-build-18995)  
[Announcing Windows 10 support for Network
Cameras!](https://blogs.windows.com/windowsdeveloper/2019/10/15/announcing-
windows-10-support-for-network-cameras/)

[Connecting Network Cameras to Windows 10
Devices](https://blogs.windows.com/windowsdeveloper/2019/10/10/connecting-
network-cameras-to-windows-10-devices/)

ONVIF Profile SとかRTSP Uniform Resource
Identifierといった仕様をAndroid側で実装していると、Windows10 (20H1)以後はネットワークカメラとして使えるようです。  
その場合はAndroid側での開発だけで出来るのではないでしょうか。

[ONVIF](https://www.onvif.org/) / [ONVIF Streaming
Specification](https://www.onvif.org/specs/stream/ONVIF-Streaming-Spec.pdf)  
[RFC 7826 - Real-Time Streaming Protocol Version 2.0](https://www.rfc-
editor.org/rfc/rfc7826)

ONVIF/RTSP サーバー/クライアントのソースコードを公開しているらしい会社？サイトがありました。  
[Happytime ONVIF & RTSP Source Code](http://www.happytimesoft.com/index.html)

* * *

アップデート前だと以下のような概要の記事があります。  
[AndroidスマホをWEBカメラとして使えるようにするアプリ「IP
Webcam」＆「DroidCam」](https://guitarsk.com/pc/archives/1703)  
[How to use your Android phone as a webcam for your
PC](https://www.digitalcitizen.life/turn-android-smartphone-webcam-windows)  
[How to Use an Android Phone As a Webcam For PC [Windows &
Linux].](http://www.skipser.com/p/2/p/android-as-webcam.html)  
[AndroidスマホをWebカメラにしてテレワーク](https://k-tai.watch.impress.co.jp/docs/column/minna/1247138.html)

これらの記事ではいずれもネットワークでサーバー(Android側)/クライアント(PC側)の接続をしているようですね。  
接続は独自プロトコルか、RTSP等の既存プロトコルを使って、仮想Webカメラデバイスとして実現しているのでしょう。

[Convert RTSP stream to virtual web
camera](https://stackoverflow.com/q/26590174/9014308)  
[RTSP stream to virtual video device on Windows
8](https://stackoverflow.com/q/28231603/9014308)

デバイスドライバの考え方についての記事がこれだと思われます。  
[In Skype, can I use a camera installed on another
computer?](https://superuser.com/q/936664)  
[USB/IP PROJECT](http://usbip.sourceforge.net/)
CC BY-SA 4.0
2020-04-22T12:21:32.800
65866
2020-04-22T12:21:32.800
2021-10-07T07:34:52.683
-1
26370
65831
answer