中の人(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方式でミラーリングした音声のボリューム調整バー |
下部のログ | 接続内容やエラー、スクリーンショット時のファイル名などのログ表示 |
Config
項目 | 内容 |
起動時に 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経由でもノイズや画質は気にならないです。
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です。