Dit gaan we doen

We laten zien hoe je games vanaf je pc naar je tv of een ander apparaat in huis streamt. Daarbij gebruik je Apollo op de pc en Moonlight op het scherm waarop je wilt spelen. Daarna configureren we toepassingen zoals Steam Big Picture of Playnite, zodat je spellen eenvoudig kunt starten. Vervolgens koppelen we een client, stellen we beeld en controller in en kijken we naar een paar instellingen voor een soepele stream.

Lees ook: Gamen onder Linux: zo speel je Steam-, Epic- en GOG-games zonder Windows

Het streamen van het beeld van je pc naar je televisie is niks nieuws. Het werd door Nvidia in 2013 geïntroduceerd onder de naam GameStream en Steam kwam in 2015 met het vergelijkbare concept Steam Link. Dit product van Nvidia was bedoeld om te gebruiken in combinatie met de eigen Shield-mediaspeler, maar al snel verscheen het opensource Moonlight waarmee er ook naar andere apparaten gestreamd kon worden. Inmiddels is Nvidia gestopt met GameStream. Dat betekent niet het einde van lokaal streamen, want al voordat Nvidia stopte, was er de opensource-implementatie Sunshine. Een groot voordeel van Sunshine is dat het ook werkt op videokaarten van AMD en Intel. Over Sunshine en Moonlight hebben we een aantal jaar geleden een artikel geschreven. Sunshine heeft wel een paar duidelijke nadelen. Zo moet in beginsel je monitor aan staan om goed te kunnen streamen en is het ook lastig als je monitor een afwijkende beeldverhouding heeft. Dat is wel op te lossen met een HDMI-nepstekker, maar ook dat kent zijn eigen nadelen. Er is tegenwoordig een fork van Sunshine onder de naam Apollo die deze nadelen oplost dankzij een virtueel scherm. Hierdoor kun je de monitor (automatisch laten) uitschakelen, streamen in verschillende resoluties en heb je geen HDMI-nepstekker nodig. Ook de ontwikkelaars van Sunshine zijn inmiddels druk bezig met virtuele schermen, maar de implementatie van Apollo werkt vooralsnog beter. Om Apollo te gebruiken heb je een Windows-pc met minimaal een Intel Core i3- of AMD Ryzen 3-processor nodig en een videokaart die het beeld kan encoderen. Grofweg kun je zeggen dat pc's tot zo'n 10 jaar oud overweg moeten kunnen met Apollo.

Nvidia bedacht GameStream voor de Shield-mediaspelers, maar heeft tegenwoordig liever dat je via de clouddienst GeForce Now streamt.

Apollo installeren

Begin met het downloaden van Apollo. Klik op Latest om de laatste stabiele versie te downloaden. Je krijgt bij het uitvoeren een veiligheidswaarschuwing omdat het bestand niet is ondertekend door de ontwikkelaar. Geef toestemming om het bestand toch uit te voeren. Voor zover wij kunnen achterhalen, is het programma gewoon veilig. Doorloop de wizard en zorg ervoor dat de optie Launch on Startup ingeschakeld blijft. Hierdoor wordt Apollo automatisch gestart, waardoor het altijd beschikbaar is. Tijdens de installatie zie je dat ook ViGEmBus geïnstalleerd wordt. Dat is software die ervoor zorgt dat je controller werkt in combinatie met Apollo. Na installatie kun je Apollo openen in je webbrowser via https://localhost:47990/ of door in het systeemvak met rechts te klikken op Apollo en te kiezen voor Open Apollo. Je krijgt een waarschuwing van je browser. Negeer die en ga door naar de pagina. Er wordt een welkomspagina geopend waar je een gebruikersnaam en wachtwoord instelt. Vul alle velden in en klik op Login. Vervolgens moet je inloggen met je ingestelde gebruikersnaam en wachtwoord.

Stel een wachtwoord in om de webinterface van Apollo te beschermen.

Applicaties configureren

Apollo gebruikt profielen voor toepassingen als basis voor de verbindingen met je pc. Je vindt ze onder Applications in het menu. Gebruik je alleen Steam, dan is Steam Big Picture genoeg. Klik op de blauwe knop om de instellingen aan te passen en selecteer de optie Always create Virtual Display, waarna je op Save klikt. Gebruik je ook andere stores voor spellen, dan raden we je aan om de launcher Playnite te installeren. Voeg Playnite na installatie op je pc toe aan Apollo. Klik hiervoor op Add New en tik in het veld Application Name de gewenste naam, zoals Playnite, in. In het veld Command vul je het pad naar de fullscreenvariant van Playnite in; dat is waarschijnlijk:

C:\Users\Gebruikersnaam\AppData\Local\Playnite\Playnite.FullscreenApp.exe

Vervang Gebruikersnaam door je eigen gebruikersnaam.

Wil je het helemaal mooi maken, voeg dan een plaatje toe met het logo van de app. Maak een png-plaatje met een resolutie van 600 x 800 pixels en sla dat op. In het veld Image vul je vervolgens het pad naar het plaatje in, bijvoorbeeld:

C:\Program Files\Apollo\playnite.png

Scrol vervolgens naar beneden en vink de optie Always create Virtual Display aan, zo weet je zeker dat altijd het virtuele scherm gebruikt wordt. Sla de instellingen op via Save.

Playnite is een handige applicatie om toe te voegen om je spellen uit verschillende bronnen in een overzichtelijke interface te starten.

Clients koppelen

Om gebruik te maken van Apollo heb je bij de televisie een apparaat met Moonlight nodig. De software is beschikbaar voor onder andere Windows, Linux, macOS, Apple TV, Raspberry Pi en Android TV. De ontwikkelaar van Apollo heeft voor Android TV ook een eigen variant van Moonlight die Artemis heet en je als apk-bestand kunt downloaden. Ten opzichte van Moonlight voegt Artemis een handig menu toe dat je tijdens het streamen kunt openen met de afstandsbediening van je Android TV (of Google TV). Wil je geen apk installeren, dan vind je Moonlight in de Play Store. Installeer Moonlight op jouw smart-tv, mediaspeler of mini-pc. Moonlight vindt Apollo automatisch binnen je netwerk. Klik op de naam van je pc en je krijgt een koppelcode te zien. Open op je pc de interface van Apollo en klik in het menu op PIN. Kies PIN Pairing, vul de pincode in en klik op Send. Je client is nu gekoppeld aan Apollo en verschijnt in het overzicht Device Management. Een tweede client voeg je op dezelfde manier toe, maar krijgt niet automatisch alle rechten. Klik nadat je een extra client hebt toegevoegd op de blauwe knop naast de naam en vink alle rechten aan om ze groen te maken. Verander eventueel de naam en klik op de groene knop om de wijzigingen toe te passen.

Je koppelt Moonlight-clients met behulp van een pincode.

Moonlight instellen

De resolutie en andere eigenschappen van de stream worden bepaald door de Moonlight-client. Om in 4K of op een hogere verversingssnelheid dan 60 Hz te streamen, moet dat door zowel je client als je televisie ondersteund worden. Wij streamen in Full HD op 60 Hz, dat zal voor de meeste apparaten geen probleem zijn. Open in Moonlight de instellingen en stel de resolutie en fps naar wens in. Moonlight is Nederlandstalig, maar niet alles is vertaald. Ook zitten de instellingen per besturingssysteem net even anders in elkaar. Afhankelijk van op welk besturingssysteem Moonlight draait, verandert de bitsnelheid (bitrate) automatisch mee. Voor streamen in Full HD (1080p) volstaat 20 Mbit/s. Wil je streamen in 4K, denk dan eerder aan 80 Mbit/s. Je kunt in de instellingen ook de videocodec handmatig instellen, waarbij je de keuze hebt uit H.264, HEVC of AV1. Hiervan is H.264 de lichtste codec, maar onze Android TV blijkt beter te werken met HEVC. Daar zijn we achter gekomen door de optie Show performance stats while streaming aan te vinken. Je ziet dan tijdens het streamen hoeveel ms het duurt om de frames vanaf je pc op de client te renderen.

In Moonlight stel je de resolutie in van de stream die je vanaf je pc krijgt.

Virtueel scherm instellen

Je kunt nu je eerste stream starten en we raden je aan om te kiezen voor Virtual Desktop. Hiermee maak je gebruik van het virtuele scherm zodat je de instellingen hiervoor direct goed kunt zetten. Selecteer in Moonlight Virtual Desktop en klik met je muis, toetsenbord of controller om de stream te starten. Als het goed is, verschijnt het bureaublad van je pc in beeld. Omdat het de eerste keer is dat je streamt, moet je op je pc de schermconfiguratie nog goed zetten. Als je naar je pc loopt, zul je namelijk zien dat je scherm nog gewoon aanstaat. Om het scherm automatisch uit te laten gaan na het starten van een stream, klik je met rechts op je bureaublad en kies je Beeldscherminstellingen. Je ziet nu zowel je echte scherm(en) als je virtuele scherm. Klik op Deze beeldschermen uitbreiden en selecteer vervolgens Alleen weergeven op x waarbij x het cijfer is van het virtuele scherm. Zodra je dit kiest, gaat je normale scherm uit. Bevestig op je Moonlight-client (want je hebt alleen daar beeld) de nieuwe instellingen en voortaan gaat je normale scherm vanzelf uit als je een stream start. Mogelijk moet je dit opnieuw doen op een andere Moonlight-client.

Stel in Windows in dat het beeld alleen op het virtuele scherm wordt weergegeven tijdens het streamen.
Toetsenbord en muis

Ook als je een fijne, voor de televisie geschikte interface in beeld krijgt, blijft het toch een Windows-pc waar je verbinding mee maakt. Zorg er daarom voor dat je een muis en toetsenbord voorhanden hebt in je woonkamer voor het geval er even iets tegenzit of ingesteld moet worden. Helaas verliest de controller in Playnite soms de focus als je een spel afsluit en weer terugkeert in de launcher; een toetsenbord kun je dan nog wel gewoon gebruiken. Draadloze minitoetsenbordjes met een ingebouwd trackpad die je voor een paar tientjes aanschaft, of een volwaardig toetsenbord met ingebouwd trackpad als Logitechs K400, zijn ideaal voor gebruik op de bank. Een losse muis en los toetsenbord werken natuurlijk ook. Dat kan uiteraard ook via bluetooth.

Een toetsenbord met geïntegreerd touchpad zoals de Logitech K400 is ideaal om bij de hand te hebben

Controllers

Om je games te bedienen heb je een controller nodig. Je kunt maximaal vier controllers aansluiten. Een controller met een Xbox-layout heeft de voorkeur, al kun je in de configuratie van Apollo via Input aangeven dat je een PlayStation-controller hebt door te kiezen voor DS4 (PS4). Een bluetooth-controller werkt het makkelijkst en ondersteunt meestal ook trillingen. Dit kan soms wel wat vertraging geven, zeker als je een PlayStation-controller gebruikt. Een alternatief is een via usb aangesloten controller of een controller met een eigen usb-ontvanger. Controllers met een eigen ontvanger zijn ideaal als je een mini-pc met Windows zoals een NUC gebruikt als Moonlight-client, maar werken mogelijk ook goed op Linux. Op Android werken onze controllers met usb-ontvanger goed door ze in te stellen op de D-inputmodus, maar dan wordt trillen niet ondersteund. De standaard X-inputmodus werkt onder Android eventueel in Artemis als je in de instellingen de opties voor de geïntegreerde drivers voor controllers inschakelt. Een nadeel is dat de app iedere keer toestemming vraagt om de controller te mogen gebruiken. Een alternatief als je trillingen wilt in Android in combinatie met een controller met usb-ontvanger is VirtualHere. Voor sommige besturingssystemen kun je 1 usb-apparaat gratis gebruiken, maar in Android kan dat niet.

Je hebt een controller nodig om daadwerkelijk te kunnen spelen.

Streamen stoppen

Je kunt de stream via je controller beëindigen door tegelijkertijd op Select+Start+LB+RB (of Select+Start+L1+R1) te drukken. Je kunt de stream ook met een toetsenbord stoppen met de toetscombinatie Ctrl+Alt+Shift+Q. Ben je terug in Moonlight, sluit de stream dan definitief af door met de muis te klikken op de Stop-knop. Je kunt ook met de controller de actieve stream selecteren, op A (of X op een PlayStation-controller) drukken en kiezen voor Sluit spel. Hierbij gaan we uit van de Windows-versie; mogelijk werkt het net iets anders op een ander besturingssysteem. Gebruik je Moonlight op een apparaat met afstandsbediening zoals je smart-tv, dan kun je de stream waarschijnlijk ook eindigen door te klikken op de terugknop van de afstandsbediening. In het geval van Playnite is het makkelijker om in het menu van Playnite (het controllerpictogram rechtsboven) te kiezen voor Sluit Playnite. De stream stopt dan vanzelf omdat de applicatie die je hebt ingesteld niet meer draait. Wil je de pc na het streamen uitschakelen, dan kun je dat direct via het menu van Playnite doen door te kiezen voor Systeem uitschakelen. De stream wordt dan vanzelf gestopt als de pc uitschakelt.

Je kunt in het menu van Playnite de pc waarvan je streamt direct uitschakelen.

Vloeiende beelden

Als je spel een hogere fps heeft dan de monitor aankan, krijg je tearing bij snelle bewegingen. Omdat je bij het streamen een virtueel beeldscherm gebruikt, kun je geen G-Sync of FreeSync gebruiken. Het wordt ook aangeraden om V-Sync uit te schakelen (al raadt de ontwikkelaar het bij microstotteringen juist aan). Als je een krachtige pc hebt, is het handig om de fps te begrenzen op de snelheid van de stream. Vaak kan dat in de grafische instellingen van een spel. Het kan ook globaal via de software van Nvidia of AMD. Stream je op 60 fps, dan kun je proberen of een limiet van 59 in plaats van 60 soepeler oogt. Bij Nvidia open je de Nvidia App en klik je op Graphics. Klik op Algemene instellingen en stel de maximale framesnelheid in bij de optie Max. framesnelheid. Eventueel kun je dit via de Nvidia App ook per spel instellen. Voor AMD open je AMD Software en klik je op Spellen / Beeldkwaliteit. Schakel de optie Radeon Chill in en stel in beide velden de maximale fps in. De Moonlight-client voor Windows heeft een V-Sync-instelling die V-Sync lokaal instelt voor soepelere beelden. Open de instellingen en vink de opties V-Sync en Frame pacing aan. Deze opties kunnen wel voor een iets hogere latency zorgen.

Stel een maximale framesnelheid in om tearing te voorkomen.

Problemen

Het streamen van games op de manier die Apollo en Sunshine gebruiken bestaat al jaren en werkt behoorlijk goed. Toch kun je tegen onverwachte problemen oplopen. Zelf liepen we na de overstap van Sunshine naar Apollo tegen het probleem aan dat het geluid soms even haperde. Een oplossing hiervoor bleek om in de instellingen van Moonlight de optie Demp de speakers van de host PC tijdens het streamen uit te vinken. Die optie staat standaard aan, want het kan vervelend zijn als er geluid op je pc wordt afgespeeld als je daar niet bent. Op zich maakt het ook weer niet zo heel veel uit, want als het geluid normaal gesproken over je monitor loopt, staat deze toch uit en externe speakers kun je uitschakelen. Wellicht loop jij weer tegen iets anders aan. Je kunt bij problemen de documentatie van Apollo, Moonlight en Sunshine doornemen. Een andere goede bron is de subreddit MoonlightStreaming. De kans is namelijk groot dat andere gebruikers al tegen jouw probleem zijn aangelopen.

Zie dit artikel sowieso als een start met Apollo en Moonlight, want er zijn veel meer instellingen dan we in dit artikel kunnen behandelen. Mogelijk kom je opties tegen die jouw problemen oplossen.

Het uitschakelen van de optie om de speakers van de pc te dempen loste bij ons audioproblemen op.
Als remote desktop

We gebruiken Apollo in dit artikel waar het voor bedoeld is: het streamen van games. De techniek is door de lage latency en goede beeldkwaliteit ook uitermate geschikt als vervanger van remote desktop. Omdat Apollo het beeld van je pc in vrijwel iedere resolutie kan streamen en ondersteuning biedt voor toetsenbord en muis, kun je elk apparaat gebruiken alsof het jouw pc is. Zo heb je op de bank met een oude laptop toch de kracht van een moderne pc.