方法
Android にインストールした IP Webcam でカメラ画像をストリーミング、OBS で受け取って、OBS Virtualcam プラグインで web カメラ化。
OBSが動いているパソコンと Android が同じネットワークにいる環境なら、http://ip:port/ でandroid上で起動した制御インターフェースにアクセスできる。フォーカスとか色々できるけど、できる内容はandroid側のカメラ次第。
ストリーミングが停止することはない。でも android 端末は熱くなるので、熱くなりすぎないか心配。
動画の遅延評価
OBSですべてバッファリング1MBの場合、動画の遅延が小さいのはmjpeg。概ねwebカメラと同じくらいの遅延量。
音声の遅延評価
音声の遅延が小さいのはopusだけど、400msくらいあるので、気になるレベル。音声は別のデバイスで入力した方がいいかも。
音声遅延 | 種類 | URL |
1.375s | 音声(aac) | http://ip:port/audio.aac |
0.400s | 音声(opus) | http://ip:port/audio.opus |
2.496s | 音声(wav) | http://ip:port/audio.wav |
2.513s | 動画(h264)+音声(ulaw) | rtsp://ip:port/h264_ulaw.sdp |
2.396s | 動画(h264)+音声(pcm) | rtsp://ip:port/h264_pcm.sdp |
N/A | 動画(mjepg) | http://ip:port/video |
OBSで音声のマルチトラック化して動画保存、ffmpegでマルチトラックを分離、Audacity で波形を見ながら音声遅延量の評価。
$ ffmpeg -i *.mkv \ -map 0:1 -c copy audio1.aac \ -map 0:2 -c copy audio2.aac \ -map 0:3 -c copy audio3.aac \ -map 0:4 -c copy audio4.aac \ -map 0:5 -c copy audio5.aac \ -map 0:6 -c copy audio6.aac \ ;
USB テザリングで有線化
有線で Android のカメラを使うには、Android の USB テザリング機能を使う。この時 Android 側 に割り当てられる IPアドレスは 192.168.42.129 になるので、http://192.168.42.129:8080/ 等で制御インターフェースにアクセスできる。USBテザリングだと複数のカメラを使えない点に注意。