Удаленный рабочий стол Windows 10 с RemoteFX и аппаратным обеспечением h.264 с использованием Nvidia NVENC

Удаленный рабочий стол Windows 10 с RemoteFX и аппаратным обеспечением h.264 с использованием Nvidia NVENC

У меня Windows 10 Pro в качестве сервера и Windows 10 Pro в качестве клиента. На сервере установлена ​​карта GTX 1070 с последним драйвером, и он полностью поддерживает аппаратное кодирование H.264 / AVC 444 с помощью NVENC. Потоковая передача Steam работает с использованием аппаратного кодека на стороне сервера.

У меня включен RemoteFX на сервере, и в групповой политике в разделе «Службы удаленных рабочих столов» / «Узел сеансов удаленных рабочих столов» / «Среда удаленных сеансов» включено следующее:

  • Использовать аппаратные графические адаптеры для всех сеансов служб удаленных рабочих столов
  • Используйте расширенную графику RemtoteFX для RemoteApp
  • Установите приоритет графического режима H.264/AVC 444 для подключений к удаленному рабочему столу
  • Настройте аппаратное кодирование H.264/AVC для подключений к удаленному рабочему столу
  • Настройте сжатие данных RemoteFX
  • Настройка качества изображения для RemoteFX Adaptive Graphics
  • Включить кодирование RemoteFX для клиентов RemoteFX, разработанных для Windows Server 2008 R2 SP1
  • Включить протокол удаленного рабочего стола 8.0
  • Настройка качества изображения для RemoteFX Adaptive Graphics

Когда я подключаюсь к серверу, в средстве просмотра событий и перехожу к RemoteDesktopServicesd-RdpCoreTS, я не вижу никаких событий с EventID 162 или 170, а в документации сказано, что они должны появляться при использовании аппаратного кодирования.

Что я делаю не так? Почему у меня не получается аппаратное кодирование h.264? Есть ли еще какие-то настройки, которые я упускаю и которые нужно включить?

решение1

Наконец удалось заставить это работать. Решение состояло из нескольких частей.

  1. Аппаратное кодированиеТОЛЬКОкогда-либо использовался с кодировкой AVC444. Если ваш клиент явно не сообщает серверу, что он поддерживает AVC444 (например, если он может обрабатывать только AVC420), сервер RDP будетНИКОГДАиспользовать аппаратное кодирование. Я думаю, это потому, что MS использует специальный кодек для генерации потока, который является корректным для декодера AVC420, но применяет специальную кодировку, которая делает шрифты не блочными и размытыми.

    Поэтому: убедитесь, что ваш клиент поддерживает AVC444, и при необходимости не включайте никаких резервных опций.

    Если вы используете клиент FreeRDP, обязательно запустите его.с /gfx-h264:AVC444, вы установили по крайней мере /bpp:24, и НЕТ /rfxили /rfx-mode:video. Вам также нужно будет убедиться, что вы собрали FreeRDP с поддержкой ffmpeg h.264, а не OpenH.264, поскольку последний не поддерживает декодирование AVC444, что приведет к появлению артефактов, которые сделают RDP непригодным для использования.

  2. Версия драйвера Nvidia имеет значение. Изначально я пытался использовать последний драйвер Nvidia "Game Ready", но не смог заставить его работать. В конце концов, я добился работы с драйвером "Studio", который немного старше.

  3. Аппаратная поддержка кодирования AVC444 естьНЕОБХОДИМЫЙ. Это означает Maxwell GM107 или более качественный графический процессор (только GeForce 9xx и более поздние версии), так как более старые версии не поддерживают кодирование YUV444. Сначала я пытался использовать GT630, который основан на графическом процессоре Kepler GK208 (GT 630), который поддерживает только AVC420, но не AVC444.

Итак, подведем итог: для выполнения этой работы вам понадобится:

  1. Оборудование, поддерживающее кодирование YUV444/AVC444 (серия GM107 / 9xx или более поздняя)

  2. Драйвер Nvidia Studio (как предполагалось для драйвера Game Ready, по крайней мере на момент написания этой статьи)

  3. Клиент, поддерживающий декодирование AVC444 и сообщающий о себе как о таковом.

  4. Включите опцию приоритета/предпочтения AVC444 на стороне сервера.

  5. Сохраняйте разрешение <= 2560x1440

Обновление: это работает намного лучше и стабильнее, если вместо Windows 10 вы используетеWindows Server 2016 для вашего удаленного игрового хоста.

Связанный контент