De NVUIA GPU Assisted Video Encoding (NVENC) gebruiken om te werken in Ubuntu
Het coderen van videobestanden kan een volledige sleep zijn. Zelfs met de snelste CPU's op de markt, kan het proces ongeveer net zo lang duren als de video zelf (bijvoorbeeld dertig minuten coderen voor een video van dertig minuten). Welke coderingsprogramma's u ook aanbiedt, ze worden altijd beperkt door de kracht van uw chips.
Om dit probleem op te lossen, hebben NVIDIA-kaarten een handige kleine truc die ze hebben gebruikt sinds de release van de grafische kaarten van de GeForce 600-serie in 2012, genaamd NVENC. Hiermee kunt u de GPU gebruiken om videostreams te coderen. Met NVENC kunt u niet alleen sneller video's converteren dan met een conventionele CPU, maar kunt u ook video streamen via software zoals Open Broadcaster Software (OBS), terwijl stotteren en vertragen worden verminderd of volledig worden geëlimineerd. Omdat Linux standaard geen NVENC heeft, moet je het met de hand laten werken. Ik leg hier uit hoe je dit kunt doen in distributies die gebaseerd zijn op Ubuntu.
Eerste dingen eerst
Om NVIDIA's NVENC aan Ubuntu te laten werken, moet je eerst de NVIDIA Video Codec software development kit (SDK) van deze site downloaden. U moet een account aanmaken, maar het proces is vrij eenvoudig. Je hebt niet alle bestanden in de ZIP nodig, dus we gaan nu naar "Samples / common / inc." Kopieer alles wat je daar ziet naar je "/ usr / local / include" map. Je moet deze bestanden kopiëren zodat "ffmpeg" (een encoder die vaak wordt gevonden met linux distro's) NVENC zal herkennen en zal incorporeren.
Broncode-repository's configureren
De volgende stap omvat het opnieuw compileren van uw huidige versie van ffmpeg. Dit betekent dat je de bouwafhankelijkheden voor de software nodig zult hebben, en daarvoor moet je Linux configureren om het downloaden van broncode-repositories in je softwarebronnen toe te staan.
In Ubuntu kun je navigeren naar "Systeeminstellingen -> Software & Updates" en dan klikken op "Broncode" onder "Ubuntu Software". In Linux Mint (de distributie die ik gebruik omdat ik lui ben), kan dit gedaan worden door de Update Manager te openen, te klikken op "Bewerken", te klikken op "Softwarebronnen" en vervolgens het kleine vakje aan te vinken met "Enable source code repositories." Deze methode kan verschillen afhankelijk van uw desktopomgeving en distributie van Linux, dus u moet dit misschien doen een beetje ziel zoeken om dit voor elkaar te krijgen.
Nu voor het tand-slijpen deel van het proces!
Ffmpeg opnieuw opbouwen
Aangezien ffmpeg niet met veel van de opties automatisch wordt ingeschakeld (wat betekent dat ze bijna allemaal opt-in zijn in plaats van opt-out), moet je uitvinden hoe het in je systeem is gebouwd en het vervolgens met behulp van de dezelfde configuratie plus ondersteuning voor NVENC- en AAC-audio. Dit is waar de headers die je eerder hebt gekopieerd binnenkwamen. Zie, ffmpeg zal een beetje kijkje nemen in je bestanden in "/ usr / local / include" om codecs te vinden die het niet in zijn eigen zak vindt.
Eerst bouwen we afhankelijkheden met
sudo apt-get build-dep ffmpeg
Vervolgens willen we de AAC-audiocodec downloaden met
sudo apt-get install libfdk-aac-dev
Zodra die dingen gedaan zijn, zullen we de bron naar de huidige versie van ffmpeg moeten halen
sudo apt-get bron ffmpeg
En als dat klaar is, moet je een beetje jagen in je thuismap. Zoek een map die begint met "ffmpeg." Het versienummer wordt weergegeven nadat het is gescheiden door een streepje. Hier is die van mij:
Open uw terminal in die map. Als u dat niet kunt, opent u de terminal en typt u:
cd ffmpeg-
waarbij "" staat voor het volledige versienummer dat u in de naam van die map hebt gezien. In mijn geval zou ik typen
cd ffmpeg-2.8.8
Typ nu
ffmpeg -buildconf
Het zal je de volledige configuratie van je huidige ffmpeg-installatie laten zien. Je moet alles na "configuratie:" kopiëren zonder de bits onder die enorme tekstwand. In mijn geval kopieer ik dit: (Uw configuratie kan anders zijn, dus kopieer niet wat ik u hier laat zien.)
--prefix = / usr --extra-versie = 0ubuntu0.16.04.1 --bouw-achtervoegsel = -ffmpeg --toolchain = verhard --libdir = / usr / lib / x86_64-linux-gnu --incdir = / usr / include / x86_64-linux-gnu --cc = cc --cxx = g ++ --enable-gpl --enable-shared --disable-stripping --disable-decoder = libopenjpeg --disable-decoder = libschroedinger --enable -avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable -libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable -librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable -libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11gr ab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
Plak nu wat je hebt in gedit of een andere teksteditor en voeg dit toe aan het einde:
--enable-nonfree --enable-nvenc --enable-libfdk-aac
OK, nu hoef je alleen nog maar te typen
./configure
waarbij "" staat voor de enorme tekstmuur die u zojuist hebt bewerkt om ondersteuning voor niet-vrije codecs, NVENC- en AAC-audio toe te voegen. Dit kan even duren.
Als alles klaar is, typt u
maken
Wacht tot dat voorbij is en typ dan
sudo make install
Je bent klaar!
Het testen
OK, dus hoe weet je dat je met succes ondersteuning hebt gekregen voor NVENC? Het is tijd om ffmpeg uit te proberen en er een video mee te coderen.
Om dit te doen, heeft u een videobestand nodig om te converteren. Laten we zeggen dat onze video is in "/home/miguel/Desktop/test.mkv, " en we willen het coderen als "/home/miguel/Desktop/test.mp4." Hier is hoe we het doen met ffmpeg en zijn hernieuwde liefde voor NVENC:
time ffmpeg -i /home/miguel/Desktop/test.mkv -acodec copy -vcodec nvenc /home/miguel/Desktop/test.mp4
Je zou zoiets als dit moeten zien:
En dat is het! We hebben twee vogels in één klap gedood: je hebt geleerd hoe je NVENC op je Linux-systeem kunt krijgen en hoe je een video kunt coderen met de handige terminalopdracht van ffmpeg. Als je ergens vastloopt of een betere manier vindt om dit te doen, laat dan een reactie achter!