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!