Игры через локальную сеть, альтернатива VNC?


15

Хорошо, я сделал больше, чем небольшую домашнюю работу по этому поводу, и начинаю думать, что мир почему-то против этой идеи.

У меня дома есть ноутбук SB Core i3 с графическим процессором GMA HD, который ужасен для всего визуального, и я хотел бы передавать потоковое видео с моего настольного компьютера трехмерного характера (исключая RDP и другие протоколы на основе хуков).

Первый ответ большинства людей на подобные потоки связан с пропускной способностью или вычислительной мощностью. Я в первую очередь пробовал Gigabit LAN, и моя настольная установка имеет разогнанную 3930k, так что я считаю, что ДОЛЖЕН быть баланс между нагрузкой на ЦП и пропускной способностью, которая позволила бы мне получить по крайней мере 20FPS полного обновления экрана , До сих пор я не могу использовать TightVNC, тестируя, воспроизводя видео в полноэкранном режиме на хост-компьютере.

Итак, подведем итог: при более чем 30-кратной пропускной способности OnLive, как именно я могу создать равномерный прерывистый уровень видеопотока по локальной сети у себя дома? Возможно ли это и как?


1
Вы уже заглядывали в RemoteFX ? «RemoteFX обеспечивает богатый пользовательский интерфейс для инфраструктуры виртуальных рабочих столов (VDI), предоставляя виртуальный 3D-адаптер, интеллектуальные кодеки и возможность перенаправления USB-устройств на виртуальных машинах». Возможно, вам придется купить Server 2012, хотя. ;)
Ƭᴇcʜιᴇ007

проверьте этот проект: spgt.sourceforge.net он позволяет потоковую передачу части рабочего стола, а также перенаправляет элементы управления.

Ответы:


16

Программное решение по своей природе будет содержать много задержек из-за следующего:

  • Чтение данных из кадрового буфера графического процессора происходит очень медленно.
  • Даже с целевым битрейтом около 80% гигабитного Ethernet (не требуется 100% использования из-за ухудшений, вызванных насыщением), большинство видеокодеков будет использовать огромное количество ЦП для кодирования 1080p в режиме реального времени. Даже если бы у вас было кодирование с помощью графического процессора, вы бы тогда теряли вычислительную мощность на самом устройстве, которое воспроизводит вашу игру, вероятно, значительно снижая частоту кадров вашей игры из-за слабой способности большинства графических процессоров выполнять многозадачность между отдельными программами.
  • Сам устойчивый гигабитный ввод / вывод Ethernet - просто отправка готовых данных по проводам - ​​потребляет значительный ЦП из-за прерываний. За счет некоторой задержки вы можете использовать модерацию прерываний, особенность более новых наборов микросхем Ethernet для серверов, чтобы уменьшить загрузку ЦП.

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

Вот пример одного такого устройства: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/

Это устройство имеет общую концепцию:

  • Вы подключаете устройство к вашей видеокарте
  • Вы подключаете свой монитор к устройству
  • Вы подключаете Ethernet-выход устройства к компьютеру или маршрутизатору.
  • Вы получаете доступ к веб-интерфейсу устройства через Ethernet, и у вас есть потоковое видео, без потерь, на весь экран, если хотите

Поскольку устройство использует выделенное оборудование для кодирования кадров и их потоковой передачи через Ethernet, оно будет очень плавным, с высоким FPS и надежным. Это также значительно упрощает настройку программного обеспечения, устраняя необходимость в дорогостоящих конвейерных решениях на вашей игровой установке.

Если вы не хотите тратить деньги и можете жить с чрезмерной задержкой и очень низким FPS, вы можете попробовать что-то вроде написания конвейера в Gstreamer или VideoLAN (VLC) для захвата локального кадрового буфера, кодирования его в некотором видеокодеке, и потоковую передачу через Shout или RTP или RTSP или аналогичный протокол потоковой передачи, а затем загрузку / потоковую передачу с более медленного компьютера. Но, как я уже предупреждал, это будет медленно.


Спасибо, хотя есть несколько предположений, которые можно легко уточнить. Я определенно не хочу играть в 1080p, на самом деле 1280x720 @ 24fps - это то, что я сейчас хочу, и я бы опустился ниже, чтобы иметь возможность работать. Идея захвата кажется интересной, но как мне управлять хостом и какова задержка? О, и я еще даже не пробовал это с игрой. Просто запуск видеофайла 320x240 для обновления всего экрана, похоже, превращает VNC в слайд-шоу. Я знаю, что я должен что-то сделать, чтобы получить больше от программного решения.
user1901982

Неожиданно я бы оценил, что задержка составляет около одного или двух кадров плюс время пинга при оптимальных обстоятельствах.
Хаген фон Айцен

2
@ user1901982 захватить PlayClaw и использовать виртуальную функцию веб - камеры , чтобы превратить вашу 3D игру в корм вебкамера. Затем найдите способ с низкой задержкой для потоковой передачи виртуальной веб-камеры по сети.
Дарт Андроид

Это, безусловно, интересная идея. Я использовал PlayClaw раньше. Виртуальная веб-камера обеспечивает достаточно быстрое / достойное качество для 3D-игр. Вы все еще должны закодировать вывод, чтобы сжать его для передачи по сети, хотя :)
allquixotic

2
@somequixotic PlayClaw делает это на самом деле, и это его «претензия на славу»: он обрабатывает кодирование / сжатие в нескольких потоках (в отличие от Fraps, который будет выполнять кодирование в потоке рендеринга игры . Fraps мог бы изменить это недавно, но несколько лет назад это был статус-кво). Если у вас есть процессор, просто заворачивайте PlayClaw до высокой степени сжатия.
Дарт Android

7

Вы можете использовать в домашних условиях потоковую передачу от Steam. Мой работает ОЧЕНЬ хорошо с моим рабочим столом, подключенным через Gigabit LAN, и ноутбуком на 5Ghz AC. Просто не забудьте пройти через настройки и установить флажок, чтобы расставить приоритеты в потоке пара во время потоковой передачи.


3

Есть еще несколько вариантов сейчас. Если у вас последняя видеокарта Nvidia, вы можете воспользоваться преимуществами аппаратного ускоренного захвата без дополнительного оборудования. Это называется «Gamestream». Вы можете купить одно из устройств Nvidia, поддерживающих протокол, или вы можете скачать приложение с открытым исходным кодом под названием «Moonlight» http://moonlight-stream.com


Это требует Windows для хоста, только клиент является кроссплатформенным. Просто хотел отметить, что для тех, кто ищет решение не для Windows, как я был, когда я нашел этот пост.
Робм

0

Steam Remote Play - это определенно вариант. Много раз играл, например, в Ракетной лиге. Если у вас есть хорошее соединение по локальной сети с обеих сторон, вы можете идти. Даже можете подключить геймпад на ноутбуке.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.