Ubuntu'da NVENC nasıl kurulur / derlenir?


Yanıtlar:


19

Her zaman olduğu gibi FFmpeg'in sürekli gelişimi, kale direklerini birçok kez kaydırır ve bu kesinlikle nvenc ve FFmpeg için geçerlidir. 3 aşama olmuştur:

  1. Kendi yuvarlayın : Ön Ağustos 27th 2016 o yapı nvenc için kendi başlıklarını izini gerekliydi. Zor ve biraz kafa karıştırıcı.
  2. Kaynağa dahil edildi : 27 Ağustos 2016 , FFmpeg kaynağının bir parçası olarak gerekli üstbilgileri gördü, FFmpeg kaynağını git'ten derleme veya şu anda git'ten kesilen bir 'serbest bırakma' sürümü kullanma yeteneğinden başka bir şey gerekli değildi.
  3. NV-codec-başlıkları kullanın : 26 Şubat 2018'de NVidia başlıkları FFmpeg kaynağından kaldırıldı . Bu başlıklarla devam eden çalışmaları yürütmek için ayrı bir git deposu oluşturuldu. Şu anda nvenc ve arkadaşlarına erişmek için git'ten FFmpeg'in yanı sıra bu başlıklar da kurulmalıdır .

İki adım gereklidir:

1. nv-codec-headers paketini kurun :

Aşağıdaki Terminal komutları gibi bir şey yeterli olmalıdır:

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

Herhangi bir nedenle fikrinizi değiştirirseniz ve yüklü dosyaları ve derleme dizinini tamamen kaldırmak istiyorsanız , aşağıdaki iki Terminal komutunu çalıştırın:

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

Ve sisteminiz temizlendi. Ancak devam etmek istiyorsanız aşağıdaki adımı kullanın:

2. FFmpeg'i derleyin :

Bu çok iyi test edilmiş kılavuzu kullanın:

Otomatik nv-codec-headersolarak tanınır (ekstra ./configureseçenek gerekmez) ve nvenc başarıyla oluşturulacaktır.

Test yapmak:

Bunu Bionic Beaver LTS'de test ettim ve sonuçlar:

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:~$

Ve yukarıdaki gibi benzer bir resim görürseniz ve desteklenen bir grafik kartınız varsa, gitmeye haklısınız :)

Notlar:

  • En son sürüm Video Codec SDK 9.1.23 sürümüne karşılık gelir ve NVidia sürücülerinin 435.21 veya daha yeni bir sürümünü gerektirir.
  • Eski sürümler : Artık, nv-codec üstbilgilerinin otomatikleştirilmiş bir github kopyası var; bu da üstbilgilerin daha eski bir sürümünü kullanmak için mükemmel tarballlar oluşturur . Üstbilgilerin, güncelleyemediğiniz veya güncellemek istemediğiniz NVidia sürücülerinin eski bir sürümüyle senkronize edilmesini istiyorsanız harika.
  • FFmpeg için Donanım Hızlandırma Kılavuzu : FFmpeg Genel olarak donanım hızlandırma için Wiki kılavuzu, genel olarak derleme ve kullanım için kanonik bir bölüm olan FFmpeg ile ...

Bu ayrıntılı rehber için çok teşekkürler. Test bölümünüzden benzer çıktı aldım, bu harika. NVidia sürücülerinin yanı sıra, FFMPEG'in kurulu GPU'yu kullanmasını sağlamak için Cuda SDK'yı da yüklememiz gerekiyor mu?
Bilinmeyen Dev

@KimberlyW Sistemimde gerekli değil, şimdi test ettim ...
andrew.46

@ andrew.46 Söylediklerini yaptım ama hala vp9 için donanım hızlandırmam yok: /
Freedo

@Freedo Ne yazık ki nvenc H.264 ve
HEVC

1
@DPS Ah !! Ama bu cevapta verdiğim nv-codec başlıklarının basit kaldırılması değil mi?
andrew.46

0

@ andrew.46 yanıtınız harika, teşekkür ederim. İtibarım, bunu bir yorum olarak göndermek için eşiğin altında. Mümkünse, yanıtınızı aşağıdaki bilgilerle genişletin.

Uygulamasının önceki bir sürümüne dönmeniz gerekiyorsa nv-codec-headers, https://github.com/FFmpeg/nv-codec-headers/releases adresinden daha eski bir sürümü indirin ve derleyin .

ffmpegEn yeni nv-codec-headerssürümlere karşı derleme yapmanız gerekiyorsa , ancak grafik sürücünüz henüz gerekli minimum CUDA API sürümünü işlemeyen bir sürüme sahiptir nv-codec-headers. Belirti, ffmpegvideo akışlarının kod dönüştürmesinde başarısız olacaktır. Benim durumumda nv-codec-headersCUDA API 9.1 gerekliyken, nvidia-driverdağıtımım (testler) için en son 9.0 kullanan bir versiyondaydı.

Daha eski bir nv-codec-headerssürücüye geri dönmek , muhtemelen en son sürücüyü doğrudan Nvidia'dan indirip dağıtımınızın güncelleme mekanizmasının dışında oluşturmaktan daha güvenlidir.


Teşekkürler! Bunu 'Notlar' bölümüne
ekledim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.