Как стать автором
Обновить

Комментарии 20

За статью спасибо.
Вы не пробовали в качестве клиента использовать машину с Linux? Проблемы были?
Не пробовал, но пока разбирался с некоторыми проблемами успел почитать код. Проблем быть не должно, суть клиента — получить поток от хоста, разжать и нарисовать картинку. Ну и заодно отправить действия пользователя — хосту.

Основные проблемы были именно на хосте, независимые от клиента — несовместимость GeForce Experience с серверными ОС, непонятные вылеты игр Valve…
Интересное решение, спасибо за статью. Вполне себе способ вынести на балкон шумящую и гремящую (из-за системы охлаждения CPU и GPU) рабочую станцию, в обычное время занятую майнингом биткоин выполняющую роль медиасервера и прочего для домашней сети, и на ней играть с бесшумного терминала.

Я, кстати, может быть пропустил: ускорение, сглаживание и т.п. — все это есть в тех же объемах, как если бы играть пришлось прямо на физическом железе?
А, вот еще вопрос: а что с инпут-лагом? Как быстро реагирует на контроллеры и т.п.?
Лагов не замечал. Может быть для кибер-спортсменов будут какие-то неудобства… Пробовал запускать танки через VPN работа-дом — разница между нативным режимом и стримингом — в артефактах сжатия видео, в управлении разницы не заметил.
Да, всё в тех же объёмах. Единственное — при проблемах в канале могут наблюдаться артефакты сжатия, но если канал позволяет — картинка не отличима на глаз.
Кстати, первоначальная идея была купить 1-2 дополнительных монитора, KVM, поставить игровую станцию «под боком» и протянуть 10-20 метровый HDMI к телевизору с разного рода беспроводными контроллерами, клавиатурами, мышами и прочим…

Но, во-первых, станция шумит, даже несмотря на то, что стоят 12см тихие вентиляторы Zalman (но их 4 шт в корпусе).
Во-вторых наблюдались проблемы с управлением — если игровой контроллер с нормальными батарейками работает очень даже хорошо, то клавиатура и мышь имеют свойство отваливаться из-за помех.
В-третьих, это не шаринг ресурса игрового ПК, а опутывания себя проводами.
В конце-концов это оказалось дороже (1 самый простенький IPS монитор удобоваримого качества — от 7000 начинается, гигабитная сеть по квартире укладывается в 1000).

Пока игровая станция стоит в зале рядом с телевизором, но в планах — унести на балкон, а туда протянуть оптику, но останавливает цена проекта — порядка 3 тыр за оптику на балкон.
Пару дней назад пробовал LimeLight. На смартфоне поиграть не получилось из-за лагов потока с хоста, при этом на ноутбуке вполне неплохо игралось в Team Fortress 2. Дело похоже в том, что смартфон пытается экономить соединение: использование канала у него получается 6-15 Мбит/с, против 11-12 Мбит/с у ноутбука.
Правильно ли я понял что ширина потока не зависит от разрешения экрана у клиента?
Да. В GeForce Experience сейчас выбор из четырёх возможных потоков: 1280х720х30, 1280х720х60, 1920х1080х30, 1920х1080х60. Все остальные преобразования идут на клиенте. Даже если на клиенте резрешение 320х240 он получит поток 1280х720.

Steam, вроде бы, подгоняет ширину разрешение потока под разрешение клиента.
А каким образом Stream capture'ит видео? DLL injection делает что ли?
А что если VNC, VBOX RDP пустить вместо игрушки?! =)
Не совсем понял вопрос про то «как капчурит»? Захват видео отдельная большая тема по программированию с элементами canvas, directshow, opengl

Вообще у меня получается запустить «не игру», через limelight можно при определённом стечении обстоятельств (вылет игры) получить просто удалённое управление ПК, но дальше начинаются проблемы с запуском игр и нужно перезагружать хост. Пока чёткой закономерности не выявил. Уже подумываю сделать какую-нибудь программу-заглушку для получения удалённого доступа через стриминг. Другой вопрос — зачем?..

Из Вашего коментария я делаю вывод, что capture происходит с видеокарточки напрямую…
Зачем?! Да мне Gaikai понравился… Хотелось бы иметь нечто open-source win/lin и с большой кнопкой «Сделать зашибись!».
В принципе — всё верно, только делается или стандартными средствами Windows, или через фильтры DirectShow, или функционалом OpenGL — зависит от того что сейчас на экране.

ИМХО, время сервисов на подобии GaiKai ещё не пришло: слишком медленные каналы и большие задержки (что ещё хуже). Единственный вариант — ставить сервера в точках обмена траффика, чтобы хоть как-то уменьшить задержки… Но это очень большие финансовые вложения (в России). Поэтому ждём 10Гбит в каждый дом, а потом открываем стриминг за деньги.
Печально, что нельзя при таком стриминге использовать компьютер.
Это с одной стороны, а с другой стороны — он, по идее, должен нагружаться на столько, что свободных ресурсов не останется для параллельной работы.

А если ресурс позволяет, то можно поднять виртуализацию с пробросом видеокарты в гостевую ОС и стримить уже из гостевой ОС… Но это уже как-то слишком хитро для домашней системы?
Интересно, Steam должен быть обязательно в онлайн-режиме или по локалке будет работать и оффлайн? Скажем, для того, чтобы играть в танки (то есть и через интернеты, и стим тут ни при чем)
Если использовать стриминг от Nvidia — то оффлайн работает без проблем.
Streaming steam игр для нелокальных компьютеров работает с помощью hamachi. Steam клиенты видят друг друга не сразу (3-10сек). Для теста ноутбук был подключен через телефон к beeline 3g, игровой компьютер подключен к qwerty. На обоих был запущен steam и hamachi, в hamachi была создана одна сеть. Через небольшое время клиент на ноутбуке увидел игрушки на пк и предложил стрим. Игра запустилась покадрово и начала быстро кушать 3g трафик, но сам эксперимент удачный.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории