Slik får du NVIDIAs GPU-assistent videokoding (NVENC) til å fungere i Ubuntu
Koding av videofiler kan være en komplett drap. Selv med de raskeste CPUene ute på markedet, kan prosessen ta omtrent så lenge videoen selv (f.eks. Tretti minutter med koding for en tretti minutters video). Uansett hvilke kodingsprogrammer du tilbyr, er de alltid begrenset av kraften til dine chips.
For å løse dette problemet, har NVIDIA-kort et smalt lite triks som de har brukt siden utgivelsen av GeForce 600-serien grafikkortene tilbake i 2012, kalt NVENC. Dette lar deg bruke GPU til å kode video streamer. Ved hjelp av NVENC kan du ikke bare konvertere videoer raskere enn med en vanlig CPU, men du kan også streame video gjennom programvare som Open Broadcaster Software (OBS) mens du reduserer eller eliminerer stotter og lagring. Siden Linux ikke har NVENC som standard, må du få det til å fungere for hånd. Jeg forklarer her hvordan du kan gjøre dette i distribusjoner som er basert på Ubuntu.
Første ting først
For å få NVIDIAs NVENC til å jobbe med Ubuntu, må du først laste ned NVIDIA Video Codec-programvareutviklingssettet (SDK) fra dette nettstedet. Du må opprette en konto, men prosessen er ganske enkel. Du trenger ikke alle filene i ZIP, så vi skal nå navigere til "Samples / common / inc." Kopier alt du ser der til mappen "/ usr / local / include". Du må kopiere disse filene slik at "ffmpeg" (en encoder ofte funnet med Linux distros) vil gjenkjenne NVENC og inkorporere den.
Konfigurere kildekodeoppbevaringssteder
Det neste trinnet innebærer å kompilere din nåværende versjon av ffmpeg. Dette betyr at du trenger byggepliktene for programvaren, og for det må du konfigurere Linux for å tillate nedlasting fra kildekodebeholdninger i programvarekildene dine.
I Ubuntu kan du navigere til "System Settings -> Software & Updates", og klikk deretter "Kildekode" under "Ubuntu Software." I Linux Mint (distribusjonen jeg bruker fordi jeg er lat), kan dette gjøres ved å åpne oppdateringsbehandleren, klikke på "Rediger" og klikke på "Software Kilder", og deretter sjekke den lille boksen med "Aktiver kildekodebeholdninger." Denne metoden kan variere avhengig av skrivebordsmiljøet og distribusjonen av Linux, så du må kanskje gjøre det en liten sjel søker for å få dette gjort.
Nå for tannmalingsdelen av prosessen!
Ombygging av ffmpeg
Siden ffmpeg ikke bygger med mange av alternativene som er aktivert automatisk (noe som betyr at de er nesten alle opt-in i stedet for å deaktivere), må du finne ut hvordan det ble bygget i systemet ditt og deretter bygge det ved hjelp av samme konfigurasjon pluss støtte for NVENC og AAC lyd. Dette er hvor topptekstene du kopierte tidligere kommer inn. Se, ffmpeg vil ta en liten titt på filene dine i "/ usr / local / include" for å finne noen kodeker den ikke finner i sine egne lommer.
Først bygger vi avhengigheter med
sudo apt-get build-dep ffmpeg
Deretter vil vi laste ned AAC lydkoden med
sudo apt-get installer libfdk-aac-dev
Når disse tingene er ferdige, må vi få kilden til ffmpegs nåværende versjon med
sudo apt-get kilde ffmpeg
Og når det er gjort, må du gjøre litt jakt i Hjem-mappen. Finn en mappe som starter med "ffmpeg." Den vil ha versionsnummeret rett etter at det er adskilt av et dash. Her er min:
Åpne din terminal i den mappen. Hvis du ikke kan gjøre det, åpner du terminalen og skriver inn:
cd ffmpeg-
hvor "" representerer det fulle versjonsnummeret du så i navnet på den mappen. I mitt tilfelle ville jeg skrive
cd ffmpeg-2.8.8
Skriv nå
ffmpeg-buildconf
Det vil vise deg hele konfigurasjonen av din nåværende ffmpeg-installasjon. Du må kopiere alt etter "konfigurasjon:" uten biter under den massive teksten. I mitt tilfelle kopierer jeg dette: (Konfigurasjonen din kan være annerledes, så kopier ikke det jeg viser deg her.)
--prefix = / usr --extra-version = 0ubuntu0.16.04.1 --build-suffix = -ffmpeg --toolchain = hardened --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-dekoder = libopenjpeg --disable-dekoder = libschroedinger --enable -reflekterende -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
Nå lim inn hva du kom inn i gedit eller en annen tekstredigerer og legg til dette til slutten:
--enbar-nonfree --enable-nvenc --enable-libfdk-aac
OK, nå er alt du trenger å gjøre, å skrive
./configure
hvor "" representerer den massive teksten du just redigert for å legge til støtte for ikke-gratis kodeker, NVENC og AAC lyd. Dette kan ta en stund.
Etter alt som er ferdig, skriv inn
gjøre
Vent til det er over, og skriv deretter inn
sudo gjør installasjon
Du er ferdig!
Testing det
OK, så hvordan vet du at du har fått støtte for NVENC? Det er på tide å ta ffmpeg ut for en tur og kode en video med den.
For å gjøre dette, trenger du en videofil som skal konverteres. La oss si at videoen vår er i "/home/miguel/Desktop/test.mkv, " og vi vil kode den som "/home/miguel/Desktop/test.mp4." Slik gjør vi det med ffmpeg og sin nyfødte kjærlighet til NVENC:
tid ffmpeg -i / home/miguel/Desktop/test.mkv -acodec copy -vcodec nvenc /home/miguel/Desktop/test.mp4
Du bør se noe slikt:
Og det er det! Vi drepte to fugler med en stein: Du lærte hvordan du får NVENC på ditt Linux-system og hvordan du kan kode en video ved hjelp av ffmpegs praktiske terminalkommando. Hvis du sitter fast et sted eller finner en bedre måte å gjøre dette på, vær sikker på å legge igjen en kommentar!