Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 66

Настройка кодировщика NVENC в OBS

Отличная статья для начинающих и бывалых стримеров игр на Twitch и Youtube. Тут вы узнаете как настроить OBS под GeForce RTX и добиться профессионального качества потоковой видеотрансляции на ПК.

Благодаря сотрудничеству NVIDIA и OBS вывести качество стриминга на новый уровень теперь может любой обладатель GeForce RTX. Новый GeForce-оптимизированный OBS и аппаратный кодировщик NVENC в видеокартах на архитектуре Turing позволяют добиться профессионального качества потоковой видеотрансляции на одном ПК.

Для достижения наилучшего качества популярным игровым Youtube и Twitch стримерам приходится использовать второй ПК. Единственная задача которого — кодирование и трансляция видеопотока игры. Помимо второй системы стримерам также приходится тратиться на карту захвата и дополнительный комплект “клава-мыши”.

Благодаря новому кодировщику NVENC и сотрудничеству NVIDIA с OBS, теперь столь же высокое качество трансляции, как при использовании двух ПК, доступно на любой системе с GeForce RTX и GeForce GTX 16, будь то ПК или ноутбук.

Более высокая производительность на видеокартах архитектуры Turing в новом OBS

В GeForce RTX и GeForce GTX 16 интегрирован новый аппаратный кодировщик NVENC, этот отдельный блок используется для быстрого кодирования видео. С аппаратным ускорением NVENC отпадает необходимость в программном кодировании силами процессора, что позволяет уменьшить упор видеокарты в производительность процессора и приводит в конечном счете к повышению числа кадров в играх.

Так, новая версия OBS Studio 23.0 уменьшает падение производительности при стриминге на величину до 66% по сравнению с предыдущей версией приложения, делая игровой процесс более отзывчивым и приятным.

Величина падения производительности в OBS с различными кодировщиками

В играх жанра “королевская битва”, таких как Fortnite, PUBG, Call of Duty: Black Ops 4 — Blackout и Apex Legends, приросты частоты кадров могут достигать внушительных 48% относительно “x264 Fast” кодирования с равным битрейтом, и 27% в сравнении с “x264 Very Fast”.

Все остальные видеокарты, начиная с архитектуры Кеплер, также выигрывают от новых оптимизаций производительности OBS, но наименьшие потери производительности и наиболее высокий уровень качества изображения будет на картах семейства Turing, ведь в этих картах самая новая и продвинутая версия NVENC.

Играй и стримь в максимальном качестве с GeForce RTX и GeForce GTX 16

Карты семейства Turing на 15% более эффективны при H.264 кодировании (требуют на 15% меньшего битрейта для достижения того же уровня качества), чем карты поколения Pascal.

А это значит, что на картах Turing можно стримить с более высоким качеством по сравнению с программным x264 Fast кодированием, качество изображения аналогично значительно более ресурсоемкому x264 Medium.

Сравнение качества изображения при одинаковом битрейте по пиковому отношению сигнала к шуму

На скриншотах ниже хорошо видно насколько лучше по качеству ускоренное кодирование на картах Turing, чем программное кодирование x264 Fast на CPU.

Сравнение качества кодирования

Сравнение-качества-кодирования.jpg

Обратите внимаение, что текст четче на картинке NVIDIA RTX, края и детали моделей также намного четче и лучше сохранены при аппаратном кодировании на картах Turing.

Сравнение качества кодирования

Сравнение-качества-кодирования-2.jpg

Сравнение качества кодирования

Сравнение-качества-кодирования-3.jpg

Twitch рекомендует использовать по меньшей мере 6000 кбит/с битрейт для стриминга в 1080p с 60 кадрами. Но если ваше интернет подключение не справляется одновременно с игровым и видео трафиком, повышенная эффективность кодирования карт семейства Turing будет весьма кстати и позволит вам понизить битрейт без значительных потерь качества.

Требования к ПК

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

  • GPU: видеокарта серии GeForce RTX, либо GTX 16
  • OS: 64-bit Windows 10, with October 2018 Update (version 1809, или новее)
  • SW: OBS Studio 23.0

Требования для стриминга:

  • GPU: видеокарта GeForce GTX на архитектуре Kepler, Maxwell, Pascal
  • OS: 64-bit Windows 10, with October 2018 Update (version 1809, или новее)
  • SW: OBS Studio 23.0

Настройка OBS

Перейдем к настройкам OBS.

Для начала вам потребуется скачать и установить последнюю версию OBS — https://obsproject.com/download

После установки, откройте OBS и пройдите в настройки, выберите раздел “Output” как на изображении ниже.

Настройки-OBS-раздел-«Output».jpg

В ниспадающем меню “Output mode” выставьте “Advanced”.

В меню “Encoder” необходимо выставить “NVIDIA NVENC H.264 (new)”.

Опция “Enforce streaming service encoder settings” должна быть выключена.

Для Twitch и Youtube в меню “Rate Control” рекомендуем воспользоваться опцией CBR — постоянный битрейт.

Значение “Bitrate” не должно превышать 75% от пропускной полосы вашего интернет канала, проверить который вы можете по ссылке — https://www.speedtest.net/ru

Например, если у вас 8 мбит/с интернет подключение, битрейт должен быть не выше 6000 кбит/с.

Для Twitch и Youtube настройка “Keyframe Interval” должна быть равна “2”.

Для настройки Preset мы рекомендуем выставить максимальное качество — “Max Quality”, если в процессе стриминга наблюдается дерганый видеоряд, то настройку можно понизить до высокого качества.

Настройка “Profile” определяет качество кодирования H.264 и должна быть всегда выставлена на “High”.

Настройка “Look ahead” может улучшить качество кодирования на видеоконтенте с медленным движением камеры, но для стриминга лучше оставить эту опцию выключенной.

Настройку “Psycho Visual Tuning” лучше оставить включенной, т.к. она снижает число графических артефактов и уменьшает блочность.

Число “B-frames” лучше оставить на “2”, эта настройка существенно увеличивает качество изображения, но вместе с тем растут и требования к пропускной способности канала.

Далее разберемся с разрешением и частотой кадров трансляции.

Переключитесь на раздел “Video” настроек, см. изображение ниже.

Настройки-OBS-раздел-«Video».jpg

Настройка “Base (Canvas) Resolution” должна соответствовать разрешению, выставленному в игре.

Настройка “Output (Scaled) Resolution” должна быть равна или ниже “Base (Canvas) Resolution”. На настройку влияет пропускная способность вашего канала и выставленный битрейт. Высокое разрешение при низком битрейте будет приводить к высокой блочности видео, поэтому рекомендуем тщательно подбирать оба параметра — “Output (Scaled) Resolution” и “Bitrate”.

То же самое касается настройки “Common FPS Values”, которая также зависит от пропускной способности канала, битрейта и разрешения видео. Для оптимального качества лучше ознакомиться с рекомендациями Twitch и Youtube:

https://stream.twitch.tv/encoding/

https://support.google.com/youtube/answer/1722171?hl=en

Ниже список рекомендуемых настроек разрешения и частоты кадров в зависимости от выставленного битрейта:

Если битрейт ниже 3500 кбит/с, разрешение должно быть равно 720p, частота кадров — 30.

Для битрейта от 3500 до 5500, разрешение должно быть равно 720p, тогда как частоту кадров можно увеличить до 60.

При битрейте выше 6000, можно использовать 900p и 1080p разрешения с частотой кадров равной 60.

Если “Base (Canvas) Resolution” выше “Output (Scaled) Resolution”, то наиболее высокое качество изображения будет с “Lanczos (Sharpened scaling, 32 samples)” фильтром масштабирования — “Downscale Filter”.

Несмотря на наилучшее качество картинки, настройка “Lanczos (Sharpened scaling, 32 samples)” может понизить производительность в игре, в таком случае можно воспользоваться более легкой опцией бикубического масштабирования с 16 сэмплами.

Источник — https://vk.com/nvidia

Для стриминга видеокартой Nvidia GeForce GTX или RTX

Привет! «Съел собаку» на настройке кодировщика NVENC в OBS и хочу поделиться своим, самым удачным пресетом настроек кодировщика потокового видео.

Я иногда стримлю на Twitch, поэтому настройки кодировщика будут приведены преимущественно для данной стриминговой платформы. Стримлю я при помощи StreamLabs OBS, но она, по своей сути одно и то же, что и OBS Studio.

Тестируем канал с помощью Twitch Bandwidth Test

Для начала рекомендую скачать утилиту Twitch Bandwidth Test и протестировать пропускную способность твоего интернет-канала, а также выбрать наиболее удачный сервер для стрима на него. Для этого тебе понадобиться «Основной ключ трансляции», найти его можно в настройках твоего профиля на Твитче в разделе «Канал и видеоматериалы».

twitchkey.jpg

Далее его необходимо скопировать и вставить в Twitch Bandwidth Test

twitchtest.jpg

Затем нужно выбрать интересующий тебя регион, в котором расположены серверы, в моём случае это «Europe» и нажать кнопку «Start».

twitchtest-2.jpg

После окончания теста пропускной способности до серверов Твитча, можно понять, какой сервер для стрима лучше принудительно указать в настройках OBS. В моём случае это «Poland, Warsaw» и «Austria, Vienna», так как пропускная способность до серверов 10Мб/с+ и пинг до них минимальный. Запоминаем подходящие серверы и едем дальше.

Переходим к настройке OBS

Запускаем StreamLabs OBS (SLOBS) или OBS Studio (OBS) и идём в настройки. В SLOBS нас будет интересовать пункт «Трансляция», а в OBS — «Вещание».

Задание лучшего сервера для стриминга вручную

Выставляем наилучший сервер, сохраняем и переходим к вкладке «Вывод» и настраиваем кодировщик NVENC так, как представлено ниже на скриншотах.

Режим вывода: Расширенный Кодировщик: Nvidia NVENC H.264 (new) Галочку НЕ ставить => Принудительно использовать настройки кодировщика потоковой службы Управление битрейтом: CBR Битрейт: 8000 Kbps Интервал ключевых кадров (сек): 2 Пресет: Макс. качество Profile: High Галочку НЕ ставить => Предугадывание Галочку СТАВИТЬ => Психовизуальная корректировка GPU: Макс. кол-во B-кадров: 4

Далее переходи во вкладку «Видео» и настраиваем всё как на скриншоте, ниже поясню подробнее.

Базовое (основа) разрешение: 1920×1080 Выходное (масштабированное) разрешение: 1280×720 Фильтр масштабирования: Метод Ланцоша (Чёткое масштабирование, 32 или 36 выборок) Общие значения FPS: 60

На этом основная настройка кодировщика NVENC, в нашем случае NVENC (new) завершена и ты можешь свободно стримить на Твитч с битрейтом в 8000 с очень приличным качеством, не будучи при этом Twitch Partner. Любой, даже новичок на Твитче может использовать этот битрейт, если ему позволяет скорость собственного подключения к Интернет.

Для кого подойдут данные настройки кодировщика?

Данные настройки кодировщика NVENC (new), подойдут владельцам видеокарт серий GTX и RTX, на обоих поколениях карт, при использовании кодировщика NVENC (new) картинка заметно лучше и меньше «разваливается на пиксели» ем при использовании старого кодировщика NVENC в играх с очень динамичным контентом, например в Escape From Tarkov и других шутерах. За потоковое кодирование в GPU от Nvidia отвечает отдельный чип, который минимизирует нагрузку на железо и практически «не режет FPS», в отличии от софтового кодировщика x264, который использует центральный процессор для кодирования потокового видео.

В данном случае, выходное разрешение масштабируется до 720p, что в совокупности с битрейтом 8000 даёт очень приличное качество картинки на выходе. Если ты стримишь не слишком динамичные игры, тогда ты можешь получить очень качественное изображение на выходном разрешении в 900p (1600×900) или даже в 1080p (1920×1080). Во вкладке «Видео» вместо в параметре «Выходное (масштабированное) разрешение» нужно установить вручную 1600×900 или 1920×1080.

Выходное (масштабированное) разрешение: 1600×900 Фильтр масштабирования: Метод Ланцоша (Чёткое масштабирование, 32 или 36 выборок)

или

Выходное (масштабированное) разрешение: 1920×1080 Фильтр масштабирования: Бикубический (чёткое масштабирование, 16 выборок)

Также при таком пресете, можно получить отличное качество картинки на разрешениях 900p и 1080p и в высоко динамичных играх, но в которых отсутствует, либо минимизировано количество мелких элементов на локациях, текстурах: трава, деревья, дождь, снег и прочие мелкие частицы, каждая из которых требует обработки кодировщиком и в итоге перегружают битрейт, в связи с чем появляются «кубики», «блоки» или «пиксели» которые искажают и замыливают изображение (обычно при резком изменении плана изображения, например при беге с резкими поворотами по траве в лесу).

Вывод

В качестве вывода можно смело заявить, что данный пресет является отличной альтернативой хорошо настроенному кодировщику x264 с пресетом veryfast и профилем high (с настройкой доп. параметров кодировщика x264) и лишь немного уступает ему в качестве кодирования высоко динамичного контента с большим количеством мелких частиц, но значительно экономит ресурсы и производительность ПК, что в итоге крайне положительно сказывается на FPS.

Для сравнения можешь попробовать настроить себе в OBS кодировщик x264 с пресетом veryfast, профилем high и одной из приведенных ниже строк с дополнительными параметрами кодировщика x264.

Первый вариант

Проще, но легче для ЦП

x264-1.jpgПервый вариант подойдёт владельцам процессоров уровня Intel Core i7-4790k с 4-ю ядрами и 8-ю потоками с тактовой частотой не ниже 4 Ghz (с включенным Hyper Treading)

Кодировщик: x264 Галочку НЕ ставить => Принудительно использовать настройки кодировщика потоковой службы Управление битрейтом: CBR Битрейт: 8000 Kbps Галочку НЕ ставить => Использовать пользовательский размер буфера Интервал ключевых кадров (сек): 2 Предустановка использования ЦП: veryfast Профиль: high Настройка: (Нет) Настройки x264 (разделённые пробелом): partitions=all direct=auto aq-mode=2 aq-strength=0.9 ipratio=1.1 rc_lookahead=60 fast_pskip=0 bframes=1 b_pyramid=0 b_adapt=2 weightp=2 deadzone-inter=4 deadzone-intra=2 qpstep=8 subme=1

Второй вариант

Качественнее, но тяжелее для ЦП

x264-2.jpgВторой вариант подойдёт владельцам процессоров уровня Intel Core i7-6800k или Intel Core i7-8700k с 6-ю ядрами и 12-ю потоками с тактовой частотой не ниже 4.3 Ghz (с включенным Hyper Treading)

Кодировщик: x264 Галочку НЕ ставить => Принудительно использовать настройки кодировщика потоковой службы Управление битрейтом: CBR Битрейт: 8000 Kbps Галочку НЕ ставить => Использовать пользовательский размер буфера Интервал ключевых кадров (сек): 2 Предустановка использования ЦП: veryfast Профиль: high Настройка: (Нет) Настройки x264 (разделённые пробелом): partitions=all direct=auto aq-mode=2 aq-strength=0.9 ipratio=1.1 rc_lookahead=120 fast_pskip=0 bframes=2 b_pyramid=0 b_adapt=2 weightp=2 deadzone-inter=4 deadzone-intra=2 qpstep=8 subme=6 deblock=-1:-1 psy_rd=1.1:0.15 trellis=2

Чтобы проверить качество выходного видео из кодировщика, достаточно запустить запись в локальный файл без транслирования на стриминговую платформу. Для этого в настройках OBS во вкладке «Вывод» => «Запись» нужно выставить «Кодировщик» в параметр «Использовать кодировщик потока» и «Формат записи» в «flv». Затем можно начинать запись находясь, к примеру в игре.

x264-3.jpg

Качество видео в локальном файле будет идентично качеству видео на Твиче у зрителей во время трансляции, таким образом можно подобрать наиболее подходящий пресет кодировщика под себя и затем выходить в эфир и радовать своих зрителей годным контентом.

Если у тебя возникли вопросы или замечания, пожалуйста оставь свой комментарий ниже. До связи!

Используемые источники:

  • https://gamecaste.ru/streams-pc-geforce-rtx.html
  • https://okatiev.ru/all/nastroyka-kodirovschika-nvenc-new-dlya-strima-videokartoy-geforc/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации