Ігри через LAN, альтернативу VNC?


15

Гаразд, я зробив більше ніж невелике домашнє завдання з цього приводу і починаю думати, що світ якось проти цієї ідеї.

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

Перша відповідь більшості людей на подібні потоки - це або пропускна здатність, або пов'язана з потужністю обробки. Я намагаюся в першу чергу над гігабітною ланкою, і в моєму робочому столі є розігнаний 3930 к, тому я вважаю, що там ДОЛЖЕН бути баланс між грунтом процесора і пропускною здатністю, що дозволить мені отримати щонайменше 20 кадрів в секунду повноекранного оновлення . Поки я не можу використовувати TightVNC, тестуючи, відтворюючи відео на повноекранному екрані на хост-машині.

Отже, підводячи підсумки, пропускна здатність OnLive понад 30 разів, як саме я можу створити рівний рівень відеоканалу через локальну мережу у власному будинку? Чи можливо і як?


1
Ви ще заглядали в RemoteFX ? "RemoteFX забезпечує багатий досвід користування інфраструктурою Virtual Desktop Infrastructure (VDI), надаючи 3D-віртуальний адаптер, інтелектуальні кодеки та можливість перенаправляти USB-пристрої у віртуальні машини." можливо, вам доведеться придбати Server 2012. ;)
Ƭᴇcʜιᴇ007

перевірте цей проект: spgt.sourceforge.net він дозволяє передавати частину робочого столу, а також пересилає елементи керування.

Відповіді:


16

Програмне рішення по суті буде містити велику відставання через таке:

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

Якщо ви хочете, щоб це було гладко і приємно, вам слід скористатися карткою захоплення.

Ось приклад одного такого пристрою: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/

Цей пристрій має загальну концепцію:

  • Ви підключаєте пристрій до своєї відеокарти
  • Ви підключаєте монітор до пристрою
  • Ви підключаєте мережевий вихід пристрою до комп'ютера або маршрутизатора
  • Ви отримуєте доступ до веб-інтерфейсу пристрою через Ethernet, і у вас є потокове відео, повний екран без втрат, якщо ви хочете

Оскільки пристрій використовує спеціальне обладнання для кодування кадрів і передавання їх по ethernet, воно буде дуже рівним і високим FPS та надійним. Це також значно спрощує налаштування програмного забезпечення, виключаючи необхідність у дорогих конвеєрних рішеннях на вашій ігровій платформі.

Якщо ви не хочете витрачати гроші і можете жити з надзвичайним відставанням і дуже низьким FPS, ви можете спробувати щось на зразок написання конвеєра в Gstreamer або VideoLAN (VLC), щоб захопити локальний фреймбуфер, закодувати його в якомусь відео кодеку, і передавайте його через Shout, RTP або RTSP або подібний протокол потокового передавання, а потім завантажуйте / передайте їх зі свого повільного комп'ютера. Але як я попереджав вас, це буде повільно.


Дякую, хоча є кілька припущень, які можна було б легко прояснити. Я точно не хочу грати в 1080p, насправді 1280x720 @ 24fps - це те, про що я зараз стріляю, і я пішов би нижче, щоб мати можливість працювати. Ідея захоплення здається цікавою, але як я можу контролювати хоста від цього і яка затримка? О, і я ще навіть не пробував це з грою. Просто запуск відеофайлу 320х240 для отримання оновлення на екрані, здається, перетворить VNC у слайд-шоу Я знаю, що я повинен щось зробити, щоб отримати більше користі від програмного рішення.
користувач1901982

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

2
@ user1901982 Захопіть PlayClaw і використовуйте функцію Virtual Webcam, щоб перетворити вашу 3D-гру в канал веб-камери. Потім знайдіть спосіб з низькою затримкою передавати віртуальну веб-камеру по всій мережі.
Darth Android

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

2
@somequixotic PlayClaw це робить насправді, і це його "претензія на славу": вона обробляє кодування / стиснення в декількох потоках (на відміну від Fraps, що зробило б кодування на потоці візуалізації гри . Fraps, можливо, змінив це недавно, але кілька років тому, це було статус-кво). Якщо у вас є процесор, просто закрутіть PlayClaw до високої компресії.
Darth Android

7

Ви можете використовувати в домашньому потоці з пари. Шахта дуже добре працює з моїм робочим столом, підключеним через Gigabit LAN, і ноутбуком на 5 ГГц змінного струму. Просто не забудьте пройти через налаштування та встановіть прапорець, щоб визначити пріоритет трафіку пари під час трансляції.


3

Зараз є ще кілька варіантів. Якщо у вас є нещодавня відеокарта Nvidia, ви можете мати переваги прискореного захоплення обладнанням без зайвого обладнання. Це називається "Gamestream" Ви можете придбати один із пристроїв Nvidia, що підтримують протокол, або ви можете завантажити додаток з відкритим кодом під назвою "Moonlight" http://moonlight-stream.com


Для цього потрібен Windows для хоста, лише клієнт є кросплатформенним. Просто хотів зазначити, що для тих, хто шукає рішення, яке не стосується Windows, як я, коли знайшов цю посаду.
robm

0

Steam Remote Play - це безумовно варіант. Багато разів грав у напр., Rocket League. Якщо ви маєте гарне підключення до локальної мережі з обох сторін, ви готові йти. Навіть можна підключити геймпад на ноутбуці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.