Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ScrcpyでAndroid画面転送&操作

 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
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. 要件 Android Android 5.0+ オーディオ転送はAndroid 11+ USBデバッグモード有効 Linux Scrcpy導入 USB開放(USBGuard等利用時)

    → udev rule設定 USBGuard でUSB デバイスを保護(2023年版) Android Debug Bridge (adb) 5
  2. 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
  3. 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
  4. plugdev グループへの登録 1 実行ユーザが plugdev グループに存在しない場合 2 plugdev グループに登録する 3

    確認 $ id | grep -o \(plugdev\) $ sudo usermod -aG plugdev $LOGNAME $ id | grep -o \(plugdev\) (plugdev) 1 2 3 12
  5. 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
  6. 16

  7. 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
  8. 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
  9. 19

  10. Scrcpy v2.0より前 3.5mmオーディオジャック Bluetooth A2DP(少し遅延あり) Scrcpyと (Android 10+)併用 ( Scrcpy

    + sndcpy + adb + Qt + α) (キーマッピングやグループコントロールも) sndcpy QtScrcpy 24
  11. 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
  12. 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
  13. 録画  コンテナは mkv/mp4 に対応 $ scrcpy --record=file.mp4 $ scrcpy

    -r file.mkv $ scrcpy --no-audio --record=file.mp4 $ scrcpy --record=file --record-format=mkv 32
  14. 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
  15. 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
  16. 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