PCに有線・無線接続で、Android画面と音声ミラーリングが可能なscrsndcpy

Android

中の人(hiro)がめちゃくちゃ多用&気に入っている、Android画面と内部音声をPC側にミラーリング(出力)できる「scrsndcpy」を、布教目的も兼ねて(再度)記事にします。

絶賛スクラップ&ビルド中なので、元々のscrsndcpyとscrcpyの記事を統合・強化して再リリースです。

scrsndcpy

scrsndcpyはamate=サンによって作成された、画面ミラーリングのscrcpyと以前、音声ミラーリングに必要だったsndcpyを合体させたソフトウェア。

scrcpyをGUI化したツールの中でもかなり使いやすくまとまっていて、ミラーリングする解像度やビットレートの指定、scrsndcpy側でスクショの取得、scrcpy内蔵式 or sndcpyから任意で音声出力できたりします。

【必要なもの/要件】

  • adb/fastboot環境のPC
  • データ通信可能なUSBケーブル
  • Android 5.0以上のデバイス(個人的な推奨はAndroid 12以上)
  • Windows 10/11(64bit)

起動・Android画面/内部音声のミラーリング

GifHubからダウンロードした、scrsndcpyのzipファイルを任意の場所に解凍し、フォルダ内の”scrsndcpy.exe”を実行するとscrsndcpyが起動します。

開発者向けオプション内の”USBデバッグ”を許可したAndroid端末とPC(scrsndcpy)を接続。

端末と接続・認識されるとDevice list内に、接続しているデバイスコードが複数表示されます。

USB(有線)経由でミラーリングする場合は文字列、Wi-Fi(無線)の場合は192.168.xxx等のアドレスで表記されているものを選択し、”Screen Sound Copy”をクリックするだけでPC上に複製・出力されます。

設定・操作

項目 内容
Device list 接続したデバイスのリストと出力方式の切り替え
Screen Sound Copy Device listで選択した内容で、PC上にadb経由で画面/音声をミラーリング
toggle mute ミラーリングしたデバイスのメディア音声をミュート・非ミュート状態で切り替え
Manual sndcpy sndcpyの音声ミラーリングを一度解除し、手動で再接続・有効化
Config scrsndcpyの詳細な設定項目を開く
Screenshot scrsndcpyで接続したデバイスのスクリーンショットを取得
画像はデバイスの解像度そのまま、scrsndcpy内のScreenshotフォルダに保存される
Native resolution Configで指定した最大サイズ(解像度)を無視して、デバイスのネイティブ解像度で出力
About scrsndcpyについて
右のVolバー sndcpy方式でミラーリングした音声のボリューム調整バー
下部のログ 接続内容やエラー、スクリーンショット時のファイル名などのログ表示
項目 内容
起動時に
Screen Sound Copyを実行
scrsndcpyの起動直後、自動的にScreen Sound Copyを実行
※Android11以降で自動ログインパスワードを使用(動作)可
デバイスへ
Wi-Fi経由での接続を行う
以前のscrcpyで諸々設定が必要だったWi-FI経由での接続を、scrsndcpyが簡単に行ってくれる機能
スリープからの復帰時に
自動的に再接続
復帰時に自動的にデバイスへ再接続を行う(恐らくPC側での設定)
最大サイズ scrcpyでミラーリングするサイズ(解像度)を0~10000の間で指定
最大FPS scrcpyでミラーリングする画面のフレームレートを0~120の間で指定
ビットレート scrcpyでミラーリングする映像のビットレート(ざっくり画質)を0~50の間で指定
※(1Mbps=1000Kbps)
再生を遅らせるフレーム数 0~100の間で再生フレームを遅らせる
ビデオバッファ 0~1000の間でビデオバッファを指定
※(1000ms=1秒)
ミラーリング時に画面をOFF scrsndcpyでのミラーリング時に、接続したデバイス側の画面をOFFにする
画面のリサイズを禁止 ミラーリングした画面のリサイズを無効化し、ウィンドウサイズを固定
デバイス側で物理的な
HIDキーボードをシミュレート
PC側に接続しているキーボードを、scrsndcpyでミラーリングしたデバイス上でも動作させる機能
※(Android側の言語と入力→物理キーボードでscrcpyのレイアウト設定が必要)
音声の出力方法 scrcpy内蔵方式:scrcpy(v2.0以降)の単体で動作する方式で音声をミラーリング
sndcpyを別途実行:従来通り、sndcpyで接続してデバイスの音声をミラーリング

※(内蔵方式は画面ロック解除状態のAndroid 11以上のみ、sndcpyの場合はAndroid 10も対応)
バッファサイズの倍数 1~10の間で音声バッファサイズの倍数を指定
バッファの最大サンプル数 0~48000の間でバッファの最大サンプル数を指定
ミラーリング時に
音声をミュートする
ミラーリングしたデバイス側の音声を、ミラーリングする際にミュート状態にする
toggle muteで状態の反転 toggle muteのミュートをデバイスから、PC音声⇔Android音声のミュート反転に変更
(オススメな設定は画像通りです)

使ってみる

使ってみる…というより、(使って)既に気に入っています。

Android関連の記事等を作成する際に、端末のスクリーンショットや画面録画データが必要になったら、大体はscrsndcpyでミラーリングした画面をOBSやRaptureおにぎりでキャプチャーして記事に利用してます。

Configから解像度やビットレートが簡単に指定・変更できるので、差は微妙なものの1080pで30MbpsもあればWi-Fi経由でもノイズや画質は気にならないです。

ビットレート:左側1Mbps/右側50Mbsp(200%拡大)

USB/Wi-Fi接続どちらも、画面・音声の遅延はそんなに気にならない程度で収まっていて、ミラーリングと実機を同時に比べればほんの僅かに端末から遅れているといった感じ。録画や遠隔からの簡単な操作であれば十分です。

その他

トラブルシューティング的なものと余談。

scrcpy(とscrsndcpy)は若干Android OSを選ぶのか、独自UIになる(AOSPから離れる)ほど特定の機能が動作しない場合があるかもしれません。

とりあえず、今まで色々試した感じだとAOSP系(Pixel/Motorola/カスタムROM等)は全く問題無く、中華もOPPO系やvivo含め大体の独自UIで問題は生じ無かったです。

例外としてMIUI(Xiaomi HyperOS)だけ、デフォルトではミラーリング画面をマウスで操作出来なかったり、sndcpyでの音声ミラーリングが上手く行かなかったです。

SiM挿入+Miアカウント→USBデバッグ(セキュリティ) or euROM導入なら操作可、音声ミラーリングはscrcpy(v2.0以降)の内蔵式であれば出力可能でした。(古いVer・sndcpyだと結構エラーを吐く)

Xiaomiに限らずscrcpy(とscrsndcpy)で音が出ないって場合は、Android 12以上で内蔵式に変更すると良いかもしれません。(難点は内蔵式だと相性が出にくい代わりに、sndcpy比で音が小さい点)

ついでにscrsndcpyは、adb関連を酷使すると固まることが稀によくあるので(特にscrcpy+sndcpy時)、adb含めてタスクを終了すると大体何とかなります。

(中身は同じなので)scrcpyのショートカットもそのまま使用可能です。例として”Ctrl+I”ならscrcpyの動作している内部FPSを確認できます。ミラーリング画面≒Android画面なので、間接的にフレームレートを見れます。

ただし…scrcpy+FPS表示ツールでの値を、Androidのゲーム検証には絶対に使わないで下さい。昔は記事にした&使ってた時期もあり、大手メディアっぽいところも(何故か)使ってるっぽいですが、正確性に欠けるのでNGです。

読む  透過ウィジェット化して置ける、Android電卓アプリ「シンプル電卓」