Je vois le support de nvidia NVENC dans ce document, mais cela semble déroutant, certains pas à pas? ou PPA avec ffmpeg-nvenc pour ubuntu?
Je vois le support de nvidia NVENC dans ce document, mais cela semble déroutant, certains pas à pas? ou PPA avec ffmpeg-nvenc pour ubuntu?
Réponses:
Comme toujours avec FFmpeg, le développement continu décale les poteaux de but à plusieurs reprises et cela est certainement vrai pour nvenc et FFmpeg. Il y a eu 3 phases:
Deux étapes sont nécessaires:
1. Installez le paquet nv-codec-headers :
Quelque chose comme les commandes de terminal suivantes devraient 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, procédez comme suit:
2. Compilez FFmpeg :
Utilisez ce guide très bien testé:
Le nv-codec-headers
sera reconnu automatiquement (aucune ./configure
option supplémentaire n'est nécessaire) et nvenc sera construit avec succès.
Essai:
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 une carte graphique prise en charge , vous avez raison d'aller :)
Remarques:
@ andrew.46 votre réponse est excellente, merci. Ma réputation est en dessous du seuil pour poster ceci en tant que commentaire. Si possible, veuillez développer votre réponse avec les informations suivantes.
Si vous devez revenir à une version antérieure de nv-codec-headers
, téléchargez et compilez une version antérieure à partir de https://github.com/FFmpeg/nv-codec-headers/releases .
Cela peut être nécessaire si vous compilez ffmpeg
avec la dernière version nv-codec-headers
, mais votre pilote graphique est d'une version qui ne gère pas encore la version minimale de l'API CUDA requise par nv-codec-headers
. Le symptôme sera que ffmpeg
le transcodage des flux vidéo échouera. Dans mon cas, il nv-codec-headers
fallait l'API CUDA 9.1, tandis que la dernière version nvidia-driver
de ma distribution (test) était toujours à une version utilisant 9.0.
Revenir à une version antérieure nv-codec-headers
est probablement plus sûr que de télécharger le dernier pilote directement depuis Nvidia et de le construire en dehors du mécanisme de mise à jour de votre distribution.