Ich habe Windows 10 Pro als Server und Windows 10 Pro als Client. Der Server hat eine GTX 1070-Karte mit dem neuesten Treiber und ist vollständig NVENC-fähig für h.264/AVC 444-Hardwarecodierung. Steam-Streaming funktioniert über den Hardware-Codec auf der Serverseite.
Ich habe RemoteFX auf dem Server aktiviert und in der Gruppenrichtlinie unter Remotedesktopdienste/Remotedesktop-Sitzungshost/Remotesitzungsumgebung Folgendes aktiviert:
- Verwenden Sie Hardwaregrafikadapter für alle Remotedesktopdienstesitzungen
- Verwenden Sie erweiterte RemtoteFX-Grafiken für RemoteApp
- Priorisieren Sie den H.264/AVC 444-Grafikmodus für Remotedesktopverbindungen
- Konfigurieren Sie die H.264/AVC-Hardwarecodierung für Remotedesktopverbindungen
- Konfigurieren der Komprimierung für RemoteFX-Daten
- Konfigurieren der Bildqualität für RemoteFX Adaptive Graphics
- Aktivieren Sie die RemoteFX-Kodierung für RemoteFX-Clients, die für Windows Server 2008 R2 SP1 entwickelt wurden.
- Remotedesktopprotokoll 8.0 aktivieren
- Konfigurieren der Bildqualität für RemoteFX Adaptive Graphics
Wenn ich eine Verbindung zum Server herstelle und in der Ereignisanzeige zu „RemoteDesktopServicesd-RdpCoreTS“ gehe, werden mir keine Ereignisse mit der Ereignis-ID 162 oder 170 angezeigt. In der Dokumentation steht, dass diese bei Verwendung der Hardwarecodierung angezeigt werden sollten.
Was mache ich falsch? Warum bekomme ich keine Hardware-H.264-Kodierung? Gibt es eine andere Einstellung, die ich vermisse und aktivieren muss?
Antwort1
Endlich habe ich es zum Laufen gebracht. Die Lösung bestand aus mehreren Teilen.
Hardware-Kodierung istNURjemals mit AVC444-Kodierung verwendet. Wenn Ihr Client dem Server nicht explizit mitteilt, dass er AVC444-fähig ist (z. B. wenn er nur AVC420 verarbeiten kann), wird der RDP-ServerNIEMALSHardware-Kodierung verwenden. Ich denke, das liegt daran, dass MS einen speziellen Codec verwendet, um einen Stream zu generieren, der AVC420-Decoder-korrekt ist, aber eine spezielle Kodierung anwendet, die dafür sorgt, dass Schriftarten nicht blockig und verschwommen aussehen.
Deshalb: Stellen Sie sicher, dass Ihr Client AVC444 unterstützt und aktivieren Sie gegebenenfalls keine Fallback-Optionen.
Wenn Sie den FreeRDP-Client verwenden, stellen Sie sicher, dass Sie ihn startenmit
/gfx-h264:AVC444
, Sie haben mindestens/bpp:24
und NO/rfx
oder eingestellt/rfx-mode:video
. Sie müssen außerdem sicherstellen, dass Sie FreeRDP mit ffmpeg h.264-Unterstützung und nicht mit OpenH.264 erstellt haben, da letzteres die Unterstützung für die AVC444-Dekodierung beschädigt hat und zu Artefakten führt, die RDP unbrauchbar machen.Die Nvidia-Treiberversion ist wichtig. Ich habe es ursprünglich mit dem neuesten „Game Ready“-Treiber von Nvidia versucht und konnte ihn nicht zum Laufen bringen. Am Ende habe ich es mit dem „Studio“-Treiber zum Laufen gebracht, der etwas älter ist.
Hardware-Unterstützung für AVC444-Kodierung istNOTWENDIG. Das bedeutet Maxwell GM107 oder bessere GPU (nur GeForce 9xx und höher), da ältere Versionen keine YUV444-Kodierungsunterstützung haben. Ich habe es zunächst mit einem GT630 versucht, der auf einer Kepler GK208 (GT 630) GPU basiert, die nur AVC420 und nicht AVC444 unterstützt.
Um es zusammenzufassen: Damit dies funktioniert, benötigen Sie:
Hardware, die YUV444/AVC444-Kodierung unterstützt (GM107/9xx-Serie oder höher)
Nvidia Studio-Treiber (sollte zumindest zum Zeitpunkt des Schreibens der Game Ready-Treiber sein)
Client, der die AVC444-Dekodierung unterstützt und sich als solcher meldet.
Aktivieren Sie die Option zur Priorisierung/Bevorzugung von AVC444 auf der Serverseite.
Behalten Sie die Auflösung bei <= 2560x1440
Update: Dies funktioniert deutlich besser und stabiler, wenn Sie statt Windows 10 verwendenWindows Server 2016 für Ihren Remote-Gaming-Host.