web-dev-qa-db-fra.com

Comment installer / compiler NVENC dans Ubuntu?

Je vois un support pour NVIDIA NVENC dans ce document, mais cela semble déroutant, certains pas à pas? ou PPA avec ffmpeg-nvenc pour Ubuntu?

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

13
Fast OS

Comme toujours avec FFmpeg, le développement continu modifie les objectifs plusieurs fois, ce qui est certainement le cas de nvenc et de FFmpeg. Il y a eu 3 phases:

  1. Lancez votre propre : Avant le 27 août 2016, il était nécessaire de rechercher vos propres en-têtes pour construire nvenc. Ardu et plus qu'un peu déroutant.
  2. intégré dans la source : le 27 août 2016 a vu les en-têtes requis incorporés dans la source FFmpeg , rien n'est requis, sauf la capacité pour compiler le source FFmpeg depuis git, ou utilisez une version 'release' coupée dans git à ce moment.
  3. Utiliser nv-codec-headers : Le 26 février 2018, les en-têtes de NVidia étaient supprimés de la source FFmpeg . n référentiel git séparé a été créé pour continuer à travailler avec ces en-têtes. Pour le moment, ces en-têtes doivent être installés ainsi que FFmpeg de git pour avoir accès à nvenc et à ses amis.

Deux étapes sont nécessaires:

1. Installez le paquet nv-codec-headers :

Quelque chose comme les commandes suivantes du terminal devrait suffire:

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

Si, pour une raison quelconque, vous changez d'avis et souhaitez supprimer complètement les fichiers installés ainsi que le répertoire de construction, exécutez simplement les deux commandes Terminal suivantes:

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

Et votre système a été nettoyé. Si toutefois vous souhaitez continuer, utilisez l’étape suivante:

2. Compiler FFmpeg :

Utilisez ce guide très bien testé:

Le nv-codec-headers sera reconnu automatiquement (aucune option supplémentaire ./configure n'est requise) et nvenc sera construit avec succès.

Test:

J'ai testé cela sur Bionic Beaver LTS et les résultats sont les suivants:

andrew@ilium:~$ 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)
andrew@ilium:~$

Et si vous voyez une image similaire à celle ci-dessus et que vous avez ne carte graphique prise en charge , vous avez raison d'y aller :)

Notes:

  • Il n'y a pas de différence entre hevc_nvenc et nvenc_hevc: les variantes nvenc_* sont les anciens noms hérités.
  • Vous pouvez afficher les options spécifiques à chaque encodeur. Par exemple, ffmpeg -h encoder=h264_nvenc.
  • Guide d'accélération matérielle pour FFmpeg : Guide wiki de FFmpeg pour l'accélération matérielle en général avec FFmpeg, une section canonique pour compiler et utiliser nvenc ...
  • La dernière version correspond à Video Codec SDK version 9.0.18 et nécessite les pilotes NVidia version 418.30 ou plus récente.
18
andrew.46