Иногда может понадобиться вывести экран Android-смартфона на экран компьютера. Например, это может быть нужно для отладки какого-либо Android-приложения, для презентации или просто в качестве зеркала. Это довольно нетипичная задача, но существует несколько способов ее решить. Можно установить одну из сторонних программ на телефон или воспользоваться инструментами разработчика и утилитой scrcpy.
В этой статье будет рассмотрено, как пользоваться scrcpy, чтобы вывести экран Android на компьютер. Данная инструкция ориентирована в первую очередь на Linux, но большинство команд будут работать и в других операционных системах, отличаться будут только пути к файлам.
Содержание статьи
Что такое Scrcpy
Scrcpy - это Open Source-инструмент, который позволяет зеркалировать видео и аудио с Android-смартфона на ПК, используя режим отладки по USB или Wi-Fi. Программа устанавливается только на ПК и не требует дополнительных приложений на телефоне. Работает в Windows, Linux и macOS. На стороне смартфона должен быть Android 5 или выше.
Помимо изображения с экрана смартфона, здесь можно получать аудио, видео с камеры, виртуальные экраны, использовать смартфон как веб-камеру (драйвер v4l2loopback в Linux), управлять смартфоном с помощью мыши и клавиатуры, копировать текст с ПК на телефон и с телефона на ПК и тому подобное.
Как установить Scrcpy
Для работы программы вам понадобится непосредственно сама программа, а также adb для связи с Android-устройством. Программу можно установить из официальных репозиториев многих дистрибутивов. Но поскольку речь идет об Android, где новые версии инструментов выходят довольно часто, в репозиториях часто будет устаревшая версия.
Установка из репозиториев Ubuntu
Если вы используете Ubuntu, то можете установить всё необходимое, выполнив команду:
sudo apt install scrcpy
Если вы планируете подключать смартфон к компьютеру по USB, этого будет достаточно. Но если нужно подключаться по Wi-Fi, вам понадобится версия 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 раз. Нужно будет ввести свой PIN-код, после чего в настройках, в разделе 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 Мбит/с
Можно использовать более современный кодек 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, как минимум потому, что здесь нет рекламы и гораздо ниже задержка воспроизведения.





















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