it-roy-ru.com

Как установить / скомпилировать NVENC в Ubuntu?

Я вижу поддержку NVIDIA NVENC в этом документе, но это кажется странным, какой-то шаг за шагом? или PPA с ffmpeg-nvenc для убунту?

http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf

12
Fast OS

Как всегда в случае с FFmpeg, постоянное развитие много раз меняет цели, и это, безусловно, верно для nvenc и FFmpeg. Там было 3 этапа:

  1. Бросьте свои собственные : до 27 августа 2016 года было необходимо отследить ваши собственные заголовки для сборки nvenc. Трудный и более чем запутанный.
  2. Встроено в источник : 27 августа 2016 года были обнаружены необходимые заголовки включены как часть источника FFmpeg , ничего не требуется, кроме возможности чтобы скомпилировать исходный код FFmpeg из git или использовать версию 'release', вырезанную из git на данный момент.
  3. Использовать заголовки nv-codec : 26 февраля 2018 года заголовки NVidia были удалены из источника FFmpeg . отдельный репозиторий git был создан для продолжения работы с этими заголовками. На данный момент эти заголовки должны быть установлены , а также FFmpeg из git, чтобы получить доступ к nvenc и друзьям.

Требуются два шага:

1. Установите пакет nv-codec-headers :

Что-то вроде следующих команд терминала должно быть достаточно:

Sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && Sudo make install

Если по какой-то причине вы передумали и хотите полностью удалить установленные файлы, а также каталог сборки, просто выполните следующие две команды терминала:

Sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build

И ваша система была очищена. Однако, если вы хотите продолжить, используйте следующий шаг:

2. Скомпилируйте FFmpeg :

Используйте это очень хорошо проверенное руководство:

nv-codec-headers будет автоматически распознан (дополнительные ./configure не требуются) и nvenc будет успешно скомпилирован.

Тестирование:

Я проверил это на Bionic Beaver LTS и получил следующие результаты:

[email protected]:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
[email protected]:~$

И если вы видите изображение, подобное приведенному выше, и у вас есть поддерживаемая видеокарта , вы правы :)

Примечания:

  • Нет разницы между hevc_nvenc и nvenc_hevc: варианты nvenc_* - это старые устаревшие имена.
  • Вы можете просмотреть параметры, специфичные для каждого кодировщика. Например, ffmpeg -h encoder=h264_nvenc.
  • Руководство по аппаратному ускорению для FFmpeg : FFmpeg Вики-руководство по аппаратному ускорению в целом с FFmpeg, канонический раздел для компиляция и использование nvenc ...
  • Последняя версия соответствует Video Codec SDK версии 9.0.18 и требует наличия драйверов NVidia версии 418.30 или новее.
17
andrew.46