[OBS] アンドロイドの画面をコンピューターにミラー

パソコンや携帯などのデバイスの画面を他のデバイスに表示する事を動詞では「ミラー」、名詞では「ミラーリング (Screen Mirroring)」と言います。 iPhoneやiPadの画面をマックにミラーしたい場合は、同じ会社の製品なので比較的簡単に設定する事が出来ます (👉「📝マックとiPhoneで筋トレアプリ配信」参照) が、アンドロイド端末の画面をパソコン(マック/ウンドウズ/リナックス)にミラーしたい場合はアプリのインストールなどのいくつかのステップが必要になります。

今回は、オープンソースの「scrcpy」を使ってアンドロイド端末の画面をミラーする方法に、OBSでのシーン設定も付け加えて、ここにメモしておきます。



このメモにある方法は、アンドロイド端末とパソコンをUSBケーブル又はネットワークで直接繋げる事でデバイスの画面をミラーする方法になりますが、別の方法として、ZoomやDiscordといった通話アプリの画面共有機能を使っても画面のミラーリングはネットワーク経由で可能です。



ADB対応のアンドロイド端末

アンドロイドはOSのバージョンがAndroid 5.0 (API 21: Lolipop)以上であればOSに標準装備されているADB (Android Debug Bridge)のデバッグ機能を使う事でアンドロイド画面のミラーリングがコンピューターで可能になります。 なお、アンドロイドでADBのデバッグ機能を使うのには開発者向けオプションを有効にした後 (👉「📝開発者向けオプションの有効化」)、
USBデバッグモードを有効にする必要があります (👉「📝USBデバッグモード有効化」)。

また、コンピューター側には次に説明する「scrcpy」の様なアンドロイドから送られてくる画像を表示するアプリが別に必要になります。


scrcpy

「scrcpy」はウインドウズ、マック、リナックス対応のオープンソースの無料アプリで、Github (https://github.com/Genymobile/scrcpy)で公開されています。

だと、最新版のバージョンは v1.16となっています。 オープンソースなのでソースコードも公開されているので、個人でコンパイルしても良いのですが、少し手間がかかる場合があるので、直ぐに使える様にコンパイルされているものを使うのが無難だと思います。

また、scrcpyは音声のミラーには対応していないので、他の方法でアンドロイドからのオーディオ出力をパソコンに取り込む必要があります。

ウインドウズ版scrcpy

ウインドウズ版はZip形式の圧縮ファイル (v1.16の場合だと
32ビット用が「scrcpy-w32-v1.16.zip」、

64ビット用が「scrcpy-w64-v1.16.zip」) としてダウンロード出来ますが、インストーラーがないので、適当なファルダに展開した後、フォルダ内のscrcpy.exeを起動させる事になります。

リナックス版scrcpy

リナックス版の場合、Debian (testing/sid)やUbuntu (20.04)であれば「apt install scrcpy」コマンドでパッケージのインストールに対応していて、他のディストリビューションのリナックス用のパッケージも用意されています (詳しくは👉こちら(英文))。

マック版scrcpy

マック版だとHomebrewをインストールすると「brew install scrcpy」コマンドでインストール出来るみたいですが、マックはエアープレイ中なので詳細はscrcpyのページを参照して下さい
👉こちら(英文)


接続用USBケーブル

USBデバッグを許可しますか? (Allow USB debugging?)

USBデバッグモードを有効にしたアンドロイド端末をUSBケーブル経由でパソコンに繋げると、「USBデバッグを許可しますか? (Allow USB debugging?)」といった、USBデバッグを有効にするかどうかのダイアログがアンドロイド端末に表示されます。

ミラーリングを有効にするのにはこのダイアログで「OK」を選択する必要があります。 また、「このパソコンからのUSBデバッグを常に許可する (Always allow from this computer)」の横のチェックボタンを選択しておくと以降は同じパソコンであればUSB接続時に自動的に有効になります。

この後にscrcpyをパソコン上で起動すると、端末との接続が確立すると端末の画面がパソコン上に表示されます。


やってみた

ウインドウズ版でしか確認していませんが、デバッグモードを有効にしたアンドロイド端末をパソコンにUSB接続して、USBデバッグを有効化した後、パソコンでscrcpyを起動した場合、問題なく端末の画面がパソコンにミラーされました。

scrcpy: USBデバッグ無効時
scrcpy: USBデバッグ無効時のエラー

でも、何らかの理由でアンドロイド端末がパソコンに認識されていない状態か、端末が繋がっていない状態でscrcpyを起動すると👉右👆上の様にエラーとなってscrcpyが終了してしまいます。


OBSでのシーン設定

ウインドウキャプチャのプロパティ

OBSの配信に、scrcpyからのアンドロイドの画面を付け加える時は、まず ウインドウキャプチャ「ウインドウキャプチャ」をシーンのソースに追加します。
プロパティでウインドウの名前が [scrcpy.exe] で始まる、

[scrcpy.exe] 端末の名前

という形式のウインドを表示する様に選択します。


scrcpy標準の設定だと、端末の上で画面のオリエンテーションを縦、横に切り替えると、ミラーされる画面も縦長、横長に変わります。 シーン上の配置の仕方やサイズによっては画面のオリエンテーションが変わる事ではみ出てしまう事があるので、場合によってはscrcpy起動時にオプションで表示のオリエンテーションを固定しても良いかもしれません。

実際にはscrcpyに次の様なオプションを付けて起動すると縦長のオリエンテーションに固定されます。

scrcpy --lock-video-orientation 0

最後の「0」を:

  • 1 にすると反時計回りに90度の横長、
  • 2 にすると上下逆の縦長、
  • 3 にすると時計回りに90度の横長に固定されます。

ウインドウズの場合だと「ノートパッド」といったアプリを使って、半角でこのコマンドをテキストファイルに書き込んで、ファイル名の最後を「.bat」に変更してバッチファイルという種類ファイルにしてscrcpyと同じフォルダに保存しておくと良いかもしれません。 バッチファイルだとうまく設定されていればクリックした時に中のコマンドが実行されます。


また、今回は、アンドロイド端末からの音声は端末のヘッドフォンジャックとパソコンのライン入力を次の様にステレオのオーディオケーブルで繋げて音声もOBSに取り込める様にしました。 (※ ライン入力のないパソコンの場合はブルートゥース接続を使えると思いますが、今回は試していないので、機会があればいつかメモにしたいかと。。)

オーディオケーブル接続
オーディオケーブル接続例: [注]scrcpy用のUSBケーブルは省略されています。

無線接続

USBケーブル接続が確立した後だと、ケーブルを使わずにネットワーク経由での接続をする様に設定する事も出来ます。 設定にはscrcpy.exeと同じフォルダにあるadb.exeを使います (ウインドウズの場合)。

端末をパソコンにUSBケーブルで繋げた状態で、パソコンでadbのコマンドを使って、

adb tcpip 5555

アンドロイド端末のUSBケーブルでなくネットワーク経由の接続 (tcpip:5555)を有効にします。

次にミラー画面を表示したいパソコン(scrcpyをインストールする必要があります)で、

adb connect IP_ADDRESS:5555

adbのコマンドでアンドロイド端末の5555ポートに接続します。 ここで、IP_ADDERESSはアンドロイド端末のIPアドレスである必要があります。この後、同じパソコンでscrcpyを起動させます。

※ 無線接続でミラーリングを設定するのには一度USB接続をしないといけないので、何かがあった時の再接続の時の手間などを考えると、特に無線である必要性が無い限りUSB接続の方が使い勝手が良さそうな気がします。。




コメント