Іноді може знадобитись вивести екран Android смартфону на екран компьютера. Наприклад це може буде потрібно для того відладки якогось Android застосунку, для презентації або просто в якості дзеркала. Це досить нетипове завдання, але існує декілька способів це зробити. Можна встановити одну із сторонніх программ на телефон, або ж скористатись інструментами розробника та утилітою scrcpy.
В цій статті буде розглянуто як користуватись scrcpy для того щоб вивести екран Android на компьютер. Дана інструкція орієнтована в першу чергу на Linux але більшість команд будуть працювати і в інших операційних системах, лише шляхи до файлів будуть відрізнятись.
Зміст
Що таке Scrcpy
Scrcpy це Open Source інструмент, який дозволяє дзеркалити відео та аудіо з Android смартфона на ПК використовуючи режим відладки по USB або WiFi. Програма встановлюється лише на ПК і не потребує додаткових застосунків на телефоні. Працює в Windows, Linux та MacOS. На стороні смартфона має бути Android 5 або вище.
Окрім зображення з екрана смартфона, тут можна отримати аудіо, відео з камери, віртуальні екрани, використовувати смартфон як вебкамеру (драйвер v4l2loopback в Linux), керувати смартфоном за допомогою мишки та клавіатури, копіювати текст з ПК на телефон та з телефона на ПК і тому подібне.
Як встановити Scrcpy
Для роботи програми вам знадобиться безпосередньо сама програма, а також adb для зв'язку з Android пристроєм. Програму можна встановити з офіційних репозиторіїв багатьох дистрибутивів. Але оскільки мова йде про Android, де нові версії інструментів виходять досить часто, то в репозиторіях буде часто застаріла версія.
Встановлення з репозиторіїв Ubuntu
Якщо ви користуєтесь Ubuntu, то ви можете встановити все необхідне виконавши команду:
sudo apt install scrcpy
Якщо ви плануєте підключати смартфон до компьютера по USB, то цього буде достатньо. Але якщо потрібно підключатись по WiFi, то вам знадобиться версія adb не нижче 37, яка в репозиторіях поки не доступна. Також для цієї функції потрібен Android 11+.
Встановлення за допомогою бінарних файлів
На сторінці програми в GitHub можна знайти архів програми для Windows, Linux та MacOS. При чому в архіві вже поставляється найсвіжіша версія adb, тож вам не треба буде завантажувати її окремо. На момент написання статті найсвіжіша версія scrcpy 4.1 і її можна завантажити виконавши таку команду:
wget https://github.com/Genymobile/scrcpy/releases/download/v4.1/scrcpy-linux-x86_64-v4.1.tar.gz
Далі залишається розпакувати архів та скопіювати виконувані файли в /usr/local/bin:
tar -xvzf scrcpy-linux-x86_64-v4.1.tar.gz -C ./
sudo cp ./scrcpy-linux-x86_64-v4.1/adb /usr/local/bin/adb
sudo cp ./scrcpy-linux-x86_64-v4.1/scrcpy /usr/local/bin/scrcpy
sudo cp ./scrcpy-linux-x86_64-v4.1/scrcpy-server /usr/local/bin/scrcpy-server
Після цього варто перевірити версії adb та scrcpy:
adb --version
scrcpy --version
Налаштування смартфона Android
Для роботи програми знадобляться параметри які доступні лише в режимі розробника Android. Якщо режим розробника у вас ще не активований, то необхідно відкрити налаштування, перейти в About Phone, знайти там Build Number та тапнути цей пункт 7 раз. Потрібно буде ввести свій пін код і після цього в налаштуваннях, в розділі System з'явиться пункт Developer Options:
Підключення Android по USB
Перед тим як почати, переконайтесь що смартфон та ПК підключені до однієї WiFi мережі. Відкрийте налаштування, потім System, потім Developer Options та знайдіть там та увімкніть USB Debugging:
Телефон може запитати підтвердженя, що ви впевнені, що цю функцію необхідно увімкнути. Після цього підключіть телефон до комп'ютера по USB та виконайте команду:
adb devices
На телефоні з'явиться запит на відладку, після підтвердження якого ваш смартфон з'явиться в списку пристроїв:
Якщо телефон підключити не вдається, спробуйте використати порт USB 2.0, та якщо використовували офіційні репозиторії для встановлення, то оновити версію adb до найсвіжішої.
Підключення Android по WiFi
Цей спосіб трохи складніший але більш зручний, оскільки не потрібно щоб телефон був підключений до ПК. Відкрийте налаштування, System -> Developer Options та увімкніть там Wireless Debugging. Та підвердіть що потрібно дозволити відладку по WiFi для цієї мережі:
Далі тапніть по Wireless Debugging щоб розкрити доступні опції. І там виберіть Pair Device with Pairing Code:
Для створення пари на комп'ютері необхідно виконати наступну команду, вказавши IP адресу телефона та порт який буде показано поряд з кодом:
adb pair 192.168.1.100:42047
Далі необхідно ввести на ПК код який відображається на телефоні та підтвердити створення пари:
Після цього ваш смартфон з'явиться в списку пристроїв adb:
adb devices
І якщо смартфон відображається, можна переходити до використання scrcpy.
Як користуватись scrcpy
Програма не має графічного інтерфейсу, а лише команду, яку можна виконати в терміналі. Синтаксис її досить простий:
$ scrcpy опції
За допомогою опцій необхідно налаштувати до якого пристрою буде підключатись програма, та які можливості варто використовувати. Ось деякі опції які можуть вам знадобитись:
--serial - адреса пристрою до якого треба підключитись. Якщо до компьютера підключено тільки один пристрій, то програма вибере його за замовчуванням. Якщо пристроїв декілька, то треба буде вказати який з них використовувати.
--no-control - не керувати смартфоном з компьютера, тільки показувати зображення
--no-audio - не передавати аудіо з пристрою
--no-video - не передавати відео з пристрою
--stay-awake - відключити режим сну смартфона на період взаємодії з програмою
--show-touches - показувати доторкання до екрану смартфона
--start-app - запустити програму на смартфоні
--new-display - використовувати віртуальний екран
--record - записати в файл
--no-playback - не виводити вікно з відео на екран
--max-size - обмежує максимальне розширення відеопотоку, дозволяє покращити швидкодію не передаючи зображення в повному розширені.
--video-source - вказує звідки брати відео, доступні значення: display та camera
--audio-source - вказує звідки брати аудіо, доступні значення: output та mic
--camera-id - вказує певну камеру з якої варто брати данні
--camera-facing - дозволяє вибрати фронтальну (front) чи основну (back) камеру
--video-codec - вказує який кодек використовувати для відео, за замовчуванням h264
--max-fps - максимальна кількість кадрів в секунду
--orientation - вказавши значення 0, 90, 180 і т д, можна вибрати ландшафтну чи портретну орієнтацію екрана, а також повернути зображення.
Опції, що дозволяють переглянути інформацію про пристрій:
--list-apps - показати список програм, встановлених на пристрої
--list-cameras - показати список доступних камер
--list-camera-sizes - показати список доступних розмірів з камери
--list-displays - показати список дисплеїв
Виведення екрану Android на ПК
Для того щоб просто вивести зображення з телефону на ПК без трансляції аудіо та без керування виконайте таку команду:
scrcpy --no-audio --no-control
Оскільки до компьютера під'єднано лише один пристрій, програма підєднається до нього і відкриє вікно, в якому буде відображатись відео з телефона:
За допомогою опції --max-size можна обмежити розмір відео яке буде передаватись. За замачиваниям відео передається в повній якості, а потім масштабується до розміру вікна. Часто в цьому немає необхідності і можна одразу передавати тільки те, що потрібно. Опція обмежує висоту або ширину, залежно від орієнтації екрану:
scrcpy --no-audio --no-control --max-size=800
Якщо прибрати опцію --no-control, то можна керувати пристроєм прямо з компьютера:
scrcpy --max-size=800 --no-audio
При чому тут є декілька гарячих клавіш, які можуть вам знадобитись:
- Клік правою кнопкою - повернутись назад
- Клік середньою кнопкою миші - перейти на головний екран
- Alt + стрілка вправо або вліво - повернути екран на 90 градусів
- Alt + Shift + стрілка вправо - відзеркалити екран горизонтально
- Alt + Shift + стрілка вверх - відзеркалити екран вертикально
- Alt + S - відкрити перегляд запущених програм
- Alt + M - відкрити меню програм
- Alt + R - змінити орієнтацію екрана між ландшафтною та портретною
Це далеко не всі сполучення клавіш, а лише найкорисніші. Інші можна знайти в офіційній документації.
Орієнтація екрана
Для того, щоб орієнтація зображення змінилась з ландшафтної на портретну треба скористатись сполученням клавіш Alt+R. Це спрацює лише якщо потрібна орієнтація підтримується активним застосунком:
Також можна використати опцію --orientation:
scrcpy --max-size=800 --no-audio
Якщо ви міняєте орієнтацію екрана сполученням клавіш зі стрілками чи опціями, чи за допомогою опції --capture-orientation, то орієнтація буде змінюватись лише для вікна scrcpy. На телефоні все залишиться як було.
Параметри відео
До цього ми запускали програму з параметрами відео за замовчуванням. Але їх можна налаштувати для того щоб отримати кращу швидкодію чи якість. За замовчуванням використовуються такі параметри:
- Кодек: h264
- Бітрейт відео: 8 Мбіт/c
Можна використати більш сучасний кодек h265, який дає кращу якість відео, вищий бітрейт, а також обмежити FPS для того щоб він був більш стабільним. Але зверніть увагу, що кількість кадрів в секунду буде така, яку видає ваш телефон, якщо ви дивитесь відео з частотою 24 карди в секунду, то відповідно буде 24 кадри в секунду, навіть якщо ви в налаштуваннях виставили більше. Кількість кадрів можна вивести в термінал за допомогою опції --print-fps.
Наприклад, додамо всі оптимізації для максимальної якост:
scrcpy --video-codec=h265 --max-size=1920 --max-fps=30 --video-bit-rate=100M --no-audio --print-fps
Виведення віртуального екрана
Якщо вам потрібно працювати лише з певною програмою, ви можете відкрити її на віртуальному дисплеї. При чому це не буде відображатись на основному дисплеї смартфона. Переглянути список доступних застосунків можна за допомогою такої команди:
scrcpy --list-apps
Ось такою командою можна знайти повну назву певної програми, наприклад FDroid:
scrcpy --list-apps | grep fdroid
Наступна команда запускає FDroid:
scrcpy --new-display=800x600 --start-app=org.fdroid.fdroid
Виведення відео з камери Android на ПК
Крім екрана смартфону ви можете відображати на комп'ютері відео з камери. Спочатку варто подивитись список доступних камер та розмірів зображень:
scrcpy --list-cameras
Для того щоб показати відео з основної камери виконайте:
scrcpy --video-source=camera --video-codec=h265 --camera-size=1920x1080 --camera-facing=back --no-audio
Або з фронтальної:
scrcpy --video-source=camera --video-codec=h265 --camera-size=1920x1080 --camera-facing=front --no-audio
Висновки
В цій статті ми розглянули як вивести екран Android смартфона на ПК за допомогою scrcpy. Це може виглядати складно, оскільки треба увімкнути режим розробника та встановити програму на компьютер, але на ділі це зручніше ніж використовувати сторонні програми на Android, як мінімум тому що тут немає реклами і набагато нижча затримка відтворення.





















Когда-то я практически ежедневно заглядывал на этот сайт, ожидая новой и весьма полезной публикации. И очень жаль, что сайт практически умер: статьи появляются раз в месяц