Windows上でリモートX11アプリケーションを動かす+ffmpegでアプリケーションウィンドウキャプチャをする+コマンドプロンプトでパイプする+akvirtualcameraを使って仮想カメラを動かす+ffmpegの出力ストリーミングをakvirtualcameraにつなぐ。
akvirtualcameraをインストール。ffmpegをインストール。
akvirtualcameraとffmpegにパスを通す。
コマンドプロンプトを管理者で実行で開いて、以下を実行。
AkVCamManager add-device "Virtual Camera"
AkVCamManager add-format AkVCamVideoDevice0 RGB24 640 480 30
AkVCamManager update
OBSなどで映像キャプチャのリストにVirtual Cameraが出てくれば仮想カメラの登録は成功。
※もし、Webカムがパソコンに付いていて、映像キャプチャのソースを選べないアプリケーションに仮想カメラの映像を映すのであれば、デバイスマネージャーでWebカムを無効化しておくことでVirtual Cameraがデフォルトになる。
アプリケーションウィンドウの映像をさっき作成した仮想カメラを通してストリーミングするには以下のコマンドを実行。ここではglxgearsの実行ウィンドウをキャプチャしている。
ffmpeg -f gdigrab -i title="glxgears" -pix_fmt rgb24 -f rawvideo - | AkVCamManager stream AkVCamVideoDevice0 RGB24 624 556
※624 556はffmpegが検出しているfps
※もしカクついているようであれば、”AkVCamManager stream”のあとに–fpsオプションをつけるとカクつきが直るかもしれない(fpsの数は例えば29.97)。
※macだとgdigrabはavfoundation
→参考ページ