Moonlight — стриминг игр с ПК на Android-бокс

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
Если вы до сих пор живёте в прошлом веке и не обзавелись универсальным Android-боксом за условные 4000 рублей, то вот вам ещё один повод это сделать — стриминг любых игр с мощного домашнего ПК на Android-бокс. Т.е. на Android-боксе вы играет в игры, которые в реальности запущены на ПК. Сыграть с ребёнком в «LEGO City Undecover» вдвоём на большом экране — легко, погонять в «Ведьмак 3» или «GTA V» с запредельным качеством графики на кухне — запросто.


Существуют разное ПО для стриминга игр на Android устройства: KinoConsole, Splashtop и пр. Но ничего качественнее, проще и быстрее бесплатной программы Moonlight Game Streaming я пока не встречал. Об этом ПО я вам сегодня кратко расскажу.

Android-боксы поселились у меня дома достаточно давно. В гостиной, в тумбе под ТВ спрятан Android-бокс, который подключен к сети через Gigabit Ethernet. На кухне за телевизором спрятан Android-бокс, который подключен по Wi-Fi (Xiaomi Mi Box 3 Enchanced с очень мощным Wi-Fi). Использование ограничено рядом программ: IPTV, YouTube, HD VideoBox, Torrent Stream Controller и просмотр фильмов по сети или локально. Но с недавних пор к списку программ добавилась Moonlight, а Xbox в гостиной превратился в обычный пылесборник.


Для использования Moonlight подходит любой ПК (не мобильный) с видеокартой Nvidia GeForce GTX 600-й серии и лучше. Ограничение по типу видеокарты связано с тем, что Moonlight базируется на сервисе Nvidia Shield GameStream. На ПК вам не нужно какое-либо стороннее ПО, только GeForce Experience, которое поставляется вместе с драйверами Nvidia.


Сервис Nvidia Shield GameStream изначально рассчитан на работу с консолями от Nvidia — Shield и Shield TV, которые базируются на ОС Android. Но умельцы научились использовать этот сервис на любых Android устройствах.

Вам понадобится:

  • Домашний игровой ПК с видеокартой от Nvidia, Лучше, если он будет подключён к сети по Ethernet.
  • Современный Android-бокс с качественным и быстрым Wi-Fi модулем или с подключением по Ethernet. Лучше, если он будет обладать поддержкой H.265/HEVC (например, на AMLogic S905/S905X/S912).
  • Любой Bluetooth геймпад, совместимый с Android (даже простой за 7$ подойдёт). Можно и проводным геймпадом пользоваться, но беспроводной существенно удобнее.

У меня есть два геймпада. Любимый Xiaomi Gamepad и самый дешёвый за 7$. Важно, что геймпады вовсе не должны обладать поддержкой XInput или DirectInput, только совместимостью с Android. Сервис Nvidia Shield GameStream автоматически создаст в Windows виртуальные геймпады с поддержкой XInput и DirectInput. Т.е. любая игра, которые может работать с геймпадами, будет работать даже с дешёвым китайским геймпадом сразу.


На ПК запускаете GeForce Experience и на закладке SHIELD включаете GAMESTREAM.


Если вы используете Steam, то все ваши совместимые игры из Steam автоматически отобразятся в Moonlight. При необходимости вы можете добавить абсолютно любую игру, просто нажимаете «Добавить» и выбираете исполняемый файл для запуска игры. Здесь же игру можно переименовать и присвоить ей обложку.

Запускаете Moonlight на Android-боксе. Если Android-бокс и ПК находятся в одной подсети, то вы сразу увидите ПК в списке. Всё, что осталось сделать — выбрать этот ПК в списке, а на самом ПК ввести пин-код (делается это один раз).



Если ПК и Android-бокс находятся в разных подсетях, то можно добавить ПК по IP-адресу вручную. Программа Moonlight готова к развлечениям.


Немного расскажу о важных настройках в самой программы Moonlight. Здесь можно указать разрешение потока и количество кадров (я использую 1080p60) и битрейт видео. Обязательно надо включить отображение на весь экран.




Если у вас несколько геймпадов (для игр, в которые могут играть несколько человек сразу), то можно включить поддержку нескольких геймпадов.


Можно принудительно включить использование H.265, если вы заведомо знаете, что ваш бокс поддерживает этот декодер.


Ни в гостиной по Gigabit Ethernet, ни на кухне по Wi-Fi я не могу отличить качество изображения при стриминге от прямого подключения по HDMI при битрейте 30 Мбит/с. При этом в гостиной (проводное соединение) задержка составляет около 70 мс по данным Moonlight, а на кухне 50 мс, что во многих играх никак не сказывается на управлении. Меньшая задержка по Wi-Fi связана с тем, что боксы используют разные SoC. На кухне MediaTek, аппаратный видеодекодер которого быстрее справляется с декодированием потока, а в гостиной AMLogic.

Ну, и видео, как выглядит сам процесс (на кухне):



Дополнительно, существует ещё версия Moonlight For Rooted Devices (тоже в Google Play). Она позволяет использовать не только геймпады, но и мышку при стриминге игр.

Работу Moonlight и Nvidia Shield GameStream кратко можно описаться следующим образом. Сервис Nvidia Shield GameStream захватывает видео с экрана и звук с ПК (во время игр звук через ПК не идёт), сжимает видео с помощью H.264 или H.265 кодировщика и передаёт поток на Android-бокс. Ещё сервис Nvidia Shield GameStream создаёт виртуальные геймпады с поддержкой XInput и DirectInput, а команды для них принимает от Android-бокса. Во время игры на Android-боксе пользоваться ПК нельзя, на нём запущена игра.

Удачных вам гонок и баталий!