Домашний стриминговый сервис

Домашний стриминговый сервис

Когда стали появляться новости про стриминговые сервисы игр Google Stadia, PlayStation Now и другие, я задумался (хотя это произошло довольно поздно) — а есть ли возможность сделать такой стриминговый сервис для самого себя, у себя дома? Поискал немного в интернетах и понял, что способ, оказывается, есть, притом существует очень давно. Ребята-умельцы прозвали свое детище Moonlight, оно позволяет запускать игры на удаленном компьютере и играть в них буквально с микроволновки, лишь бы у этой микроволновки был хороший интернет канал. Это, конечно, назвать облачным геймингом сложно, но всё-таки Moonlight позволит поиграть с телефона в компьютер.

Давайте разберемся, что это за Moonlight.

Перед тем, как все объяснять, предлагаю сначала определиться с наименованиями, которые я буду использовать в статье:

  • Сервер — компьютер, на котором происходит запуск игры или другого приложения. 
  • Клиент — компьютер/планшет/мобильный телефон, на котором эта игра будет воспроизводиться. 
  • Стриминг — потоковое вещание изображения. Происходит это как на Twitch.tv или Youtube, только строго между двумя устройствами.

Почему не TeamViewer?

Есть прекрасное приложение для контроля удаленного рабочего стола — TeamViewer. Приложение очень неплохое для своих задач, но в эти задачи не входят игры. Дело в том, что при использовании TeamViewer в игре у вас будет отсутствовать управление с клавиатуры, что не позволит насладиться игрой, в которой эта клавиатура требуется.

Хочется добавить еще несколько слов про качество изображения. Если на Teamviewer качество настраивается в простом интерфейсе и не сможет показать вам 4к картинку, то в интерфейсе Moonlight вы сможете гибко настроить и битрейт, и разрешение, и количество кадров в секунду, что позволит подстроиться под ширину интернет канала, как у сервера, так и у клиента.

Но отбрасывать в сторону этот сервис мы не будем, в дальнейших статьях мы рассмотрим и это приложение.

Установка Moonlight.

Минимальные требования к серверу:

  • Видеокарта NVIDIA GeForce GTX/RTX выше 600+ (GT серия, а также видеокарты от AMD не поддерживают NVIDIA GameStream).
  • Программное обеспечение: NVIDIA GeForce Experience (GFE) версии 2.1.1 или выше.
  • Дисплей разрешения 720p ( ~ 1280×720 или больше, соединенный с видеокартой GeForce).
  • Интернет соединение с исходящей скоростью 5 мбит/сек и выше. (Если Вы хотите играть через интернет).

Если Ваш компьютер не входит в минимальные требования, то к сожалению ничего не выйдет. Может помогут танцы с бубном, но это проходит строго по индивидуальному сценарию.

1. Установка для игры в локальной сети

Начнем с самой базовой установки для того, чтобы играть по локальной сети (например играть с телефона в World of Warcraft, находясь в соседней комнате, по Wi-FI).

Порядок установки следующий:

Включение GAMESTREAM в Nividia GeForce Experience
Включение GAMESTREAM в Nividia GeForce Experience
Ввод PIN-кода на компьютере сервере
  1. Устанавливаем NVIDIA GeForce Experience (далее GFE).
  2. В GFE нажимаем «настройки» (шестерёнка справа сверху), выбираем SHIELD и ставим галочку рядом с GAMESTREAM.
  3. Запускаем клиент Moonlight (об установке которого немного ниже) и убеждаемся, что клиент подключен к той же сети, что и сервер.
  4. В большинстве случаев Ваш сервер появится в списке автоматически через несколько секунд. Нажмите на него, чтобы начать соединение.
  5. На Вашем клиенте Moonlight появится окошко с авторизацией и PIN-кодом, который надо будет ввести в всплывающем окошке приложения GeForce Experience.
  6. На этом этапе, если всё пошло по плану, вы уже можете начать играть удаленно со своего клиента в локальной сети!
  7. При возникновении проблем по ходу инструкции, посмотрите пункт 4 этого гайда или обратитесь к справке с описанием возможных решений (она на английском).

2. Установка сервиса для игры через интернет

Теперь переходим к самому интересному — это к установке Moonlight для игры с любого устройства откуда угодно. (Я так, кстати, в Divinity Original Sin 2 с телефона играл, сидя в кафешке — в приложении есть наэкранный геймпад, что вполне удобно).

Для игры через интернет разработчики приложения советуют пройти целиком через пункт 1 инструкции — то есть сначала установить соединение внутри сети. Но я пошел немного другим путем и смог добиться работы и без прохождения него. Оценивайте по своим знаниям и умениям.

Итак, я напишу порядок установки при отсутствии возможности подключения к компьютеру в локальной сети:

IP адрес можно увидеть на нижней строке.
Вводим пин-код из приложения Moonlight в GeForce Experience.
Ввод PIN-кода на компьютере сервере в приложение Nvidia GeForce Experience
  1. Устанавливаем NVIDIA GeForce Experience.
  2. Нажимаем «настройки» (шестерёнка справа сверху), выбираем SHIELD и ставим галочку рядом с GAMESTREAM.
  3. Устанавливаем на сервер Moonlight Internet Hosting Tool последней версии.
  4. Запускаем Moonlight Internet Streaming Tester. При успешной проверке возможности стриминга через интернет в результате вы получаете IP адрес сервера, который надо будет ввести в приложении-клиенте.
  5. Заходим в клиент, выбираем «Add PC Manually» (Ctrl+N).
  6. Вводим ранее полученный IP адрес сервера.
  7. На Вашем клиенте Moonlight появится окошко с авторизацией и PIN-кодом, который надо будет ввести в окне приложения GeForce Experience.
  8. Если всё пошло по плану — у вас появится доступ к списку игр.
    • Если какой-то игры нет в списке — обратите внимание на пункт инструкции «Если в списке игр нет какой-то игры». Он ниже, пункт 5 инструкции.

3. Установка клиента Moonlight

Установка клиента игры довольно таки простая. Для игры по локальной сети достаточно просто скачать приложение, подключиться к сети, к которой уже подключен сервер, и выполнить пункты 5, 6 из инструкции 1.
Для игры через интернет требуется приложение-клиент Moonlight и выполнение пунктов 5,6,7 из инструкции 2.

Скачать приложение можно по ссылкам:
Для компьютера: Windows, macOS, linux,
IOS(устройства Apple),
Android.
На сайте разработчика есть клиенты для очень интересных устройств, с которыми я не сталкивался и рассказывать про них не буду (например для Raspberry Pi), но вы можете поэкспериментировать с ними и поделиться своим опытом в комментариях к этой статье.
Для Windows существует много клиентов, в том числе и Portable версия Moonlight для игры на устройствах, где устанавливать приложение запрещено, например на работе. То есть в теории вы можете поиграть в GTA V с работы. Но на работе, вообще-то, работают.

3. 1 Системные требования для клиентов:

  • Android: Из обязательных требований для игры на Android — это версия Android выше 4.1 (Jelly Bean). Стоит учитывать, что «флагманы» и устройства с хорошими процессорами значительно уменьшат количество подвисаний и увеличат качество работы, так как железо сможет справляться аппаратно с поставленными задачами.
  • iOS: Из требований: только версия iOS 8.0 и выше.
  • Компьютер (PC): Windows 7+, macOS 10.11+ или Linux. На Вашем компьютере должна быть поддержка аппаратного декодирования H.264, в ином случае этим будет занят процессор (это не плохо, но в зависимости от процессора, могут возникнуть проблемы с плавностью работы).
    Компьютеры, вышедшие позже 2010-х, в принципе будут справляться с поставленной задачей, в ином случае могут возникнуть проблемы с плавными 60 FPS.

3. 2 Требования для интернет соединения и роутеров.

Если речь идет о потоке видео данных, то понятное дело, что это очень затратно для трафика и скорости интернета. Так что, очевидно, Вам должно хватить скорости на уровне сервера и на уровне клиента, чтобы все шло плавно и гладко.

Как говорят разработчики, 5 мбит/сек — достаточная скорость для минимальной работы программы (но я снижал ещё больше). И всё же вы можете крутить в настройках битрейт.

3. 3 Настройка битрейта


С битрейтом всё просто, больше битрейта — лучше качество, но и требуется выше скорость интернет-соединения. Для определения настроек обратимся к следующей таблице (для кодека H.264):

РазрешениеКадры/сБитрейт мбит/с
720p, 1280 x 720301,5 – 4
720p, 1280 x 720602,3 – 4
1080p, 1920 x 1080303 – 6
1080p, 1920 x 1080 604,5 – 9
1440p, 2560 x 1440306 – 13
1440p, 2560 x 1440 609 – 18
4K/2160p, 3840 x 21603013 – 34
4K/2160p, 3840 x 21606020 – 51

Советую Вам пользоваться этой таблицей и выбирать наивысшее значение битрейта для получения хорошей картинки. Если будет подвисать, плавно снижайте уровень битрейта и разрешения до уровня, при котором все будет проходить плавно.

По умолчанию для передачи данных используется видеокодек H.264. Он поддерживается большинством устройств. Но существует и другой кодек, с более высокой степенью сжатия без существенного изменения качества по сравнению с H.264, — это HEVC H.265. Этот кодек поддерживается не всеми устройствами, и передача закодированного изображения начинается, только если оба устройства поддерживают этот кодек. Если он активен, то при расчете битрейта значения в среднем можно уменьшить на 25%.

4. Проблемы при установке сервиса для игры через интернет

В связи с тем, что в сетевой инфраструктуре не всё так просто, вероятно, что с первого раза что-то не получится. Поэтому я напишу несколько своих рекомендаций для решения возникших проблем.

4. 1 Проблемы с определением IP адреса

Для того, чтобы определить Ваш IP адрес, Вы можете зайти на 2ip.ru или например на whatsmyip.org, там большими цифрами написан Ваш IP адрес. (Он в формате 111.111.111.111)

4. 2 Приложение Moonlight Streaming Tester зависло или Internet GameSteam connectivity check failed.

Проблема может крыться в закрытых портах. При включении режима GAMESTREAM приложение Nvidia GeForce Experience самостоятельно создаст правила для портов в брандмауэре Windows для его корректной работы. Если у Вас нет установленной сторонней программы — FireWall и/или антивируса, в котором он есть, то я рекомендую проверить настройки брандмауэра и/или открыть порты вручную.

MoonlightInt Hosting Tool зависло :(
MoonlightInt Hosting Tool зависло 🙁

Для этого переходим: Панель управления -> Брандмауэр Защитника Windows -> Дополнительные параметры, открываем вкладку «Правила для входящих подключений» и ищем записи, связанные с SHIELD.

Если они присутствуют, но выключены, включаем, если они отсутствуют, то создаем правила вручную. Жмем справа «Создать правило» — «Для порта» — «Протокол TCP» — «Определенные локальные порты» — «Разрешить подключение» — «Выбираем профиль (если не важно -выбираем все)» — И даём имя.
Так делаем отдельно для TCP портов: 47984, 47989, 48010
И для следующих UDP портов: 47998, 47999, 48000, 48002, 48010.

Можно ещё проще: Открыть командную строку от имени администратора (ввести cmd в открытом меню «Пуск») и ввести туда следующие строки:

netsh advfirewall firewall add rule name="GameStream UDP" dir=in protocol=udp localport=5353,47998-48010 action=allow

netsh advfirewall firewall add rule name="GameStream TCP" dir=in protocol=tcp localport=47984,47989,48010 action=allow

Когда правила созданы и проверены, запускаем Moonlight Streaming Tester и проводим очередную проверку. Заодно можете зайти на https://canyouseeme.org/ и проверить порт 47984 и 47989, если все в порядке, значит всё работает.

С другой стороны, если у Вас имеется роутер, то проблема может быть в нем. Смотрим модельку, пишем в гугле святые слова «Port Forwarding» + имя роутера и ищем инструкцию, чтобы открыть порты, указанные немного выше. Почему так лениво? Потому что роутеров очень много и для всех я инструкцию написать не смогу. Ищем и пробуем.
Аналогично надо сделать для проверки наличия поддержки протоколов UPnP. И включить, конечно же, если выключено.

4. 3 Не могу выйти из игры/ приложения /остановить стриминг

Для того чтобы закончить стриминговую сессию (но при этом оставить приложение функционировать), вам нужно нажать комбинацию Ctrl+Shift+Alt+Q на Windows или кнопку возвращения домой на Android/iOS.

Далее вы можете выбрать приложения и нажать Quit Session, чтобы закончить выполнение приложения на сервере.

4. 4 Немного очевидного

Для работоспособности всех этих способов я напишу некоторые очевидные вещи:

  • Компьютер-сервер должен быть включен.
  • А ещё он должен быть подключен к интернету.
  • Вам должно хватать скорости соединения.

Но если решения, указанные здесь, Вам не помогли, придется идти на сайт разработчика и работать с английским языком. Наиболее часто возникающие проблемы и их решения описаны тут, а если совсем труба, то можно написать разработчикам в их Discord, там помогут.

5. Что делать, если нужного приложения нет в списке?

Всё достаточно просто:

  • Зайдите в GeForce Experience.
  • Нажимаем «настройки» (шестерёнка справа сверху) выбираем SHIELD.
  • В окошке нажимаем «ДОБАВИТЬ» и указываем путь к файлу .exe

5. 1 Как получить управление удаленным рабочим столом в Moonlight?

Для этого надо воспользоваться инструкцией выше но указать в Moonlight следующий путь:
C:\windows\system32\mstsc.exe

Заключение

В заключение хочется сказать, что я, конечно же, описал не все возможности программы и проблемы, которые могут возникнуть. Если у Вас такие проблемы возникли, можете написать в комментариях к этой записи, я постараюсь найти решение для Вас. Но я хочу напомнить, что я не разработчик приложения и не имею отношения к вашему провайдеру, так что моя помощь не всесильна.

Подписаться
Уведомить о

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии