Sunshine — это бесплатный, открытый сервер для стриминга игр и рабочего стола, который использует тот же протокол, что и закрытый сервис NVIDIA GameStream. Это позволяет ему работать в паре с популярным клиентом Moonlight, превращая любой совместимый ПК в мощный источник для потоковой передачи контента на смартфоны, планшеты, телевизоры, ноутбуки и другие устройства.
Проект был создан сообществом как ответ на решение NVIDIA прекратить поддержку GameStream на своих видеокартах в 2023 году. Sunshine не только сохранил функциональность GameStream, но и значительно расширил её, добавив поддержку видеокарт AMD, Intel и даже программного кодирования на CPU. Благодаря модульной архитектуре и активному развитию, Sunshine предлагает большую гибкость и контроль по сравнению с оригинальным решением NVIDIA.
Sunshine работает как фоновая служба (демон) на компьютере-хосте, перехватывая видеовыход, кодируя его в реальном времени и передавая по сети совместимому клиенту. Он поддерживает потоковую передачу как отдельных игр, так и всего рабочего стола, что делает его универсальным инструментом не только для гейминга, но и для удалённой работы, доступа к специализированному ПО или медиа-контенту.
Для работы Sunshine требуется система с достаточно производительным процессором или видеокартой для аппаратного кодирования видео. Сервер поддерживает Windows, Linux и macOS, а подключаться к нему можно с устройств на базе Windows, Linux, macOS, Android, iOS, Raspberry Pi и многих других платформ.
Ключевые особенности Sunshine
Полная замена GameStream: Совместимость с клиентом Moonlight и всеми его функциями, включая поддержку контроллеров, потоковое аудио и потоковую передачу HDR.
Кроссплатформенная поддержка: Работает на Windows, Linux и macOS в качестве сервера и поддерживает все основные платформы в качестве клиента.
Поддержка любого GPU: Совместимость с видеокартами NVIDIA (NVENC), AMD (AMF/VCE) и Intel (Quick Sync), а также программное кодирование через x264/x265.
Низкая задержка: Оптимизированный конвейер кодирования и передачи данных обеспечивает задержку, сравнимую с локальной игрой.
Гибкая настройка:
- Поддержка разрешений до 4K и частоты кадров до 120 FPS
- Настройка битрейта, кодеков, качества изображения под возможности сети
- Адаптивное качество для стабильной работы при изменении пропускной способности
- Поддержка HDR10 и Dolby Vision
Дополнительные функции:
- Потоковая передача рабочего стола и отдельных приложений
- Управление питанием хоста (пробуждение по LAN, переход в спящий режим)
- Интеграция с игровыми лаунчерами (Steam, Epic Games Store)
- Поддержка виртуальных аудиоустройств
- Расширенная система аутентификации и безопасных соединений
Архитектура и технические особенности
Серверная часть: Написана на C++ с использованием современных библиотек для захвата экрана, кодирования видео и сетевой коммуникации. Работает как системная служба с веб-интерфейсом для управления.
Система захвата: В Windows использует Desktop Duplication API, в Linux — KMS/DRM или X11, в macOS — CoreGraphics, обеспечивая эффективный захват с минимальным влиянием на производительность.
Кодирование видео: Поддерживает аппаратное кодирование через NVENC (NVIDIA), AMF/VCE (AMD), VAAPI/QSV (Intel), а также программное через libx264 и libx265.
Сетевой протокол: Использует оптимизированный протокол, совместимый с Moonlight, с поддержкой UDP для минимальной задержки и автоматической адаптацией к качеству сети.
Аудиосистема: Захват системного звука и отдельных приложений с поддержкой многоканального звука и низкой задержкой.
Ввод данных: Полная поддержка клавиатуры, мыши, геймпадов, сенсорного ввода и виртуальных клавиатур с минимальной задержкой.
Сравнение с альтернативами
Против Steam Remote Play: Sunshine обеспечивает более низкую задержку, лучшее качество изображения и работает вне экосистемы Steam, но требует отдельной настройки.
Против Parsec: Sunshine бесплатен и имеет открытый исходный код, но может требовать более сложной начальной настройки.
Против NVIDIA GameStream: Sunshine сохраняет все преимущества GameStream, но работает на любом оборудовании и активно развивается сообществом.
Против Rainway/других облачных решений: Sunshine работает в локальной сети, что обеспечивает лучшую задержку и не требует подписок, но не предлагает облачной инфраструктуры.
Установка и настройка
Установка на Windows:
- Скачать установщик с GitHub Releases
- Запустить установку и следовать инструкциям мастера
- Настроить через веб-интерфейс по адресу https://localhost:47990
Установка на Linux:
- Использование пакетного менеджера (если доступно в репозитории дистрибутива)
- Сборка из исходников:
git clone,cmake,make - Настройка через веб-интерфейс или конфигурационные файлы
Базовая настройка:
- Настройка PIN-кода для аутентификации клиентов
- Выбор GPU для кодирования и настроек качества
- Добавление приложений и игр в библиотеку
- Настройка параметров сети и безопасности
Настройка клиента Moonlight:
- Установить Moonlight на клиентское устройство
- Добавить хост по IP-адресу или через автоматическое обнаружение
- Ввести PIN-код для сопряжения
- Выбрать разрешение, битрейт и частоту кадров
Расширенные возможности
Потоковая передача через интернет: Настройка VPN или проброс портов для доступа из любой точки мира.
Поддержка нескольких клиентов: Ограниченная поддержка нескольких одновременных подключений.
Интеграция с Home Assistant: Автоматизация управления хостом через умный дом.
Кастомные сценарии: Возможность выполнения скриптов при различных событиях (начало/конец стрима и т.д.).
Мониторинг и логирование: Подробные логи и статистика для отладки и оптимизации.
Сообщество и развитие
Активная разработка: Регулярные обновления с улучшениями производительности и новыми функциями.
Документация: Подробная документация на GitHub и вики с руководствами для всех платформ.
Поддержка: Активное сообщество на Discord и GitHub Issues для помощи и обсуждения.
Дорожная карта: Публичное планирование развития с учётом пожеланий сообщества.
Будущее развитие
Улучшение поддержки HDR: Расширение совместимости с различными стандартами HDR и настройками.
Оптимизация для ARM: Лучшая поддержка одноплатных компьютеров и мобильных устройств в качестве хостов.
Интеграция с облачными сервисами: Возможности для гибридных сценариев использования.
Улучшенная аналитика: Более подробные инструменты мониторинга и оптимизации.
Sunshine представляет собой выдающийся пример того, как сообщество open-source может не только сохранить, но и улучшить технологии, от которых отказываются крупные корпорации. Для игроков, которые хотят стримить игры со своего ПК на другие устройства без компромиссов в качестве и задержке, Sunshine предлагает мощное, гибкое и полностью бесплатное решение. Его кроссплатформенность и поддержка широкого спектра оборудования делают его идеальным выбором для создания персональной облачной игровой платформы.
Официальный репозиторий Sunshine на GitHub Документация Sunshine с подробными руководствами по установке и настройке. Сайт Moonlight для скачивания клиента на различные платформы.