scrcpy(スクリーンコピー)は、USBまたはWi-Fiでつないだ Android 端末の画面と音声をPCに映し、PCのキーボードとマウスで操作するオープンソースのツールです。2026年10月15日時点の最新版は 5.0.1(10月8日公開)で、10月5日公開の5.0でPC側のハードウェアデコードが既定になりました。この記事では5.0の変更点、OS別のインストール手順、基本のコマンドとファイル転送、GUIで使える派生ツール、安全に使うための配布元と署名の確認、接続できないときの対処を、公式リポジトリの記述に沿って整理します。
まとめ:scrcpy 5.0の要点と導入時の判断
- 最新版は5.0.1(2026年10月8日)。5.0でPC側のハードウェアデコードが既定になり、公式発表では対応するGPUとドライバがある環境でCPU使用率が約10分の1に下がります。
- Android 5.0(API 21)以上で動き、端末にアプリを入れる必要はありません。音声転送はAndroid 11以上、カメラのミラーリングはAndroid 12以上です。
- Windowsは公式zipの展開、macOSは
brew install scrcpyが早道です。2026年10月15日時点でWinGetとChocolateyは4.1のままなので、5.0を使うならzipかScoopを選びます。 - 公式の配布元はGitHubの Genymobile/scrcpy だけです。名前に scrcpy を含む別サイトやストアアプリからは入れず、SHA-256と署名で照合します。
- 本家はコマンドライン中心です。ボタンで操作したいならGUI版のEscrcpyかQtScrcpyを使えます。ただしEscrcpyが同梱する本家は4.1までで、5.0のハードウェアデコードはまだ入っていません(QtScrcpyは別実装で、macOS向けのハードウェアデコードを独自に持ちます)。iPhoneとUSBデバッグを有効にできない管理端末には使えません。
scrcpyの仕組みと動作要件
scrcpy はPC側のクライアントと、端末に一時的に送り込むサーバーの2つで動きます。起動するとクライアントが adb でサーバー(scrcpy-server.jar)を端末の /data/local/tmp に転送し、app_process で実行します。端末側でエンコードした映像をPCが受け取って描画し、PCの入力を端末へ送り返す流れです。端末にアプリは残らず、アカウント登録・広告・インターネット接続も要りません。ライセンスは Apache License 2.0 で、商用の現場でも無償で使えます。
公式READMEが掲げる性能の目安は、30〜120fps(端末による)、1920×1080以上の画質、35〜70msの遅延、約1秒で最初の画面が出る起動時間です。
| 機能 | 必要なAndroidの版 |
|---|---|
| 画面ミラーリングと操作 | Android 5.0(API 21)以上 |
| 音声転送 | Android 11(API 30)以上 |
| カメラのミラーリング | Android 12以上 |
| OTGモード(映さず操作だけ) | USBデバッグ不要 |
Android 11で音声を転送する場合は、起動時に端末の画面ロックを解除しておく必要があります。Android 10以下では音声を取得できず、自動で無効になります。
scrcpy 5.0の変更点:PC側のハードウェアデコード
5.0の目玉は、端末から届く映像をPCのGPUでデコードするようになったことです。5.0のリリースノートは「デコードが速くなり、CPU使用率は10分の1に下がり、消費電力も減る」と説明しています。効果の大きさはPCのGPUとドライバが端末の映像形式(H.264・H.265・AV1など)をデコードできるかで決まり、扱えない環境では従来どおりソフトウェアデコードで動きます。
hwdecオプションの指定値とOS別のデコーダ
ハードウェアデコードは既定で有効です。明示するときは --hwdec を使います。
scrcpy --hwdec=auto # 既定。使えなければソフトウェアデコードへ切り替える
scrcpy --hwdec=disabled # ソフトウェアデコードに固定
scrcpy --hwdec=vaapi # Linux(VA-API)
scrcpy --hwdec=d3d11va # Windows(D3D11VA)
scrcpy --hwdec=videotoolbox # macOS(VideoToolbox)
auto はデコーダが映像を扱えないときにソフトウェアへ戻りますが、vaapi などを名指しした場合は戻らずに失敗します。Linux では GPU の VA-API ドライバ(Debian/Ubuntuなら va-driver-all)が必要で、映像再生を無効にしているときと V4L2 出力を使うときはハードウェアデコードが働きません。表示が乱れたら、まず --hwdec=disabled で切り分けます。
5.0のWindows ARM64対応・音声取得・入力修正
- Windows ARM64 版の配布を開始(
scrcpy-winarm64-v5.0.zip) - 音声の再生キャプチャモードで、すべての用途(usage)の音を取り込むように変更
- OTGモードで環境変数
ANDROID_SERIALを使うように変更 - 一部のキーボード配列でキー入力が落ちる問題と、AltGr の転送の不具合を修正
- 同梱の adb を 37.0.1、FFmpeg を 9.0.2、SDL を 3.4.18、dav1d を 1.5.4 に更新
同梱の FFmpeg は9.0系に上がりました。FFmpeg 9.0 自体の変更点はFFmpegの最新バージョンは9.0|8.1・8.0との違いとインストール・確認方法【2026年9月】で整理しています。
5.0.1で直ったハードウェアデコードの不具合
3日後の5.0.1は、5.0で入ったハードウェアデコードの修正だけを含むパッチです。NVIDIA の VA-API ドライバを使う Linux、ドライバによっては H.265 を扱えなかった Windows、GPU を複数積んだ Linux(描画とデコードで別の GPU が選ばれる)、Windows と macOS の OpenGL レンダラーでの不具合が直っています。5.0を入れて映像が出ない、色がおかしいといった症状が出ていたら、まず5.0.1に上げてください。
scrcpyのバージョン履歴:3.3.4から5.0.1まで
直近の版と主な変更です。日付は GitHub Releases の公開日(UTC)です。
| 版 | 公開日 | 主な変更 |
|---|---|---|
| 5.0.1 | 2026-10-08 | ハードウェアデコードの修正 |
| 5.0 | 2026-10-05 | ハードウェアデコード、Windows ARM64版 |
| 4.1 | 2026-07-12 | VP8・VP9対応、エンコーダ制約の扱いを改善 |
| 4.0 | 2026-05-12 | SDL3へ移行、フレックスディスプレイ、カメラのライトとズーム |
| 3.3.4 | 2025-12-17 | 3.x系の最終版 |
4.0:SDL3への移行とフレックスディスプレイ
4.0は描画ライブラリを SDL2 から SDL3 へ移した大きな版です。新しい仮想ディスプレイをPCのウィンドウに合わせて伸縮させる「フレックスディスプレイ」(--flex-display、短縮形 -x)が入り、仮想画面の解像度をウィンドウのサイズに追従させられるようになりました。これとは別に、通常のミラーリングではウィンドウの縦横比を保つリサイズが既定になりました(以前の黒帯を出す挙動は --no-window-aspect-ratio-lock で戻せます)。
scrcpy --new-display=1024x768/160 --start-app=com.android.settings -x
scrcpy --video-source=camera --camera-torch --camera-zoom=1.5
ほかに、画面消灯を防ぐ --keep-active、背景色を変える --background-color、F11 でのフルスクリーン切り替え、MOD+q での終了、切断時に2秒間アイコンを出してから閉じる挙動が加わりました。MOD は既定で左Altか左Super(WindowsキーやCmdキー)です。
4.1:VP8・VP9対応とエンコーダ制約の回避
4.0のフレックスディスプレイは映像エンコーダのサイズ制約を守る必要があり、端末が誤った制約を報告すると起動に失敗する退行が出ました。4.1では制約を最初は無視して失敗したときだけ適用する方式に変え、制約を完全に無視する --ignore-video-encoder-constraints を追加しています。H.264・H.265・AV1 のエンコーダを持たない端末向けに、--video-codec=vp8 と vp9 も選べるようになりました。4.0で仮想ディスプレイが起動しなかった端末は、4.1以降で直っている可能性があります。
OS別のインストール手順と配布経路ごとの版遅れ
scrcpy は公式リリースのほか、各OSのパッケージマネージャーからも入れられます。ただしパッケージは有志が更新するため、公式から遅れます。2026年10月15日に各リポジトリで確かめた版は次のとおりです(10月8日の確認から変化はありません)。
| 経路 | コマンド | 2026-10-15時点の版 |
|---|---|---|
| 公式リリース(Win・Mac・Linux) | zip/tar.gzを展開 | 5.0.1 |
| Homebrew(macOS) | brew install scrcpy |
5.0.1 |
| Scoop(Windows) | scoop install scrcpy |
5.0.1 |
| WinGet(Windows) | winget install --exact Genymobile.scrcpy |
4.1 |
| Chocolatey(Windows) | choco install scrcpy |
4.1.0 |
| apt(Debian/Ubuntu)・Snap | 非推奨 | 公式が「古い版」と明記 |
WinGet と Chocolatey で入れた環境では、5.0のハードウェアデコードはまだ使えません。入れたあとは scrcpy -v(--version)で実際の版を確かめてください。
Windowsでの導入:zip展開とWinGet
GitHub の公式リリースから scrcpy-win64-v5.0.1.zip(64ビット)を落として展開します。32ビット版と ARM64 版もあります。zip には adb.exe が同梱されているので、別途 Android SDK を入れる必要はありません。scrcpy はコマンドラインのアプリなので、展開先の open_a_terminal_here.bat をダブルクリックしてターミナルを開き、scrcpy と打って起動します。
WinGet で入れると adb などの依存も一緒に入ります。Chocolatey 4.1.0 も adb を同梱します(パッケージパラメーター ExcludeADB を指定したときだけ除かれます)。Scoop は adb を入れないので、未導入なら scoop install adb も実行します。
ターミナルを開かずに起動するだけなら、同じフォルダの scrcpy-noconsole.vbs をダブルクリックします(エラーは表示されません)。毎回同じオプションで起動するなら、コマンドを書いた myscrcpy.bat を作ってダブルクリックで起動できます。失敗したときにウィンドウがすぐ閉じて原因が読めない場合は、--pause-on-exit=if-error を付けるとエラー時だけコンソールが残ります。使えるオプションの一覧は scrcpy --help で表示されます。
macOSでの導入:Homebrewとadb
brew install scrcpy
brew install --cask android-platform-tools # adbが無い場合
Homebrew 版は adb を含まないため、PATH に adb が無ければ2行目も実行します。MacPorts(sudo port install scrcpy)なら adb も一緒に用意されます。Apple Silicon(aarch64)とIntel(x86_64)向けの静的ビルドも公式リリースにあります。
Linuxでの導入:静的ビルドとインストールスクリプト
公式リリースの scrcpy-linux-x86_64-v5.0.1.tar.gz を展開すれば動きます。公式ドキュメントは Debian/Ubuntu の apt install scrcpy と Snap を「古い版」として打ち消し線で示しているので、最新版が要るなら静的ビルドかリポジトリ同梱の install_release.sh を使います。Arch Linux(pacman -S scrcpy)、Fedora(COPR)、Gentoo のパッケージもあります。5.0でハードウェアデコードを使うなら、VA-API ドライバも入れておきます。
初回接続と基本の使い方
USBデバッグの有効化とXiaomi端末の追加設定
端末の「設定」で開発者向けオプションを表示させ、USBデバッグを有効にしてからUSBでつなぎます。初回は端末に「USBデバッグを許可しますか?」が出るので許可します。PCから adb devices を打って端末が device と表示されれば準備完了です。
Xiaomi などの一部端末では、映像は出るのにマウスとキーボードが効かず、次のエラーが出ることがあります。
Injecting input events requires the caller (or the source of the instrumentation, if any) to have the INJECT_EVENTS permission.
この場合は開発者向けオプションの「USBデバッグ(セキュリティ設定)」を別途有効にし、端末を一度再起動します。通常の「USBデバッグ」とは別の項目です。
Wi-Fi(TCP/IP)での接続
PCと端末が同じネットワークにあれば無線でも使えます。いったんUSBでつないで次を実行すると、scrcpy が端末のIPアドレスを調べ、adb の TCP/IP モードを有効にして接続まで済ませます。
scrcpy --tcpip # USB接続中に実行(自動設定)
scrcpy --tcpip=192.168.1.1 # 待ち受け済みの端末へ(既定ポート5555)
scrcpy --tcpip=+192.168.1.1 # 先頭の+で再接続を強制
Android 11以降は「ワイヤレスデバッグ」でペアリングすれば、最初からUSBを使わずに adb 接続できます。USBとWi-Fiの両方でつながっているときは、-d(USB側)か -e(TCP/IP側)、または -s シリアル番号 で対象を選びます。
ファイル転送とAPKのインストール:ドラッグ&ドロップ
scrcpy のウィンドウにPCのファイルをドラッグ&ドロップすると、端末へ送れます。拡張子が .apk のファイルはインストールされ、それ以外のファイルは端末の /sdcard/Download/ にコピーされます。画面上の表示は出ず、結果はコンソールにログとして出ます(公式の操作ドキュメント)。
scrcpy --push-target=/sdcard/Movies/ # 送り先のフォルダを変える
送り先は起動時のオプションでしか変えられません。端末からPCへファイルを取り出す機能は scrcpy には無いので、その方向は adb pull /sdcard/DCIM/Camera/ のように adb で行います。
よく使うオプションとショートカット
| オプション | 働き |
|---|---|
-m1024 |
長辺を1024pxに制限して軽くする |
-b16M |
ビットレートを16Mbpsに(既定8Mbps) |
--video-codec=h265 |
H.265で送る(既定H.264) |
--max-fps=60 |
フレームレートの上限 |
--no-audio |
音声転送を止める |
-r file.mp4 |
画面を録画する |
-S |
端末の画面を消したまま操作する |
-w |
給電中は端末をスリープさせない |
--keep-active |
給電の有無にかかわらず画面消灯を防ぐ |
--new-display=1920x1080 |
端末とは別の仮想画面を作って映す |
仮想ディスプレイは --new-display=1920x1080/240 のように末尾にDPIを付けられ、--start-app=org.videolan.vlc と組み合わせると特定アプリだけを別画面で開けます。DPIを省くと端末本来の密度が使われます。マウスの右クリックは「戻る」(画面が消えているときは点灯)、中クリックは「ホーム」です。フルスクリーンの切り替えは MOD+f(既定は左Altか左Super+f)か F11 です。
QAで実機の画面を共有しながら自動テストを流す場合、テスト自動化ツール側の準備はAppium Desktopは終了|Appium 3時代のInspector移行とモバイルテスト自動化で扱っています。実機検証を含むアプリの開発そのものを外部に任せたい場合は、一創のAndroidアプリ開発で相談を受けています。
scrcpyの安全性:公式配布元と署名の検証
scrcpy 自体は GitHub で公開されたオープンソースで、端末に常駐アプリを残しません。安全対策では、配布物の真正性に加え、デバッグ接続を許可するPCと、画面共有中に映る個人情報にも注意が必要です。
- 配布元:README の冒頭に「この GitHub リポジトリが唯一の公式な配布元で、名前に scrcpy を含むサイトでも他所からは落とさないこと」と警告があります。Googleの検索結果やAI Overviewに出る scrcpy.org・scrcpy.dev のような scrcpy を名乗るドメインも、Google Play の「Scrcpy」を名乗るアプリも、この警告に照らせば公式の配布元ではありません。
- 改ざんの確認:各リリースには
SHA256SUMS.txtと、その署名SHA256SUMS.txt.ascが付きます。作者 Romain Vimont 氏の GPG 鍵で署名を確かめてから、ファイルのハッシュを照合します。下の例は gpg と shasum を導入した環境向けです(手順の原文は公式のverify-release.md)。SHA256SUMS.txtとSHA256SUMS.txt.ascを落としたファイルと同じフォルダに保存し、取得したファイルの検証結果がOKになることを確認します。未取得の別OS向けファイルには読み取りエラーが出ます。公式のdoc/windows.mdにも各zipのSHA-256が載っています。 - USBデバッグ:有効なあいだは、許可したPCから端末を操作できます。使い終わったらUSBデバッグを切るか、開発者向けオプションの「USBデバッグ承認の取り消し」で許可済みのPCを消します。
- Wi-Fi接続のあと:
adb disconnectはPC側の接続を切るだけで、端末側のTCP待ち受けは停止しません。USB接続からTCPモードを有効にした場合は、切断前に対象端末を指定してadb -s IPアドレス:5555 usbを実行し、USBモードへ戻します。Androidの「ワイヤレスデバッグ」を使った場合は、端末設定でそれをオフにします。社外のネットワークでは TCP/IP 接続を使わないのが無難です。
gpg --keyserver hkps://keys.openpgp.org --recv-keys 456958E85A185DD5C2D1E4E80C822B298461FA03
gpg --verify SHA256SUMS.txt.asc
shasum -a 256 -c SHA256SUMS.txt # リリースファイルと同じフォルダで実行
サーバーを置く /data/local/tmp は shell ユーザーが読み書きでき、ほかのアプリからは書き込めない場所です。開発者向けドキュメントは、悪意あるアプリが実行直前にサーバーを差し替えられないようにこの場所を選んだと説明しています。
接続できない・映像が重いときの対処
scrcpy は adb で端末と接続を始めるため、多くの失敗は adb の段階で起きています。公式FAQに載っているエラーと対処を表にしました。
| 表示されるエラー | 原因と対処 |
|---|---|
| Could not find any ADB device | USBデバッグ無効かドライバ不足 |
| Device is unauthorized | 端末側の許可ダイアログを承認 |
| Multiple (2) ADB devices | -s・-d・-eで選ぶ |
| adb server version (41) doesn’t match | 別ツールのadbと衝突 |
| INJECT_EVENTS permission | USBデバッグ(セキュリティ設定)を有効化 |
| Device disconnected | ケーブルかUSBポートを替える |
adb の版の衝突は、Android Studio や別のミラーリングツールが自前の adb を起動しているときに起きます。どれか1つの adb にそろえるか、環境変数 ADB に使う adb のパスを指定します。Windows で端末が認識されない場合は、メーカーのUSBドライバ(Google製端末なら Google USB Driver)を入れます。adb まわりのコマンドを広く扱う新しい公式ツールについてはAndroid CLIとは|1.0のインストール・コマンド一覧・エージェント連携にまとめています。
もう1つの落とし穴は、PC側の scrcpy と端末に送るサーバーの版ずれです。サーバーはクライアントと完全に同じ版でないと起動に失敗します。ディストリビューションのパッケージや手作業でサーバーだけ差し替えた環境でエラーが出たら、公式リリースのセットで入れ直してください。
映像がカクつくときは、次の候補を一つずつ試し、フレームレートを比較します。改善する項目は、PCのデコード負荷・端末のエンコード負荷・通信状態によって異なります。
- 5.0.1へ上げて、ハードウェアデコードを有効にする(既定)
-m1024で解像度を下げる(公式READMEが最初に挙げる手段)--video-codec=h265に切り替えるか、-bでビットレートを調整する- Wi-Fi接続ならUSB接続に戻す
コマンドに --print-fps を付けると実際のフレームレートがコンソールに出るので、変更の効果を数字で比べられます。
GUIで使いたい場合:EscrcpyとQtScrcpyの違い
本家の scrcpy には設定画面が無く、オプションはコマンドで渡します。ボタンや画面で操作したい場合は、scrcpy をもとにした有志のGUIツールが候補になります。代表的な2つを、2026年10月15日に GitHub で確かめた内容で比べます。
| 項目 | Escrcpy | QtScrcpy |
|---|---|---|
| 最新版 | 3.3.1(2026-10-10) | 4.2.1(2026-09-19) |
| scrcpyとの関係 | 本家を同梱(最新の取り込みは4.1) | Qtで再実装 |
| 作り | Electron | Qt・C++ |
| ライセンス | Apache-2.0(3.3.1の既存機能は無料) | Apache-2.0 |
| 得意なこと | 複数端末の一括操作・無線接続の自動検出 | キー割り当てのカスタマイズ |
Escrcpy は本家の scrcpy をそのまま同梱して画面から操作するツールです。変更履歴では、3.0.0(2026年7月30日)で同梱の scrcpy を4.1に上げたのが最新の取り込みで、5.0はまだ入っていません。README は一部の高度な機能を非公開の拡張 EscrcpyX で有料提供すると明記しており、3.3.1のリリースノートは4.0.0以降で新しい課金体系に移ると予告しています(3.3.1の既存機能は無料のまま使えると説明)。社内で配る場合は、次の版の利用条件を確かめてから入れてください。
QtScrcpy は scrcpy の設計をもとに、描画を SDL から Qt と OpenGL に置き換えて作り直した別実装です。README の比較表によれば、本家に無いキーマッピングのカスタマイズを持ち、ゲームの操作をキーボードに割り当てる用途で使われています。なお、本家にも Ctrl を押しながらのドラッグでピンチ操作と回転、Ctrl+Shift で2本指スライドを送る機能があります。作者も更新周期も本家とは別なので、本家の新しいオプションがそのまま使えるとは限りません。ハードウェアデコードも本家5.0の --hwdec とは別に、4.1.0(2026年8月9日)で macOS の Metal を使うデコーダを独自に追加しています。
選び方ははっきりしています。5.0のハードウェアデコードでCPU負荷を下げたいなら本家、複数台の検証端末を1画面で並べて操作したいならEscrcpy、ゲームのキー割り当てが目的ならQtScrcpyです。どちらのGUI版も本家と同じく、配布元は各 GitHub リポジトリのリリースページに限って入れます。
scrcpyを選ばないほうがよい場面
scrcpy は Android 専用です。iPhone や iPad の画面をPCに映す用途には使えません。Windows や macOS の画面をスマホに映す逆方向の用途にも使えません。scrcpy が送るのは Android 端末からPCへの映像だけです。
会社支給の端末でMDMがUSBデバッグを禁止している場合も、ミラーリングはできません(OTGモードでキーボードとマウスの操作だけを渡すことは可能です)。テスト用の実機をクラウドで借りる方法もあり、Firebase Test Labとは|実機と仮想端末の課金単位とCI組み込みの設計【2026年8月時点】で費用の考え方を整理しています。
よくある質問
scrcpyの読み方は?
公式READMEに「screen copy」の略と書かれており、「スクリーンコピー」と読みます。国内では「スクリプシー」と呼ばれることもあります。
scrcpyは安全に使えますか?
GitHub の Genymobile/scrcpy から入れ、SHA-256と署名を照合すると、配布ファイルの改ざんや署名者を確認できます。ただし、これは脆弱性がないことや、接続先PCの安全性まで保証するものではありません。注意すべきは名前の似た非公式サイトやストアアプリと、使い終わったあとも開いたままのUSBデバッグです。
scrcpyの起動方法は?
Windows では公式zipを展開したフォルダの open_a_terminal_here.bat でターミナルを開いて scrcpy と打つか、scrcpy-noconsole.vbs をダブルクリックします。macOS と Linux ではターミナルで scrcpy を実行します。いずれも先に端末のUSBデバッグを有効にしてPCとつないでおきます。端末側にアプリを入れる必要はありません。
音声がPCから出ないのはなぜですか?
音声転送はAndroid 11以上が対象です。Android 10以下では自動で無効になります。Android 11では起動時に画面のロックを解除しておく必要があります。
iPhoneでも使えますか?
使えません。scrcpy は adb を通じて Android 端末を扱うツールで、iOS には対応していません。