Η κωδικοποίηση των αρχείων βίντεο μπορεί να είναι πλήρης σύρετε. Ακόμη και με τις ταχύτερες CPU που κυκλοφορούν στην αγορά, η διαδικασία μπορεί να διαρκέσει περίπου όσο το ίδιο το βίντεο (π.χ. τριάντα λεπτά κωδικοποίησης για βίντεο τριάντα λεπτών). Δεν έχει σημασία τι προγράμματα κωδικοποίησης σας προσφέρουν, είναι πάντα περιορισμένη από τη δύναμη των τσιπ σας.

Για την επίλυση αυτού του προβλήματος, οι κάρτες NVIDIA έχουν ένα κομψό μικρό τέχνασμα που χρησιμοποιούν ήδη από την έκδοση των καρτών γραφικών της σειράς GeForce 600 το 2012 που ονομάζεται NVENC. Αυτό σας επιτρέπει να χρησιμοποιήσετε τη GPU για να κωδικοποιήσετε τις ροές βίντεο. Χρησιμοποιώντας το NVENC, όχι μόνο μπορείτε να μετατρέπετε βίντεο πιο γρήγορα από ό, τι συμβατικό CPU, αλλά μπορείτε επίσης να κάνετε streaming video μέσω λογισμικού όπως το Open Broadcaster Software (OBS) μειώνοντας ή εξαλείφοντας εντελώς τον τραυματισμό και την υστέρηση. Δεδομένου ότι το Linux δεν διαθέτει NVENC από προεπιλογή, θα πρέπει να το δουλέψετε με το χέρι. Εξηγώ εδώ πώς μπορείτε να το κάνετε αυτό σε διανομές που βασίζονται στο Ubuntu.

Καταρχάς

Για να χρησιμοποιήσετε το NVENC της NVIDIA για το Ubuntu, πρέπει πρώτα να κατεβάσετε το κιτ ανάπτυξης λογισμικού NVIDIA Video Codec (SDK) από αυτόν τον ιστότοπο. Θα χρειαστεί να δημιουργήσετε ένα λογαριασμό, αλλά η διαδικασία είναι αρκετά απλή. Δεν χρειάζεστε όλα τα αρχεία στο ZIP, επομένως τώρα θα περιηγηθείτε στο "Samples / common / inc." Αντιγράψτε όλα όσα βλέπετε στο φάκελο "/ usr / local / include". Πρέπει να αντιγράψετε αυτά τα αρχεία έτσι ώστε το "ffmpeg" (ένας κωδικοποιητής που συχνά βρίσκεται με διανομές linux) να αναγνωρίσει το NVENC και να το ενσωματώσει.

Διαμόρφωση αποθετηρίων πηγαίου κώδικα

Το επόμενο βήμα θα περιλαμβάνει την ανασυγκρότηση της τρέχουσας έκδοσης του ffmpeg. Αυτό σημαίνει ότι θα χρειαστείτε τις εξαρτήσεις δημιουργίας για το λογισμικό και γι 'αυτό θα πρέπει να ρυθμίσετε το Linux ώστε να επιτρέπει τη λήψη από αποθήκες πηγαίου κώδικα στις πηγές λογισμικού.

Στο Ubuntu μπορείτε να πλοηγηθείτε σε "Ρυθμίσεις συστήματος -> Λογισμικό & ενημερώσεις", στη συνέχεια κάντε κλικ στην επιλογή "Κωδικός προέλευσης" στο "Λογισμικό Ubuntu". Στο Linux Mint (η διανομή που χρησιμοποιώ επειδή είμαι τεμπέλης) με πρόσβαση στο Update Manager, κάνοντας κλικ στην επιλογή "Επεξεργασία", κάνοντας κλικ στην επιλογή "Πηγές λογισμικού", επιλέγοντας το κουτάκι "Ενεργοποίηση αποθετηρίων πηγαίου κώδικα". Αυτή η μέθοδος μπορεί να διαφέρει ανάλογα με το περιβάλλον εργασίας και τη διανομή του Linux. μια μικρή ψυχή που ψάχνει να το κάνει αυτό.

Τώρα για το τμήμα λείανσης των δοντιών της διαδικασίας!

Ανακατασκευή του ffmpeg

Εφόσον το ffmpeg δεν δημιουργεί με πολλές από τις επιλογές του ενεργοποιημένες αυτόματα (πράγμα που σημαίνει ότι είναι σχεδόν όλο το opt-in και όχι το opt-out), θα πρέπει να μάθετε πώς είναι ενσωματωμένο στο σύστημά σας και στη συνέχεια να το κατασκευάσετε χρησιμοποιώντας το ίδια διαμόρφωση και υποστήριξη για ήχο NVENC και AAC. Αυτό είναι όπου οι επικεφαλίδες που αντιγράψατε νωρίτερα έρχονται. Βλέπετε, το ffmpeg θα πάρει μια μικρή ματιά στα αρχεία σας στο "/ usr / local / include" για να βρει κωδικοποιητές που δεν βρίσκει στις δικές του τσέπες.

Πρώτον, χτίζουμε εξαρτήσεις με

 sudo apt-get build-dep ffmpeg 

Στη συνέχεια, θέλουμε να κατεβάσετε τον κωδικοποιητή ήχου AAC με

 sudo apt-get να εγκαταστήσετε το libfdk-aac-dev 

Μόλις ολοκληρωθούν αυτά τα πράγματα, θα χρειαστεί να βρούμε την πηγή στην τρέχουσα έκδοση του ffmpeg

 sudo apt-get πηγή ffmpeg 

Και όταν αυτό γίνει, θα πρέπει να κάνετε λίγο κυνήγι στον αρχικό φάκελο. Βρείτε ένα φάκελο που ξεκινά με το "ffmpeg". Θα έχει τον αριθμό έκδοσης αμέσως μετά το διαχωρισμό του από μια παύλα. Εδώ είναι ορυχείο:

Ανοίξτε το τερματικό σας σε αυτόν το φάκελο. Εάν δεν μπορείτε να το κάνετε αυτό, ανοίξτε το τερματικό και πληκτρολογήστε:

 cd ffmpeg- 

όπου "" αντιπροσωπεύει τον πλήρη αριθμό έκδοσης που είδατε στο όνομα του συγκεκριμένου φακέλου. Στην περίπτωσή μου, θα πληκτρολογήσω

 cd ffmpeg-2.8.8 

Τώρα πληκτρολογήστε

 ffmpeg -buildconf 

Θα σας δείξει ολόκληρη τη διαμόρφωση της τρέχουσας εγκατάστασης ffmpeg. Θα χρειαστεί να αντιγράψετε τα πάντα μετά τη "διαμόρφωση:" χωρίς τα bits κάτω από αυτό το τεράστιο τείχος του κειμένου. Στην περίπτωσή μου, αντιγράφω αυτό: (Η διαμόρφωσή σας μπορεί να διαφέρει, οπότε μην αντιγράφετε αυτό που σας παρουσιάζω εδώ).

 --prefix = / usr --extra - version = 0ubuntu0.16.04.1 --build-suffix = -ffmpeg --toolchain = σκληρυνθεί --libdir = / usr / lib / x86_64-linux-gnu --incdir = / usr / include / x86_64-linux-gnu -cc = cc -cxx = g ++ - δυνατότητα-gpl --χρησιμοποιήσιμο -χρησιμοποίητο- αποκρυπτογράφηση --disable-αποκωδικοποιητής = libopenjpeg --disable-decoder = libschroedinger - -absample -ableable-avisynth -enable-gnutls -enable-ladspa -enable-libass -enable-libbluray -enable-libbs2b -enable-libcaca -enable-libcdio -enable-libflite -ενδεκτό -libfontconfig -enable-libfreetype -enable-libfribidi -enable-libgme -enable-libgsm -enable-libmodplug -enable-libmp3lame -enable-libopenjpeg -enable-libopus -enable-libpulse -ενδεκτό -librtmp - δυνατότητα-libschroedinger - δυνατότητα-libshine - δυνατότητα-libsnappy - δυνατότητα-libsoxr - δυνατότητα-libspeex -enable-libssh -enable-libtheora -enable-libtwolame -enable-libvorbis -libvpx - δυνατότητα-libwavpack - δυνατότητα-libwebp - δυνατότητα-libx265 - δυνατότητα-libxvid - δυνατότητα-libzvbi - δυνατότητα-άνοιγμα - ενεργοποίηση-opengl -enable-x11gr ab -enable-libdc1394 -enable-libiec61883 -enable-libzmq -enable-frei0r -enable-libx264 -enable-libopencv 

Τώρα, επικολλήστε ό, τι πήρατε στο gedit ή σε κάποιο άλλο πρόγραμμα επεξεργασίας κειμένου και προσθέστε αυτό στο τέλος:

 --enable-nonfree -enable-nvenc -enable-libfdk-aac 

Εντάξει, τώρα μόνο που πρέπει να κάνετε είναι να πληκτρολογήσετε

 ./Διαμορφώστε 

όπου "" αντιπροσωπεύει το τεράστιο τείχος του κειμένου που μόλις επεξεργαστήκατε για να προσθέσετε υποστήριξη για μη-ελεύθερους κωδικοποιητές, NVENC και ήχο AAC. Αυτό μπορεί να διαρκέσει λίγο.

Αφού τελειώσετε, πληκτρολογήστε

 φτιαχνω, κανω 

Περιμένετε μέχρι να τελειώσει, μετά πληκτρολογήστε

 sudo κάνει εγκατάσταση 

Τελείωσες!

Δοκιμάζοντας το

Εντάξει, πώς ξέρετε ότι έχετε πάρει με επιτυχία υποστήριξη για το NVENC; Ήρθε η ώρα να βγείτε από το ffmpeg για ένα γύρισμα και να κωδικοποιήσετε ένα βίντεο μαζί του.

Για να γίνει αυτό, θα χρειαστείτε ένα αρχείο βίντεο για τη μετατροπή. Ας υποθέσουμε ότι το βίντεό μας είναι στο "/home/miguel/Desktop/test.mkv" και θέλουμε να το κωδικοποιήσουμε ως "/home/miguel/Desktop/test.mp4". Εδώ κάνουμε πώς να το κάνουμε αυτό με το ffmpeg και η νέα του αγάπη για το NVENC:

 ώρα ffmpeg -i /home/miguel/Desktop/test.mkv -acodec αντίγραφο -vcodec nvenc /home/miguel/Desktop/test.mp4 

Θα πρέπει να δείτε κάτι τέτοιο:

Και αυτό είναι! Σκοτώσαμε δύο πτηνά με μια πέτρα: μάθατε πώς μπορείτε να αποκτήσετε το NVENC στο σύστημά σας Linux και πώς να κωδικοποιήσετε ένα βίντεο χρησιμοποιώντας την εύχρηστη εντολή τερματικού του ffmpeg. Εάν κολλήσετε κάπου ή βρείτε έναν καλύτερο τρόπο να το κάνετε αυτό, φροντίστε να αφήσετε ένα σχόλιο!