Closed6

scrcpy導入備忘録

あーるあーる

scrcpyについて

scrcpyはオープンソースで開発が続けられているAndroid用ミラーリングツールの1つである。

https://github.com/Genymobile/scrcpy

現在も開発が盛んに続けられているOSSの1つで、簡単にAndroidをPCへミラーリングする際にVysorと並んで名前が挙がるツールである。

以前、Vysor備忘録としてVysorの環境構築を行ったが、併せて類似のツールであるscrcpyのセットアップを進めようと思う。

あーるあーる

検証環境

  • MacBook Pro(M1 2020)macOS Montrey 12.4
  • OPPO Reno A(Android バージョン9)
  • scrcpy v1.24
あーるあーる

インストール

MacではHomebrewを使用してコマンドラインから簡単にインストールできるようなのでbrewでインストールを進める。

Ubuntuなど他のOSでも多様なパッケージマネージャに対応しているようである。

scrcpy本体のインストール

$ brew install scrcpy

途中以下のようなメッセージが表示された。

At runtime, adb must be accessible from your PATH.

You can install adb from Homebrew Cask:
  brew install --cask android-platform-tools

どうやらadbからパスを通す必要があるらしい。

リポジトリのREADMEにもあるようにandroid-platform-toolsをインストールすることにする。

android-platform-toolsのインストール

オプション--caskを明示的につけてインストールを行う。

$ brew install --cask android-platform-tools

android-platform-tools was successfully installed!と表示され無事にインストールできた。

あーるあーる

実行

scrcpyと実行することでscrcpyが実行されるらしい。

$ scrcpy

scrcpy 1.24 <https://github.com/Genymobile/scrcpy>

起動したがここでAndroid端末がPCに接続されていないとadbが見つからないとのエラーメッセージが表示される。

「デバッグモード」を有効にした状態で端末を接続しもう一度コマンドを実行してみる。

$ scrcpy

/opt/homebrew/Cellar/scrcpy/1.24/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 75.5 MB/s (41159 bytes in 0.001s)

上記のメッセージが表示されたあとすぐにAndroid側の画面がPCへ出力された。

画面出力している画像

起動から1~2秒かからないうちに画面が出力されたことに驚いた。画質もVysorのフリープランよりいい気がする。

Vysorと同じくスマホ側、PC側両方から操作が可能となっている。画面の描画はわずかに遅延するがそこまで気になることが使える範囲だった。残像やちらつきもなく鮮明に表示されていて無料でここまでミラーリングできるのはすごいと感じた。

オプションも豊富に用意されており、scrcpy --helpで確認できる。

特にscrcpy --max-size 1024のように初期から画面サイズを指定して起動できるのが便利だと感じた。
ウインドウをマウスで毎回縮小する手間が減るだけでもかなり便利になる。初期からフルスクリーン表示などもオプションで簡単にできるのが便利。

オプション組み合わせることで常に画面最前面にウインドウを表示 & 画面サイズ固定のようなことも簡単に実現できる。

# 画面を最前面に固定し1024で出力する例
$ scrcpy --always-on-top -m 1024

最前面に配置したときの画像
iTerm2の手前に回り込む形で表示されていることがわかる

あーるあーる

ワイヤレス接続

有線でのミラーリングだけでもかなり便利なのだが 、scrcpyは完全ワイヤレスでのミラーリングにも対応する。VysorでのワイヤレスミラーリングはProプラン以上で使える機能だったので簡単に実現できるという意味ではscrcpyに軍配が上がりそうである。

方法は簡単でadb tcpip 5555と実行しTCP modeを有効にしてワイヤレス接続を行うというもの。
事前にAndroid端末側のIPアドレスを調べておく必要あり。

# TCP/IPを介したadbを有効化
$ adb tcpip 5555

restarting in TCP mode port: 5555

接続する際は端末の有線接続を解除し以下のコマンドを実行するだけでペアリングが完了する。

$ db connect Android端末側のIPアドレス:5555

この状態でscrcpyを実行することでワイヤレスでのミラーリングが実現できる。

ワイヤレスではあるが同じネットワーク内で動作させているということもあり大きな遅延は確認できなかった。画質も有線とほぼ変わらないように感じる。これは驚いた。

あーるあーる

所感

scrcpyを初めて触ったが使用方法とても簡単だった。環境さえ整えてしまえばscrcpyをターミナルから実行するだけで実現するという手軽さは唯一無二だと感じる。基本の操作がコマンドベースということもありオプションを探すのもいろんな発見がありとても楽しかった。

VysorだとProプラン以上でしか実現できなかった高画質ミラーリングとワイヤレスミラーリングを無料で実現できるという点ではかなり評価できると思う。Vysorの無料プランでのミラーリングの画質はお世辞にもいいとは言えなかったので画質がいいことの感動は大きかった。

懸念事項として音声のミラーリングはscrcpy単体では不可(外部ツールと組み合わせて実現可能な模様)であることを除けばかなり万能なツールだと感じる。

執筆時点2022年7月中旬時点でscrcpyのGitHubリポジトリのスター数は67,000を有に超えておりコミュニティの活気の良さを感じた。scrcpyはOSSということもあり、GUIを実現したものや音声出力を実現するものなどscrcpyをラップしたツールが多く存在するというのも人気の高さを象徴していると思う。

scrcpyはAndroidミラーリングを簡単に実現するという部分で優位性を感じているので他のエコシステムにもっと触れてみたいと感じた。

このスクラップは2022/07/14にクローズされました