Share
Embed
ScrcpyでAndroid画面転送&操作
発表::
鹿児島Linux勉強会 2023.05(オンライン開催) https://kagolug.connpass.com/event/282643/
source::
https://gitlab.com/matoken/kagolug-2023.05/-/blob/main/slide/slide.adoc
Kenichiro MATOHARA
May 21, 2023
Transcript
41 slides
-
Scrcpy USBやネットワーク経由でAndroid 5+端末の画面(とv2.0からオ ーティオも!)を転送して操作ができる Linux/Windows/macOSに対応 c製,Apache-2.0 license Genymobile/scrcpy: Display and
control your Android device https://github.com/Genymobile/scrcpy/ pronounced "screen copy" 3 -
要件 Android Android 5.0+ オーディオ転送はAndroid 11+ USBデバッグモード有効 Linux Scrcpy導入 USB開放(USBGuard等利用時)
→ udev rule設定 USBGuard でUSB デバイスを保護(2023年版) Android Debug Bridge (adb) 5 -
Scrcpy導入(snap) snap版ScrcpyでV4L2を利用したい場合そのままではエラー となる. snapの設定でカメラデバイスを許可する必要がある $ sudo apt install snapd
$ sudo snap install core $ sudo snap install scrcpy $ /bin/scrcpy --v4l2-sink /dev/video8 /bin/scrcpy: unrecognized option '--v4l2-sink' $ snap connect scrcpy:camera 9 -
Scrcpy導入(Debian & source) uninstall $ sudo apt install ffmpeg
libsdl2-2.0-0 adb wget \ gcc git pkg-config meson ninja-build libsdl2-dev \ libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \ libswresample-dev libusb-1.0-0 libusb-1.0-0-dev $ git clone https://github.com/Genymobile/scrcpy $ cd scrcpy $ ./install_release.sh $ which scrcpy /usr/local/bin/scrcpy $ sudo ninja -Cbuild-auto uninstall 10 -
plugdev グループへの登録 1 実行ユーザが plugdev グループに存在しない場合 2 plugdev グループに登録する 3
確認 $ id | grep -o \(plugdev\) $ sudo usermod -aG plugdev $LOGNAME $ id | grep -o \(plugdev\) (plugdev) 1 2 3 12 -
Android udev roule設定 接続したいAndroidの情報をudevに登録を行う. /etc/udev/rules.d/51-android.rules の ATTR{idVendor}=="18d1" ATTR{idProduct}=="4ee2" のIDを 自分の端末の
USB PID/VID に書き換える. VID/PID はlsusb コマンド等で確認できる. $ tail -1 /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="18d1" ATTR{idProduct}=="4ee2", MODE="0660", GROUP="plugdev" $ sudo udevadm control --reload $ lsusb | grep -e Google -e Qualcom Bus 001 Device 040: ID 18d1:4ee2 Google Inc. Nexus/Pixel Device (MTP + debug) 13 -
Android接続タイプによりUSB VID/PIDが変化するので注意 USB の使用+USBデバッグ VID:PID ファイル転送 18d1:4ee2 USBテザリング 05c6:9024 MIDI
18d1:4ee9 PTP 18d1:4ee6 充電 18d1:4ee7 14 -
adbコマンドでデバイスが認識で きるか確認 失敗例 $ adb kill-server $ adb devices *
daemon not running; starting now at tcp:5037 * daemon started successfully List of devices attached cfc15fe5 device $ adb devices List of devices attached $ adb devices List of devices attached cfc15fe5 unauthorized 17 -
Scrcpy起動 Android端末USB接続状態で起動 $ scrcpy scrcpy 2.0 <https://github.com/Genymobile/scrcpy> /usr/local/share/scrcpy/scrcpy-server: 1 file
pushed, 0 skipped. 1.3 MB/s (52867 bytes in 0.03 [server] INFO: Device: TINNO P780 (Android 11) INFO: Renderer: opengl INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 22.3.6 INFO: Trilinear filtering enabled INFO: Initial texture: 720x1520 18 -
よく使う起動オプション 1 PCのキー入力をHIDキーボードとして認識 2 Androidスクリーンoff 3 AndroidをScrcpy利用時に起こし続ける $ scrcpy --hid-keyboard
\ --turn-screen-off \ --stay-awake 1 2 3 20 -
--crop=width:height:x:y 必要な部分を切り出し --max-size リサイズ --record=filename 録画 --rotation 回転 --v4l2-sink=/dev/videoN V4L2デバイスに転送(OBS
Studio で配信など) その他 $ scrcpy --help | $PAGER 21 -
指定デバイスに接続 PCに複数のAndroidデバイスが接続されているときにデバイスの serialを指定して繋ぎたい端末に接続する.serialは adb devices コマンドなどで確認. $ adb devices List
of devices attached ZY22DZ5M6C device cfc15fe5 device $ scrcpy --serial=ZY22DZ5M6C 22 -
Scrcpy v2.0より前 3.5mmオーディオジャック Bluetooth A2DP(少し遅延あり) Scrcpyと (Android 10+)併用 ( Scrcpy
+ sndcpy + adb + Qt + α) (キーマッピングやグループコントロールも) sndcpy QtScrcpy 24 -
Scrcpy v2.0 と Androidの10以前 Android 10以前 + Scrcpy v2.0でのオーディオエラー
Scrcpy v2.0では利用不可 [server] INFO: Device: TINNO C330 (Android 9) [server] WARN: Audio disabled: it is not supported before Android 11 26 -
Scrcpy v2.0 と Android 11 Android 11画面ロック状態 + Scrcpy v2.0でのオーディオエラー
画面アンロック状態でScrcpyを起動すればOK [server] ERROR: Failed to start audio capture [server] ERROR: On Android 11, it is only possible to capture in foreground, make sure that th WARN: Demuxer 'audio': stream explicitly disabled by the device 27 -
バージョンによるオーディオ対 応 Android Scrcpy v2.0 sndcpy Android 12+ o o
Android 11 △[1] o Android 10 x o Android 9 x x 28 -
APKファイルドロップ インストール APK以外のファイルドロップ /sdcard/Download/ へ転送 MODは左Alt or 左Super, --shortcut-mod
で変更可能 https://github.com/Genymobile/scrcpy/blob/master/doc/sh 31 -
録画 コンテナは mkv/mp4 に対応 $ scrcpy --record=file.mp4 $ scrcpy
-r file.mkv $ scrcpy --no-audio --record=file.mp4 $ scrcpy --record=file --record-format=mkv 32 -
V4L2 V4L2デバイスにAndroidの画面を転送.WebCamと同じように利用 できる. 前準備 上で作成した /dev/video9 にScrcpyを流し込む https://wiki.matoken.org/linux/virtual_camera? #v4l2loopback $
sudo apt install v4l2loopback-dkms v4l2loopback-utils $ echo 'options v4l2loopback exclusive_caps=1 video_nr=9 card_label="VCamera1' \ | sudo tee /etc/modprobe.d/v4l2loopback.conf $ sudo modprobe v4l2loopback $ scrcpy --v4l2-sink /dev/video9 33 -
SEE ALSO Vysor (未検証) > Vysor puts your iOS or
Android on your desktop. Freemium, Proprietary KDE Connect 電話の通知をPCに転送してPCでメッセージに返信したり,電話を デスクトップのリモコンとして利用したり.Android, Brackberry に対応,iOSも対応予定 https://www.vysor.io/ https://kdeconnect.kde.org/ 37 -
blog等 scrcpy – matoken’s meme PCでAndroid端末の画面転送と操作が出来るscrcpy – matoken’s meme scrcpyを使ってAndroidスマートフォンの動画をPCで視聴する
– matoken’s meme snap版scrcpyでAndroidデバイス画面をビデオデバイスに出力 – matoken’s meme Andorid の画面をPC に転送して操作も出来るScrcpy 2.0 で オーディオ転送にも対応 – matoken’s meme https://wiki.matoken.org/linux/android/scrcpy 39 -
奥付 発表 2023-05- 21(sun) 発表者 利用ソフトウェア ライセンス 鹿児島Linux勉強会 2023.05(オンライン開催) Kenichiro
Matohara(matoken) Asciidoctor Reveal.js CC BY 4.0 40