Nvidia video codec sdk что это
Анализ:
GK106 - это адаптер ядра обработки графики и ускорения, производимый NVIDIA.
Из таблицы матриц, поддерживаемой NVIDIA, поддерживаемые форматы GK106 следующие:
Декодирование NVDEC: MPEG-2 VC-1 H.264 (AVCHD)
Кодирование NVENC: H.264 (AVCHD) YUV 4: 2: 0
3.NVIDIA
3.1 Справочник NVIDIA
3.2.Параметры производительности NVIDIA
Найдите Quadro K4000 в производительности кодирования видео от NVIDIA: поддержка одновременного кодирования 16 каналов 1920 X 1080 H.264 (AVCHD) YUV 4: 2: 0, поддержка высокой производительности и качества, а также режим с низкой задержкой;
Примечание. В настоящее время NVIDIA не поддерживает кодировку 4: 2: 2.
Коллекция поддерживаемых форматов кодирования:
Сводка поддерживаемых форматов декодирования:
3.3 Драйвер видеокарты NVIDIA
Сайт драйвера открывается медленно, поэтому загрузите мой драйвер вПерсональный облачный диск NVIDIA драйверСо списком поддержки продуктов
3.3.1. Удалите старый драйвер
3.3.2. Отключить встроенный драйвер nouveau nvidia
И добавьте в файл blacklist-nouveau.conf следующий контент:
После внесения изменений систему необходимо перезапустить. Чтобы проверить, отключен ли модерн, используйте команду:
3.3.3. Установите драйвер
Перезагрузите систему и используйте Ctrl + Alt + F1 для входа в консоль tty1:
3.3.4. Другое
4.ffmpeg
4.1. Поддержка ffmpeg для NVIDIA GPU
- Поддержка кодирования аппаратного ускорения h.264 и hevc, поддержка декодирования аппаратного ускорения h.264, hevc, VP9, VP8, MPEG2 и MPEG4;
- Могут быть установлены параметры, относящиеся к качеству кодирования видео, такие как предварительная установка, скорость и т.д .;
- Фильтры в FFmpeg могут использоваться для сквозного кодирования 1: n или для канала аппаратного ускорения 1: n транскодирования видео;
- Возможность добавлять собственные высокопроизводительные фильтры CUDA;
- Поддержка как Windows, так и Linux;
Кроме того, NVIDIA также предоставляет дополнительные функции для задач обработки видео на GPU.
Изменение размера графического процессора: преобразование одного входа в несколько разрешений и параллельный вывод;
Нулевое копирование графического процессора: включите подключаемый модуль с ускорением графического процессора, чтобы избежать копирования данных между системой и памятью графического процессора при обработке видео;
4.2. Действия по поддержке ffmpeg для NVIDIA GPU
Примечание. Фактически используется следующая конфигурация:
4.3. Просмотрите кодек аппаратного ускорения nvidia:
5. Вывод
- Наконец, было успешно выполнено перекодирование с аппаратным ускорением. Поскольку видеокарта принадлежит к серии GeForce, можно проверить только один способ:
- Судя по результатам, использование аппаратного ускорения высвобождает ресурсы ЦП, и скорость кодирования также значительно улучшается, но качество немного ниже по сравнению с X264;
- Помимо строгих требований к качеству и скорости кодеков, nvidia необходима графическая поддержка графических карт профессионального уровня для производства продуктов;
6. Постскриптум
На 20170125 в очередной раз вложился в разработку nvidia
7. Инструменты
vmstat -w -n 1
nvidia-bug-report.sh
nvidia-cuda-mps-server
nvidia-detector
nvidia-modprobe
nvidia-settings может графически просматривать использование видеокарты
nvidia-uninstall
nvidia-cuda-mps-control
nvidia-debugdump
nvidia-installer
nvidia-smi
nvidia-xconfig
8. Список вопросов.
8.1.cannot load libcuda.so.1
Причина: проблема вызвана моим обновлением драйвера nvidia (версия ubuntu) (с 375,39 до 375,51)
Решение: удалите драйвер, загрузите официальный драйвер 375.39 и переустановите
8.2. Блокировка декодирования
Феномен:
1. Когда исходный пакет потерян, функция декодирования всегда блокируется, и для ее решения используется новый интерфейс;
8.3. Результаты
Используя M2000, максимальный параллелизм может достигать примерно 48 каналов, но фактически используются 32 канала.
Выбираем кодек для записи игровых видео с графической картой 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, выполните следующие шаги:
- Скачайте и установите последнюю версию Напоминаем, что скачать крякнутый Бандикам с полным доступом ко всем функциям можно на нашем сайте.
- Установите последнюю версию драйверов для видеокарты Nvidia.
- Откройте официальный сайт Geforce и загрузите последние драйвера для видеокарты Nvidia.
- Прямая ссылка на новые драйвера Nvidia здесь.
- Выберите в настройках один из вариантов: 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, попробуйте следующие решения:
- Убедитесь, что используете операционную систему Windows 7 или выше.
Кодировщики NVENC работают на операционных системах Win 7, 8 и 10. В Windows XP и более старых ОС опции NVENC будут недоступны.
- Проверьте, поддерживает ли ваш графический процессор технологию NVENC
Обратите внимание: не все модели, поддерживающие H264, будут поддерживать новый стандарт HEVC.
Если вы устанавливали или обновляли Bandicam в последние несколько лет, проблем возникнуть не должно: кодировщик NVENC H264 поддерживается с Bandicam 2.0, а обновлённый стандарт NVENC HEVC — с 2.4.0.
Данная статья была написана по мотивам статьи Эффективное кодирование видео в Linux c Nvidia NVENC: часть 1, общая, однако имеет свои особенности и в отличие от оригинальной статьи, на момент написания которой не было выпущено патча, о котором пойдет речь дальше, я применил переработанный патч Nvidia Acceleration к FFmpeg 3.0.2, получив помимо энкодера nvenc еще и быстрый фильтр ресайза — nvresize.
В итого я получил возможность аппаратно кодировать видео в H.264 и HEVC при помощи видеокарты Nvidia GTX 960 на достаточно слабом компьютере (Xeon L5420) со скоростью (для H.264), превышающей возможности данного процессора до 10 раз (и в 3 раза относительно Core i7)! Причем на моем любимом Debian 8 Jessie.
Технология
Nvidia NVENC это технология, обеспечивающая кодирование видео в H.264 и HEVC на вычислительных мощностях GPU. Важное замечание: сколь-нибудь качественное и быстрое кодирование на момент написания статьи (май 2016) могут обеспечить только карты второго поколения Maxwell, и для десктопных это: GM206 (GTX 950, GTX 960), GM204 (GTX 970 и GTX 980) (для справки: есть еще дорогие проф.линейки Nvidia Tesla/Quadro/GRID, полный перечень можно найти здесь). Причем NVENC модуль работает с одинаковой скоростью на всех картах и количество CUDA ядер не влияет на производительность, как бы странно это не звучало, поэтому брать старшие версии имеет смысл только если платформа используется (помимо кодирования) для игр, даже более того, карты на GM206 целесообразнее т.к. помимо энкодера, получили еще и аппаратный HEVC декодер. Важное примечание: вся линейка GeForce имеет лицензионное ограничение в 2 одновременных потока. Его можно попробовать обойти методом, указанным во второй части статьи YourChief
Реализация (FFmpeg)
Все многообразие реализаций Nvidia CUDA можно посмотреть по ссылке. От себя хочу сказать что для видео наиболее распространенным является популярный инструмент — FFmpeg. Его мы и будем использовать.
Kepler (NVIDIA GeForce 6xx за исключением тех, которые базируются на Fermi) и новее.
Как включить?
FFmpeg из дефолтных реп собран с nvenc. Пруф
Имейте в виду что ffmpeg вернули лишь в последних релизах Ubuntu. Включаем репозиторий Source уот так уот. Обновляем базу пакетов apt-get. Выполняем:
Собирать командой fakeroot ./debian/rules binary , но нам сначала надо открыть файл rules, найти параметры для сборки, и добавить --enable-nonfree и --enable-nvenc . Первый, скорее всего, уже добавлен (для AAC).
Из исходников
Берём исходник ffmpeg. Распаковываем его куда-нибудь, например в
Потом make и make install (без sudo). Всё. Использовать так:
Не удивляйтесь моему комменту под записью с накладыванием стороннего патча на ffmpeg. Оказалось что патч уже в апстриме, я не знал. Выше я рассказывал только про NVENC. А ещё есть libnpp и CUVID, речь о которых пойдёт здесь.
libnpp (бывший nvresize) расширяет возможности NVENC, который разделён на часть без CUDA (nvenc) и с CUDA (nvenc+libnpp). Я считаю разумным отделение части функционала, требующего CUDA! У меня без libnpp не заработало только обрезание видео с 1600x900 до 1024x600 (хотел взять запись полного экрана и выхватить из него только окно с помощью -filter:v "crop=1024:600:263:75" ). Я уверен что есть и другие применения libnpp, о которых я не знаю, и также уверен что большинству пользователей часть с CUDA не нужна: ведь что нужно большинству? Записывать видео с экрана (с минимальной нагрузкой на CPU), сжимать несжатые видео, ну и некоторым стримить в Твич.
CUVID теперь называется nvDecode. Насколько я понял, включение CUVID выступает в роли катализатора для декодирования и кодирования видео, перенося ещё больше действий с CPU на GPU. Как работает, Как пользоваться (спасибо hizel за ссылки).
Кстати, если вам нужны libnpp и CUVID, устанавливать CUDA Toolkit не нужно: тех файлов CUDA, которые есть в самом драйвере NVIDIA, будет достаточно.
Nvidia NVENC (сокращение от Nv idia Enc oder) - это функция видеокарт Nvidia, которая выполняет кодирование видео , перекладывая эту ресурсоемкую задачу с центрального процессора на выделенную часть графического процессора . Он был введен с Kepler -На GeForce 600 серии в марте 2012 года .
Кодировщик поддерживается многими программами прямой трансляции и записи, такими как vMix , Wirecast , Open Broadcaster Software (OBS) и Bandicam , а также приложениями для редактирования видео, такими как Adobe Premiere Pro или DaVinci Resolve . Он также работает с функцией Share game capture, которая включена в программное обеспечение Nvidia GeForce Experience.
Видеокарты GeForce, ориентированные на потребителей, официально поддерживают не более 3-х одновременно кодирующих видеопотоков, независимо от количества установленных карт, но это ограничение можно обойти в системах Linux и Windows , применив неофициальный патч к драйверам . Это также открывает доступ к NVIDIA Frame Buffer Capture (NVFBC) , быстрому API захвата рабочего стола, который использует возможности графического процессора и его драйвера для ускорения захвата. Профессиональные карты поддерживают от 3 до неограниченных одновременных потоков на карту, в зависимости от модели карты и качества сжатия.
Чипы Nvidia также оснащены встроенным декодером NVDEC (сокращенно от Nv idia Dec oder), который переносит декодирование видео с центрального процессора на выделенную часть графического процессора.
СОДЕРЖАНИЕ
Версии
С момента появления первого графического процессора Kepler (GK104) NVENC претерпел несколько аппаратных изменений .
Первое поколение, Kepler GK1xx
Первое поколение NVENC, которое используется всеми графическими процессорами на базе Kepler , поддерживает H.264 high-profile (YUV420, I / P / B frames, CAVLC / CABAC), H.264 SVC Temporal Encode VCE и Display Encode Mode. (DEM).
Второе поколение, Maxwell GM107
Представленный с архитектурой Maxwell первого поколения, NVENC второго поколения добавляет поддержку высокопроизводительного профиля HP444 (YUV4: 4: 4, прогнозируемое кодирование без потерь) и увеличивает пропускную способность кодировщика до 16 раз в реальном времени, что соответствует примерно 1080p @ 480 Hz с предустановкой высокой производительности.
Maxwell GM108 не поддерживает аппаратный кодировщик NVENC.
Третье поколение, Maxwell GM20x
Представленный с архитектурой Maxwell второго поколения, NVENC третьего поколения реализует алгоритм сжатия видео High Efficiency Video Coding (также известный как HEVC, H.265), а также увеличивает пропускную способность кодировщика H.264 для обеспечения разрешения 4K при 60 Гц (2160p60). Однако он не поддерживает B-кадры для кодирования HEVC (только I и P кадры ). Максимальный размер единицы дерева кодирования (CU) NVENC HEVC составляет 32 (стандарт HEVC допускает максимум 64), а его минимальный размер CU равен 8.
В кодировании HEVC также отсутствует выборочное адаптивное смещение (SAO). Адаптивное квантование, упреждающее управление скоростью, адаптивные B-кадры (только H.264) и функции адаптивной GOP были добавлены с выпуском Nvidia Video Codec SDK 7. Эти функции полагаются на ядра CUDA для аппаратного ускорения.
SDK 7 поддерживает две формы адаптивного квантования; Пространственный AQ ( H.264 и HEVC) и Temporal AQ (только H.264).
Карты Nvidia потребительского уровня (GeForce) и некоторые из ее профессиональных карт Quadro более низкого уровня ограничены тремя одновременными задачами кодирования. Карты Quadro более высокого класса не имеют этого ограничения.
Четвертое поколение, Pascal GP10x
NVENC четвертого поколения реализует 10-битное аппаратное кодирование HEVC Main10. Он также вдвое увеличивает производительность кодирования 4K H.264 и HEVC по сравнению с NVENC предыдущего поколения. Он поддерживает подвыборку цветности HEVC 8K, 4: 4: 4 , кодирование без потерь и адаптивное смещение выборки (SAO).
В Nvidia Video Codec SDK 8 добавлена эксклюзивная функция взвешенного прогнозирования Pascal (на основе CUDA ). Взвешенное прогнозирование не поддерживается, если сеанс кодирования настроен с кадрами B (H.264).
Нет поддержки B-кадра для кодирования HEVC , а максимальный размер CU составляет 32 × 32.
NVIDIA GT 1030 и Mobile Quadro P500 - это чипы GP108, которые не поддерживают кодировщик NVENC.
В графике для ноутбуков NVIDIA MX Graphics не включает NVENC, поскольку они основаны на микросхеме GM108 поколения Maxwell или GP108 поколения Pascal. GeForce MX350 - это микросхема GP107, кодер NVENC которой отключен во время производства.
Пятое поколение, Volta GV10x / Turing TU117
Volta NVENC имеет такую же производительность, как и NVENC Паскаля. [1]
Он не поддерживает B-кадры HEVC.
Шестое поколение, Turing TU10x / TU116
Шестое поколение NVENC реализует кодирование HEVC 8K со скоростью 30 кадров в секунду, B-кадры HEVC и B-кадры HEVC в качестве эталона (с поддержкой каждого и среднего режимов), а также поддержку Alpha HEVC и обеспечивает экономию битрейта до 25% для HEVC и до 15%. экономия битрейта для H.264. Однако первоначальный запуск Nvidia GeForce GTX 1650 был исключен из этого поколения, поскольку он использовал Volta NVENC вместо Turing. Nvidia обновила кодировщик NVENC карт GTX 1650 в 2020 году, чтобы также использовать движок Тьюринга. GTX 1650 Super использует движок Turing NVENC, поскольку он основан на TU116, а не на TU117, который использовался в оригинальной GTX 1650.
Седьмое поколение, Ampere GA10x
У Ампера, по сути, такой же двигатель поколения NVENC, что и у Тьюринга. Только NVDEC получил поддержку декодирования AV1 (с зернистостью пленки).
Поддержка операционной системы
Ядро Nvidia NVENC SIP должно поддерживаться драйвером устройства . Драйвер предоставляет один или несколько интерфейсов (например, OpenMAX IL ) для NVENC. Доступ к ядру NVENC SIP можно получить только через проприетарный API NVENC (в отличие от API VDPAU с открытым исходным кодом ).
Он идет в комплекте с драйвером GeForce от Nvidia .
NVENC доступен для операционных систем Windows и Linux. Драйвер Nouveau устройства бесплатно и с открытым исходным кодом не поддерживает Nvidia NVENC.
Читайте также: