Nvenc какие видеокарты поддерживают

Обновлено: 03.07.2024

Выбираем кодек для записи игровых видео с графической картой NVIDIA:

H.264 против HEVC: какой кодек лучше?

Хотя H.264 долго оставался стандартом качества для западных стримеров, сейчас лучшим выбором будет HEVC. Хотя максимальный стандарт качества у них одинаковый, HEVC лучше справляется с предоставленным ему дисковым пространством. Если записать два видео, одинаковых по продолжительности, содержанию и месту на жёстком диске, видео, кодированное в HEVC, будет лучшего качества. При одинаковом качестве записи файлы HEVC всегда меньше, чем видео, записанные в H.264.

Почему же многие пользователи до сих пор предпочитают H.264? Проблема нового формата — в высоких требованиях и совместимости:

  • Улучшенный алгоритм HEVC требует больше ресурсов центрального процессора. При недостаточной мощности железа это может вызывать падение фреймрейта в современных играх, требовательных к ресурсам, что сводит на нет эффект от лучшего качества записи.
  • Некоторые медиаплееры не поддерживают HEVC. Если вы не собираетесь повторно кодировать видео, вам придётся заранее проверить нужные плееры на совместимость.

Для стримеров, которые не обновляют железо каждый год, но всё же обладают достаточно мощными видеокартами, чтобы играть в ресурсоёмкие игры, H.264 на сегодняшний день будет лучшим выбором.

Сравнение скорости, качества и размера видео H.264 и HEVC

В приведённой ниже таблице для сравнения указаны показатели видео, записанного разными кодировщиками.

Кодек Размер Качество Скорость Особенности
HEVC 33,5 Мб Выше среднего — соответствует настройкам Высокая Кодек обладает более совершенным алгоритмом сжатия без потери качества
H264 34,2 Мб Выше среднего — соответствует настройкам Высокая Лучший кодек для большинства пользователей за счёт низких требований к железу

Для сравнения использовалось видео продолжительностью в одну минуту, записанное в разрешении 1920x1080 при частоте кадров (FPS) 30 кадров в секунду. Качество записи в обоих случаях было установлено на 80 из 100.

Чтобы использовать кодировщик Nvidia NVENC, выполните следующие шаги:

  1. Скачайте и установите последнюю версию Напоминаем, что скачать крякнутый Бандикам с полным доступом ко всем функциям можно на нашем сайте.
  2. Установите последнюю версию драйверов для видеокарты Nvidia.
  • Откройте официальный сайт Geforce и загрузите последние драйвера для видеокарты Nvidia.
  • Прямая ссылка на новые драйвера Nvidia здесь.
  1. Выберите в настройках один из вариантов: H264 (Nvidia® NVENC) или HEVC (Nvidia® NVENC).
  • Нажмите на кнопку «Настройки» во вкладке «Видео» в основном окне Bandicam, затем выберите нужный кодировщик.
  • H264/HEVC — один из наиболее часто используемых форматов для записи, компрессии и распространения цифрового видео в высоком качестве. Для дополнительной информации посмотрите сравнение кодеков видео в Bandicam.

Как настроить кодек:

  • Профиль. Если вы используете кодек H264 (NVIDIA® NVENC), появится меню выбора профиля (Авто, Основной, Высокий).
  • VBR — переменный битрейт. Если вы выберете приоритет качества, VBR будет использовать более высокий битрейт для быстрых сцен и низкий битрейт для медленных сцен. В результате, видео будет меньше без потерь в качестве (рекомендуется).
  • CBR — постоянный битрейт. Если вы выберете эту опцию, кодек всегда будет держаться в рамках установленного битрейта. Это хорошо, если вам нужно заранее знать размер видео, но такие видео часто оказываются больше по размеру.
  • Устройство GPU. Если вы используете более, чем 2 GPU, выберите предпочитаемые устройства (например, видеокарта А для записи видео и видеокарта B для игр).
  • Интервал между ключевыми кадрами (кейфреймами). Поставьте значение «150», чтобы ключевые кадры создавались каждые 150 кадров.
  • Настройки FourCC. Чтобы записанное видео можно было проигрывать в медиаплеере, выберите H264. Если после записи вы хотите редактировать видео в профессиональных редакторах в контейнере AVI, выберите X Узнайте больше здесь.

Если вы не видите нужные опции кодеков H264 или HEVC в панели выбора кодеков Bandicam, попробуйте следующие решения:

  1. Убедитесь, что используете операционную систему Windows 7 или выше.

Кодировщики NVENC работают на операционных системах Win 7, 8 и 10. В Windows XP и более старых ОС опции NVENC будут недоступны.

  1. Проверьте, поддерживает ли ваш графический процессор технологию NVENC

Обратите внимание: не все модели, поддерживающие H264, будут поддерживать новый стандарт HEVC.

Если вы устанавливали или обновляли Bandicam в последние несколько лет, проблем возникнуть не должно: кодировщик NVENC H264 поддерживается с Bandicam 2.0, а обновлённый стандарт NVENC HEVC — с 2.4.0.

В этом руководстве я поделюсь подробными настройками кодировщика Nvidia NVENC H.264 (new) в OBS для получения наилучшего качества картинки во время проведения трансляции на Twitch, а также предоставлю достоверное определение для каждого параметра.
Настройки для трансляций на YouTube представлены в данной статье .
Несмотря на то, что информации может показаться довольно много, это всего лишь треть от исходного материала, чтобы сделать статью более доступной для восприятия.
Статья создана на основе огромного количества изученного материала, в том числе сведений из научных работ и публикаций, а также анализе субъективной (визуальной) и объективной оценки данных.

✅ Права администратора для OBS

Для начала предоставьте OBS в свойствах права администратора, чтобы программа зарезервировала для себя необходимое количество ресурcов, в том числе и GPU. Это может решить проблемы с перегрузами кодировщика и пропуском кадров при кодировании.

📡 Раздел трансляция

1. Сервис Twitch .
Рекомендую Подключить аккаунт , чтобы отображался чат трансляции в отдельном окне (док-панель).
Запускать чат в браузере больше не потребуется, что сэкономит ресурсы.
(Если не хотите подключать аккаунт, то выберите "Использовать ключ потока" и нажмите на пункт "Получить ключ потока".
Скопируйте ключ основной трансляции и вставьте в строку в OBS).
2. Сервер Автоматически .
OBS автоматически определит наиболее оптимальный сервер.
Если вы хотите самостоятельно подобрать сервер, то можете воспользоваться специальной утилитой TwitchTest .
3. Включение режима тестирования пропускной способности позволит протестировать стабильность трансляции без выхода в эфир.
4. Дополнения чата Twitch. Выберите для отображения смайликов BetterTTV и FrankerFaceZ в док-панели чата.
Смайлики для канала нужно подключать и настраивать отдельно.

5. Поставьте галочку "Не следовать ограничениям, накладываемые потоковой службы", чтобы OBS не ограничивал битрейт и интервал ключевых кадров до рекомендуемых значений стриминговой платформы.

Если вы пользуетесь Streamlabs OBS, то галочку Enforce Streaming Service Encoder Settings ставить не нужно!

1️⃣ Кодировщик

NVENC H.264 (new) - это обновленный и более производительный кодировщик, доступный с ☝️ 23 версии OBS.
Главное его отличие от старой версии NVENC H.264 (без new) - это значительное снижение влияния на производительность в играх (до 66%) при кодировании видео, т.к графическому процессору больше не требуется буферизировать кадры в оперативную память, а это стало реализовано внутри самой видеокарты за счёт использования видеопамяти, что гораздо более эффективно.

2️⃣ Тип битрейта

CBR - метод управления скоростью битрейта, при котором заданный битрейт не изменяется на протяжении всего видео или трансляции. Данный тип битрейта отлично подходит для трансляций, где необходима постоянная скорость передачи данных, так как при прямой трансляции видеоданные весьма уязвимы к резкому колебанию битрейта, что может негативно отразиться на качестве видео и вызвать проблемы при воспроизведении у некоторых зрителей.

3️⃣ Битрейт

Битрейт определяет объём закодированной информации, передаваемой за единицу времени.
Рекомендуемый битрейт для твича составляет 6000 кб/с, макс. 8000 кб/с и 8500 макс. возможный включая аудио.
Если вы не являетесь аффилированным стримером (компаньоном), тогда лучше использовать битрейт ✔️ 6000 кб/с и ниже, т.к на трансляции у зрителей чаще всего не будет возможности выбора других разрешений с меньшим битрейтом.

Это опция называется транскодирование видео, которое в приоритете предоставляется компаньонам и всегда партнерам твича .
То есть серверы твича будут кодировать ваш видеопоток в несколько меньших разрешениях с меньшим битрейтом, чтобы он был более доступным.
Если ваш стрим не транскодируется, то вы потенциально можете терять зрителей, т.к зрители с медленным интернет соединением не смогут запустить ваш стрим, либо у них могут возникнуть проблемы с воспроизведением (буферизация видео), т.к проигрыватель в браузере не сможет переключиться на подходящее разрешение с меньшим битрейтом, ведь их просто нет.

Поэтому для начинающего стримера важно стать компаньоном твича, чтобы получить приоритет для транскодирования трансляции.

Какой битрейт лучше всего использовать

➜ Для партнеров твича можете смело использовать битрейт до 8000 кб/с.
➜ Если вы компаньон твича, то вы можете также использовать битрейт 8000 кб/с, особенно для игр с высоким количеством движений.
Однако после запуска стрима рекомендую убедиться, что ваш видеопоток транскодируется.
Если этого не произошло, то лучше изменить битрейт до 6000 кб/с.
➜ 6000 кб/с и ниже, если вы начинающий стример.

☝️ Вы можете изменять битрейт в OBS прямо во время проведения трансляции. Чтобы изменить битрейт, перезапускать трансляцию не обязательно.

Подробнее о партнерской программе Twitch и требованиях:
Присоединение к партнерской программе.

4️⃣ Интервал ключ. кадров

Этот параметр определяет, как часто будет кодироваться ключевой кадр в видео.

Красным цветом указаны ключевые кадры (i-frames) в структуре видео. Здесь они кодируются через каждые 2 секунды. Красным цветом указаны ключевые кадры (i-frames) в структуре видео. Здесь они кодируются через каждые 2 секунды.

Ключевой кадр (опорный) - это кадр, который содержит полные сведения об изображении, и при кодировании на него ссылаются динамические кадры , в которых отображаются данные об изменении в последовательности изображений.
👌 Оптимальное значение для трансляции ✔️ 2 секунды.
Это необходимо для синхронизации с кодировщиком потоковой службы и сокращения буферизации при воспроизведении.
Для не динамичных игр с низким количеством движений можно указать ✔️ 4 секунды, что позволит сэкономить битрейт для динамических кадров и немного улучшить общее качество, т.к ключевые кадры (i-frames) являются самыми требовательными к битрейту.
Из примеров можно назвать такие жанры игр как моба, стратегии, платформеры, карточные игры или IRL - трансляции.
Во всех остальных случаях оставляйте 2 секунды.

5️⃣ Пресет

✔️ Качество - это универсальный выбор.
✔️ Макс. качество включает использование кодировщиком двухпроходного кодирования для предварительного анализа видеоданных, что позволяет более эффективно распределить битрейт при кодировании кадров. Это незначительно улучшает качество видео, но существенно увеличивает нагрузку на энкодер (до 50%).
Если у вас современная видеокарта на архитектуре Pascal, Turing или Ampere, то можете смело использовать пресет Макс. качество.
Если у вас слабая видеокарта, и вы испытываете проблемы с производительностью при стриме или записи видео в играх, то можете переключить пресет на качество, чтобы уменьшить нагрузку на кодировщик.

Нагрузку на кодировщик вы можете отследить в диспетчере задач, где Video Encode отображает нагрузка на энкодер Nvenc.

6️⃣ Профиль

Профиль определяет, какие комплекты возможностей может использовать кодировщик для сжатия видео, для обеспечения совместимости при его воспроизведении на устройствах, которые имеют разные возможности декодирования.
✔️ High профиль позволяет кодировщику использовать больше доступных функций для сжатия видео, что напрямую улучшает его качество и степень сжатия (размер).
Визуально разницу в качестве между main и high профилем будет сложно заметить, но это не значит, что её нет.

7️⃣ Макс.кол-во B-кадров

B-кадры - самые сжатые кадры и наименее требовательные к битрейту, что позволяет существенно увеличить степень сжатия видео.
Использование b-кадров крайне рекомендуется, в особенности при ограниченном битрейте, но их не должно быть слишком много, т.к они весьма уязвимы к артефактам в динамичных фрагментах видео.

Обратите внимание на размер b-кадров (отмечены зеленым цветом), по сравнению с p-кадрами (синие) и i-кадрами (красные). Обратите внимание на размер b-кадров (отмечены зеленым цветом), по сравнению с p-кадрами (синие) и i-кадрами (красные).

➜ Оптимальным значением является ✔️ 2 b-кадра .
Это отличный компромисс для сохранения качества, как в относительно статичных, так и в динамичных фрагментах.

➜ 3 или 4 b-кадра лучше использовать для трансляции игр с низким количеством движений, что позволит улучшить качество картинки, особенно в статичных фрагментах, где камера неподвижна.

8️⃣ Предугадывание

Предугадывание ( look-ahead ) повышает точность управления скоростью видеокодера, позволяя кодировщику буферизовать определенное количество кадров (до 32 для Nvenc), оценивать их сложность и соответствующим образом распределять биты между этими кадрами пропорционально их сложности. Это также позволяет кодировщику динамически выбирать B и P-кадры в зависимости от сложности сцен.

Опция взаимосвязана с установленным значением в Макс. B-кадров и сокращает их количество вплоть до 0, в зависимости от сложности видеофрагмента.

Структура видео при включенном предугадывании с 4 B-кадрами в динамичном видео. Структура видео при включенном предугадывании с 4 B-кадрами в динамичном видео.

✅ Включить.
- Для игр с низким количеством движений и при использовании более 2 б-кадров.
❎ Отключить.
- При трансляции шутеров или динамичных игр c использованием 2 или 1 b-кадра.
Это позволит сэкономить битрейт за счёт статичного кодирования b-кадров, что улучшит общее качество.

9️⃣ Психовизуальная корректировка

Психовизуальная корректировка (psycho visual tuning) корректирует искажение скорости кодировщика и включает параметры кодировщика, которые оптимизируют использование битрейта для повышения визуального восприятия качества, выделяя больше битрейта при кодировании для более однородных областей, где потенциально могут образоваться блочности. Это достигается за счёт ухудшения других отдельных фрагментов, на которые человек визуально обычно не обращает внимание.
✔️ Опция уменьшает количество блочной и артефактов в видео, поэтому её следует включить.

🔟 Разрешение видео при трансляции на twitch

Дело всё в том, что 6000 кб/c для трансляции современный игр на твиче, особенно шутеров, слишком мало, поэтому имеет смысл уменьшать выходное разрешение видео, чтобы сэкономить битрейт. За счёт этого можно улучшить качество картинки и сократить количество блочностей в видео.
👌 Оптимальные разрешения для стрима динамичных игр в 60 фпс при сохранении чёткости изображения:
✔️ 1664x936, 1600x900, 1536x864
1280x720 также можно рассматривать, особенно, если у вас слабая видеокарта, но картинка будет слишком размытой.
- Для стрима игр с низким количеством движений лучше использовать разрешение 1920x1080.
- Если у вас 2К или 4K монитор, то я крайне не рекомендую стримить в исходном разрешении на твич по вышесказанной причине.

☝️ В Фильтре масштабирования выберите метод ланцоша , что позволит повысить чёткость картинки при масштабировании и сгладить "лесенки"( алиасинг ) на диагональных линиях.

Подробней о разрешении для twitch вы можете узнать в моем видео:

🔹 Частота кадров

Стандартное значение ✔️ 60 к/c.
При трансляции в 60 к/с картинка будет более плавной при просмотре, но качество будет хуже, чем при более низкой частоте кадров.
➜ Для шутеров и динамичный игр лучше использовать 60 или 50 к/с.
➜ Для игр с низким количеством движений можно указать 30 к/c, чтобы улучшить общее качество за счёт экономии битрейта.
☝️ Если большую часть времени фпс в игре составляет ниже 60 к/с, то и стримить в 60 к/с не имеет смысла.
Если у вас слабая видеокарта, то уменьшение частоты кадров и выходного разрешения будет гораздо более оправданным, чем уменьшение параметров в настройках вывода, чтобы снизить нагрузку на кодировщик.

👍 Оптимальные настройки кодировщика

📌 Настройки для большинства пользователей в независимости от типа контента, который вы стримите, и поколения видеокарты.

Nvidia NVENC это технология, позволяющая кодировать видео в H.264 (и H.265 для последних процессоров Maxwell) силами GPU со скоростями несколько сот кадров в секунду (в зависимости от профиля и разрешения). Вендор предоставляет возможность использования этой технологии в виде набора разработчика NVENC SDK.

Реализация

Имеется множество утилит для различных платформ, которые в каком-то виде дают доступ к функционалу SDK. В марте 2015 года вышел релиз ffmpeg, который включил в себя поддержку NVENC. ffmpeg занимает центральное положение среди всего множества свободного и не очень ПО для работы с видео, поэтому с практической точки зрения он наиболее интересен. Этим инструментом можно и обрабатывать видеофайлы (1, 2), и вести потоковое вещание (1, 2). С момента мартовского релиза вышел ещё один, который включил в себя ещё больше опций для кодека nvenc и поддержку H.265 (HEVC).

Сборкой FFmpeg с поддержкой NVENC мы и займёмся.

Развёртывание
  • Одна видеокарта Nvidia на ядре Kepler или Maxwell. На мой взгляд самый интересный выбор это GTX 970 — процессор Maxwell второго поколения (GM204) за 300$.
  • Один линукс типовой (ubuntu 14.04) на компьютере с видеокартой.
Драйверы и рантайм CUDA

Драйверы и библиотеки установить за раз одним пакетом. Из репозитория лучше ничего не использовать.

На все вопросы уважаемого компьютера следует ответить утвердительно. После установки — перезагрузить.

Заголовочные файлы nvenc

Для сборки приложений с nvenc sdk неободимы некоторые заголовочные файлы. Раньше их необходимо было стягивать из виндовой версии SDK. Но прогресс идёт семимильными шагами и теперь этот файл можно стянуть из примеров в линуксовом SDK. Найдите в примерах (были установлены вместе с рантаймом и драйверами на предыдущем шаге) файлы
nvCPUOPSys.h
nvEncodeAPI.h
nvFileIO.h
NvHWEncoder.h
nvUtils.h

и положите их в /usr/include. Они потребуются только один раз, при сборке ffmpeg. На всех машинах они не нужны.

FFMPEG

Начать его сборку лучше с установки всех сборочных зависимостей.

Я мог что-то забыть, что-то может измениться. Чтобы найти недостающий для сборки файл, не стесняйтесь пользоваться apt-file:


Скачиваем с сайта последнюю версию ffmpeg, распаковываем, конфигурируем, собираем и устанавливаем:

Собираем с libfdk-aac, он точно предпочтительнее имеющегося кодека aac. Кроме прочего, можно заметить опцию --enable-nvenc. В остальном параметры выбраны по мотивам билдспеки пакета libav в самом дистрибутиве ubuntu. После всех манипуляций должен появиться рабочий ffmpeg в /usr/local/bin/ffmpeg.

Применение
Запуск

Опции запуска все точно такие же, как при софтверном кодировании, но только вместо libx264 видеокодек будет называться nvenc (он же nvenc_h264) для h.264 и nvenc_hevc для h.265.

Производительность и качество

Чтобы произвести 1 час видео в 4х качествах с хорошей точностью транскодинга, нужно или потратить примерно 1 час машинного времени двух шестиядерных ксеонов, или чуть более получаса времени десктопа с такой видеокартой. Качество результатов получается неотличимое от программного кодека x264 с аналогичными установками.


Популярность стриминга компьютерных игр растёт с каждым днём, поэтому производители уделяют всё больше внимания той части пользователей, которые строят свои системы с прицелом на трансляцию игровых баталий. До сих пор стримеры, которые подходят к делу со всей серьёзностью, для получения хорошего качества трансляций были вынуждены либо использовать для кодирования дополнительный ПК, либо строить свои конфигурации на базе высокопроизводительных многоядерных процессоров. Но на этой неделе компания NVIDIA объявила о том, что новая версия популярной утилиты для стриминга, OBS Studio, получила специальные оптимизации, которые позволят проводить качественные трансляции без задействования дополнительных ресурсов – при помощи аппаратных возможностей графических процессоров GeForce GTX и RTX.


Суть оптимизаций заключается в усовершенствовании в OBS Studio поддержки аппаратного кодировщика NVIDIA — NVENC.

Обычно профессиональные стримеры редко прибегают к кодированию видеопотока посредством графического ускорителя, поскольку это дополнительно нагружает GPU и приводит к падению FPS в транслируемой игре, а также не позволяет достигать высокого качества изображения. Но с новой, 23-й версией программного обеспечения OBS Studio обе эти проблемы должны быть решены, по крайней мере, так утверждает NVIDIA.


При этом NVIDIA, разумеется, не упустила случая дополнительно рассказать о преимуществах новых видеокарт поколения Turing. Утверждается, что свежие видеокарты «позволяют дополнительно улучшить качество передаваемой картинки при сниженных битрейтах» благодаря архитектурным усовершенствованиям, сделанным в аппаратном кодировщике NVENC. Это должно быть интересно для стримеров, не имеющих в своём распоряжении быстрого интернет-соединения.


Выгоду от использования видеокарты при стриминге NVIDIA иллюстрирует тем, что в популярных играх в жанре королевской битвы, таких как Fortnite, PlayerUnknown's Battlegrounds, Call of Duty: Black Ops 4 - Blackout и Apex Legends, можно достичь улучшения FPS на 48 % в сравнении со стримингом посредством программного кодера x264 с пресетом Fast. Качество изображения в передаваемом видеопотоке, которого можно добиться с видеокартами семейства GeForce RTX, как утверждается, лучше, чем при кодировании процессором с пресетом x264 Fast и сравнимо с пресетом x264 Medium.



OBS Studio новой версии 23.0 для Windows, macOS и Linux доступна для загрузки с официального сайта программы.

Читайте также: