Δείκτες
PodcastsΑισιόδοξα

FFmpeg και VLC: Η αόρατη ραχοκοκαλιά του βίντεο στο διαδίκτυο

Ο Ζαν-Μπατίστ Κεμπφ (Jean-Baptiste Kempf) και ο Κίραν Κούνια (Kieran Kunhya) μιλούν στον Λεξ Φρίντμαν για την τεχνολογία, την κοινότητα και την ηθική πίσω από το λογισμικό ανοιχτού κώδικα που τροφοδοτεί σχεδόν όλο το βίντεο του διαδικτύου.

FFmpeg και VLC: Η αόρατη ραχοκοκαλιά του βίντεο στο διαδίκτυο
Εικονογράφηση: τεχνητή νοημοσύνη

Βασικά σημεία

  • Ο Κεμπφ λέει ότι η κοινότητα νοιάζεται μόνο για την ποιότητα του κώδικα: «Μπορεί να είσαι σκύλος, δεν με νοιάζει — κοιτάζω τον κώδικά σου».
  • Το FFmpeg βρίσκεται κάτω από πάνω από το 90% των ροών επεξεργασίας βίντεο στο διαδίκτυο, και ο Κούνια επισημαίνει ότι τα οικιακά βίντεο και οι εταιρείες τρισεκατομμυρίων χρησιμοποιούν την ίδια τεχνολογική στοίβα.
  • Η συμπίεση βίντεο μιμείται την ανθρώπινη αντίληψη: δουλεύει σε YUV αντί RGB και εκμεταλλεύεται τον τρόπο που το μάτι ξεχωρίζει φωτεινότητα από χρώμα.
  • Ο Κεμπφ αρνήθηκε δεκάδες εκατομμύρια δολάρια για να κρατήσει το VLC χωρίς διαφημίσεις, επειδή οι προσφορές προέρχονταν από σκιώδεις εταιρείες και ήθελε να μπορεί να κοιμάται ήσυχος.
  • Η Google χρησιμοποίησε AI για να βρει ευπάθειες στο FFmpeg και τις ανακοίνωσε στα μέσα πριν διορθωθούν· μετά το επεισόδιο οι δωρεές αυξήθηκαν, αλλά δεν καλύπτουν ούτε έναν μισθό πλήρους απασχόλησης.
  • Η γλώσσα assembly προσφέρει 10x έως 50x βελτίωση ταχύτητας σε σχέση με τη C, και το dav1d έχει 240.000 γραμμές χειρόγραφης assembly με δικές του συμβάσεις κλήσης.
  • Χομπίστες, πολλοί από την κοινότητα των anime, αμφισβήτησαν τις μαθηματικές μετρήσεις όπως το PSNR και εισήγαγαν ψυχοοπτικές τεχνικές που έκαναν το x264 σημείο αναφοράς για κάθε νέο codec.
  • Η κοινότητα αρχειοθέτησης χρησιμοποιεί το FFmpeg και το FFV1 για να διατηρήσει την οπτικοακουστική κληρονομιά της ανθρωπότητας, με τον Κούνια να λέει ότι η C θα είναι όπως τα λατινικά σε χίλια χρόνια.

Σε αυτό το επεισόδιο, ο Λεξ Φρίντμαν (Lex Fridman) υποδέχεται δύο από τις πιο σημαντικές προσωπικότητες του κόσμου των πολυμέσων: τον Ζαν-Μπατίστ Κεμπφ (Jean-Baptiste Kempf), πρόεδρο του VideoLAN και κεντρικό πρόσωπο πίσω από το VLC και το FFmpeg, και τον Κίραν Κούνια (Kieran Kunhya), μηχανικό codec, συνεισφέροντα στο FFmpeg και υπεύθυνο για τον διάσημο λογαριασμό του FFmpeg στο X. Ο Φρίντμαν περιγράφει το FFmpeg ως την αόρατη ραχοκοκαλιά πίσω από το YouTube, το Netflix, το Chrome, το VLC, το Discord και σχεδόν κάθε πλατφόρμα που αγγίζει βίντεο ή ήχο στο διαδίκτυο, με εκτίμηση ότι πάνω από το 90% των ροών επεξεργασίας βίντεο βασίζεται σε αυτό. Το VLC έχει μεταφορτωθεί πάνω από έξι δισεκατομμύρια φορές, χωρίς διαφημίσεις και χωρίς παρακολούθηση.

Οι δύο καλεσμένοι εξηγούν τι συμβαίνει όταν πατάμε το play. Πρώτα, το πρόγραμμα παίρνει μια ροή δεδομένων από μια διεύθυνση, έπειτα ο αποπολυπλέκτης (demuxer) χωρίζει τα ίχνη ήχου, βίντεο και υποτίτλων, και στη συνέχεια κάθε ίχνος αποκωδικοποιείται. Ο Κεμπφ τονίζει ότι η συμπίεση βίντεο είναι της τάξης του 100x έως και 200x, και ότι όλα γίνονται με γνώμονα την ανθρώπινη αντίληψη: δεν δουλεύουμε σε RGB αλλά σε YUV, μιμούμενοι τον τρόπο που το μάτι ξεχωρίζει τη φωτεινότητα από το χρώμα, και χρησιμοποιούμε μετασχηματισμούς συχνότητας και πρόβλεψη για να απομακρύνουμε την πλεονάζουσα πληροφορία.

Ο Κεμπφ εξηγεί τη διαφορά ανάμεσα σε δοχείο (container) και codec: το MP4 δεν είναι το ίδιο με το H.264, παρόλο που ο κλάδος έκανε τα πράγματα δύσκολα με ονομασίες όπως MPEG-4 Part 10. Το VLC, επισημαίνει, δεν εμπιστεύεται την κατάληξη του αρχείου — την αντιμετωπίζει μόνο ως υπαινιγμό και εξετάζει το περιεχόμενο. Αυτή η φιλοσοφία γεννήθηκε από τις ρίζες του προγράμματος στη ροή μέσω δικτύου UDP, όπου τα πακέτα χάνονται και τα αρχεία είναι συχνά κατεστραμμένα. Ο Κούνια προσθέτει ότι ένα αρχείο .MP4 μπορεί στην πραγματικότητα να είναι οτιδήποτε, και αυτή η ανοχή στα σπασμένα αρχεία έκανε το VLC δημοφιλές στην εποχή της πειρατείας.

Η κοινότητα του ανοιχτού κώδικα περιγράφεται ως αξιοκρατική στον πυρήνα της. Ο Κεμπφ λέει ότι το μόνο που μετράει είναι η ποιότητα του κώδικα: «Μπορεί να είσαι σκύλος, δεν με νοιάζει — δεν με νοιάζει από πού έρχεσαι, κοιτάζω τον κώδικά σου». Αναφέρει ότι έφηβοι έχουν γράψει χιλιάδες γραμμές assembly στο FFmpeg, όπως ο Ρουικάι Πενγκ (Ruikai Peng), 16 ετών, που βρήκε και διόρθωσε ζητήματα ασφάλειας χωρίς να δημιουργήσει δράμα. Ο Κούνια σημειώνει πως η τραχύτητα στην επικοινωνία, όπως του Λίνους Τόρβαλντς (Linus Torvalds), είναι συνήθως «επί του θέματος» και συχνά επιδεινώνεται από το ότι πολλοί συνεισφέροντες δεν έχουν τα αγγλικά ως μητρική γλώσσα.

Ο Κεμπφ αφηγείται την ιστορία του VLC, που ξεκίνησε στο École Centrale Paris τη δεκαετία του 1990 με το πρότζεκτ Network 2000: φοιτητές μετέδιδαν δορυφορικό βίντεο MPEG-2 σε τοπικό δίκτυο, μια δεκαετία πριν το YouTube. Το VideoLAN Client έγινε το VLC, και το 2003 ο Κεμπφ ανέλαβε δράση για να το βγάλει από το πανεπιστήμιο και να το κάνει βιώσιμο. Το 2005 το πρότζεκτ κόντεψε να πεθάνει με μόνο δύο ενεργούς προγραμματιστές, αλλά εκείνος αποφάσισε να το συνεχίσει, πιστεύοντας ότι η τεχνολογία ήταν μεγάλη και χρήσιμη.

Ο Κεμπφ έγινε διάσημος επειδή αρνήθηκε επανειλημμένα δεκάδες εκατομμύρια δολάρια για να κρατήσει το VLC χωρίς διαφημίσεις. Εξηγεί ότι οι προσφορές προέρχονταν από σκιώδεις εταιρείες διαφημίσεων που ήθελαν να ενσωματώσουν γραμμές εργαλείων, λογισμικό κατασκοπείας ή να αλλάζουν τη μηχανή αναζήτησης του χρήστη. «Πρέπει να κερδίζεις χρήματα με ηθικό τρόπο», λέει, προσθέτοντας ότι ήθελε να μπορεί να κοιμάται ήσυχος τη νύχτα. Η τελευταία προσφορά ήταν, όπως τη χαρακτηρίζει, «άσεμνη», με το επιχείρημα ότι με τα λεφτά θα μπορούσε να φτιάξει κάτι νέο ανοιχτού κώδικα — αλλά εκείνος αρνήθηκε.

Μεγάλο μέρος της συζήτησης αφορά το επεισόδιο με τους μηχανικούς ασφαλείας της Google, που χρησιμοποίησαν τεχνητή νοημοσύνη για να δημιουργήσουν αναφορές ευπαθειών στο FFmpeg. Ο Κούνια εξηγεί ότι η Google ανακοίνωσε στα μέσα πόσο καλό είναι το AI της πριν διορθωθούν τα ζητήματα, εφαρμόζοντας προθεσμία 90 ημερών που δεν ταιριάζει σε εθελοντική ανάπτυξη, και ότι η ευπάθεια αφορούσε έναν σκοτεινό codec παιχνιδιού της δεκαετίας του 1990. Αναφέρει επίσης την υπόθεση XZ και το περιστατικό όπου η Microsoft ζήτησε δωρεάν και επείγουσα υποστήριξη από εθελοντές, προσφέροντας εφάπαξ μερικές χιλιάδες δολάρια αντί συμβολαίου. Μετά το ντιμπέιτ, οι δωρεές αυξήθηκαν σημαντικά, αν και δεν καλύπτουν ούτε έναν μισθό πλήρους απασχόλησης.

Οι δύο μηχανικοί εξηγούν γιατί η γλώσσα assembly παραμένει αναντικατάστατη. Ο Κούνια λέει ότι το SIMD επιτρέπει σε μία εντολή να επεξεργάζεται δεκαέξι αριθμούς ταυτόχρονα, προσφέροντας βελτιώσεις ταχύτητας 10x έως 50x σε σχέση με τη C — με ένα παράδειγμα να δείχνει 62x ταχύτητα. Το dav1d, ο αποκωδικοποιητής AV1 του VideoLAN, έχει 240.000 γραμμές χειρόγραφης assembly και χρησιμοποιεί δικές του συμβάσεις κλήσης για να κερδίζει κύκλους. Ο Κεμπφ αναφέρει τον Χένρικ Γκράμνερ (Henrik Gramner) και τον Μάρτιν Στόρσγιο (Martin Storsjö) ως μάγους της assembly, με τον δεύτερο να γράφει κώδικα από το τηλέφωνό του στην παιδική χαρά. Ο Κούνια έχει δημιουργήσει μαθήματα assembly (asm-lessons) για να μεταδώσει αυτή την τέχνη που κινδυνεύει να χαθεί.

Η ιστορία του H.264 και του x264 ξεχωρίζει ως παράδειγμα καινοτομίας από ερασιτέχνες. Ο Κούνια εξηγεί ότι χομπίστες, πολλοί από την κοινότητα των anime, αμφισβήτησαν την εμμονή του κλάδου με μαθηματικές μετρήσεις όπως το PSNR και εισήγαγαν ψυχοοπτική παραμόρφωση και προσαρμοστική κβαντοποίηση, κάνοντας τις εικόνες να φαίνονται πραγματικά καλύτερες. Το δείγμα ParkJoy από τη σουηδική τηλεόραση έγινε το κανονικό τεστ που ξεχώριζε τους άνδρες από τα αγόρια. Ο Κεμπφ προσθέτει ότι το x264, που γεννήθηκε στο ίδιο σχολείο με το VLC, παραμένει σημείο αναφοράς για κάθε νέο codec.

Ο Κεμπφ εξηγεί τον πόλεμο των διπλωμάτων ευρεσιτεχνίας στα πολυμέσα: το H.265/HEVC έγινε σχεδόν αδύνατο να αδειοδοτηθεί λόγω πολλαπλών δεξαμενών διπλωμάτων ευρεσιτεχνίας, οδηγώντας εταιρείες όπως η Google και το Netflix να δημιουργήσουν τη Συμμαχία για Ανοιχτά Μέσα (Alliance for Open Media) και το codec AV1 χωρίς δικαιώματα. Ο Κούνια σημειώνει ότι στον κόσμο του MPEG τα διπλώματα ευρεσιτεχνίας δεν συζητιούνται καν κατά την τυποποίηση. Ο Κεμπφ αναφέρει ότι στη Γαλλία τα διπλώματα λογισμικού απορρίπτονται, και ότι αν έπρεπε να πληρώσει όλα τα τέλη για το VLC θα χρειάζονταν πάνω από 200 ευρώ ανά χρήστη.

Η αντίστροφη μηχανική περιγράφεται ως μορφή αρχαιολογίας. Ο Κεμπφ αφηγείται πώς ο Κόστια Σίσκοφ (Kostya Shishkov), ένας Ουκρανός «οριακά ιδιοφυής», αντίστρεψε τον ιδιόκτητο codec του GoToMeeting σε δύο μήνες, αντιμετωπίζοντας τον κόσμο ως «δυαδική προδιαγραφή». Ο Κούνια περιγράφει τη διαδικασία: αποθήκευση μνήμης από εικονικές μηχανές, βήμα-βήμα εκτέλεση στον αποσφαλματωτή, και αναζήτηση δειγμάτων από την κοινότητα. Η ακρίβεια στο bit (bit exactness) είναι κρίσιμη: κάθε υλοποίηση ενός αποκωδικοποιητή πρέπει να παράγει ακριβώς τα ίδια bits.

Η εξουθένωση των συντηρητών (maintainers) ανοιχτού κώδικα είναι ένα θέμα που προσεγγίζεται με ειλικρίνεια. Ο Κεμπφ αναφέρει ότι δέχθηκε απειλές θανάτου με σκόνη σε φάκελο όταν αποφάσισε να σταματήσει την υποστήριξη του PowerPC, και ότι σήμερα συντηρεί βιβλιοθήκες που οι προηγούμενοι συντηρητές εγκατέλειψαν λόγω ψυχολογικής πίεσης. Αναφέρει ότι το libXML δεν συντηρείται πλέον από κανέναν, και ότι η βάση δεδομένων ζωνών ώρας κρατιέται από έναν άνθρωπο. Ο Ντάνιελ Στένμπεργκ (Daniel Stenberg), συντηρητής του curl, μάχεται κατά του «AI slop» — των ψεύτικων αναφορών που δημιουργούνται από μοντέλα και επιβαρύνουν τους εθελοντές.

Η κοινότητα αρχειοθέτησης παρουσιάζεται ως υπόδειγμα ήθους. Με επικεφαλής τον Ντέιβ Ράις (Dave Rice) από το City University της Νέας Υόρκης, χρηματοδότησε την ανάπτυξη του FFV1, ενός codec χωρίς απώλειες σχεδιασμένου για γρήγορη κωδικοποίηση σε λογισμικό και ανθεκτικότητα σε απώλεια bits. Ο Κούνια αναφέρει το παράδειγμα του New Domesday Book στο Ηνωμένο Βασίλειο, που αρχειοθετήθηκε σε μικροϋπολογιστές BBC και χρειάστηκε αντίστροφη μηχανική μετά από 20 χρόνια — μια προειδοποίηση για το τι μπορεί να συμβεί σε χίλια χρόνια. Η C, λέει, θα είναι όπως τα λατινικά: θα μαθαίνεται ακόμα και θα παραμένει χρησιμοποιήσιμη, κάνοντας το FFmpeg μια Ροζέτα Λίθο για το μέλλον.

Κοιτάζοντας μπροστά, οι δύο μηχανικοί βλέπουν τα πολυμέσα να επεκτείνονται σε νέες αισθήσεις: σημειακά νέφη (point clouds), ογκομετρικό βίντεο, απτικά δεδομένα, ακόμα και οσμές. Ο Κεμπφ λέει ότι ό,τι είναι χρονισμένο και αναπαριστά κάτι που μπορούμε να αισθανθούμε θα μπει στο FFmpeg — «αν είναι εγκεφαλικά κύματα, θα είναι εγκεφαλικά κύματα». Μιλά επίσης για το Kyber, τη νέα του startup για υπερχαμηλή καθυστέρηση στην τηλεχείριση ρομπότ, drones και οχημάτων, με στόχο τέσσερα χιλιοστά του δευτερολέπτου «glass-to-glass», έχοντας ήδη πετύχει επτά. Το πρότζεκτ είναι ανοιχτού κώδικα με διπλή αδειοδότηση.

Το επεισόδιο κλείνει με ευγνωμοσύνη και μια φιλοσοφική νότα. Ο Κεμπφ λέει ότι οι τύψεις είναι «φόρος στο μυαλό σου»: μαθαίνεις από τα λάθη αλλά δεν μετανιώνεις. Ο Φρίντμαν ευχαριστεί τους δύο καλεσμένους για το λογισμικό που έφερε χαρά σε εκατομμύρια ανθρώπους, και το επεισόδιο τελειώνει με τα λόγια του Λίνους Τόρβαλντς: «Οι περισσότεροι καλοί προγραμματιστές προγραμματίζουν όχι επειδή περιμένουν να πληρωθούν ή να λάβουν αναγνώριση, αλλά επειδή είναι διασκεδαστικό να προγραμματίζεις».

Σας φάνηκε χρήσιμο αυτό το άρθρο;

Βαθμολογία αναγνωστών: 0 · οι ψήφοι σας μάς βοηθούν να διαλέγουμε τα επόμενα θέματα

Ακρόαση ↗MP3 ↗Όλα τα επεισόδια: Lex Fridman Podcast →

Τα άρθρα γράφονται με τη βοήθεια τεχνητής νοημοσύνης, αποκλειστικά από τα κείμενα των πηγών που αναφέρονται. Οι εικόνες με την ένδειξη «AI» δημιουργούνται επίσης με τεχνητή νοημοσύνη.

⚑ Αναφορά λάθους

Βρήκατε κάποιο λάθος στο άρθρο (γεγονός, μετάφραση, ορθογραφία); Πείτε μας και θα το διορθώσουμε.

Σχόλια

Το Jumpship λειτουργεί προσωρινά μόνο για ανάγνωση. Ψήφοι, σχόλια και σύνδεση επανέρχονται σε λίγα λεπτά.