Βίντεο σε GIF

Βίντεο σε GIF - Online δημιουργός κινούμενων GIF — Μετατροπή ενός κλιπ βίντεο σε κινούμενο GIF με επανάληψη, με τον ρυθμό καρέ, το πλάτος και την ποιότητα παλέτας της επιλογής. Το GIF είναι μακροχρόνια ανοιχτή μορφή που καταλαβαίνει σχεδόν κάθε συσκευή και πλατφόρμα συνομιλίας. Όλη η επεξεργασία γίνεται τοπικά στο πρόγραμμα περιήγησης, χωρίς μεταφόρτωση αρχείων σε διακομιστή.
Υποστηριζόμενη είσοδος: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG και άλλες συνηθισμένες μορφές βίντεο. Όλα μετατρέπονται τοπικά στο πρόγραμμα περιήγησης· τα αρχεία δεν μεταφορτώνονται ποτέ σε διακομιστή.
Η πρώτη χρήση φορτώνει στο τρέχον πρόγραμμα περιήγησης μηχανή επεξεργασίας βίντεο ~30MB. Αποθηκεύεται στην κρυφή μνήμη και επαναχρησιμοποιείται στη συνέχεια, οπότε απαιτείται υπομονή.
🎥
Κλικ για επιλογή ή σύρσιμο ενός αρχείου βίντεο
Υποστηρίζονται WebM, OGV, MKV, AVI, GIF και άλλες συνηθισμένες μορφές· συνιστάται κάτω από 500 MB
Ρυθμός καρέ: μεγαλύτερη τιμή = ομαλότερο αλλά μεγαλύτερο αρχείο
Μέγιστο πλάτος: κλιμακώνεται αυτόματα για τη διατήρηση του λόγου διαστάσεων
Χρώματα παλέτας: λιγότερα χρώματα = μικρότερο αρχείο, μικρή απώλεια ποιότητας
Μετατροπή σε κινούμενο GIF: εξαγωγή καρέ στον επιλεγμένο ρυθμό, κλιμάκωση στο μέγιστο πλάτος, και δημιουργία βελτιστοποιημένης παλέτας χρωμάτων για την επανάληψη. Το κομμάτι ήχου (αν υπάρχει) απορρίπτεται.
Γιατί τα GIF είναι τόσο μεγάλα; Παλέτες, διάχυση και η μορφή του 1987 που κάνει τη δουλειά βίντεο

GIF (Graphics Interchange Format, 1987) σχεδιάστηκε ως μορφή στατικής εικόνας με μικρό μπόνους κινούμενων εικόνων, και φαίνεται. Δύο ιδιότητες καθορίζουν τα πάντα σε αυτή τη σελίδα: κάθε καρέ περιορίζεται σε 256 χρώματα επιλεγμένα από μια αποθηκευμένη παλέτα, και τα καρέ συμπιέζονται με LZW — έναν συμπιεστή bytes γενικής χρήσης της εποχής του zip — που δεν έχει ιδέα ότι αποθηκεύεται βίντεο. Δεν υπάρχει αντιστάθμιση κίνησης, καμία αριθμητική τύπου «αυτό το καρέ είναι κυρίως το προηγούμενο» όπως στα πραγματικά βίντεο· κάθε καρέ είναι ουσιαστικά μια ξεχωριστά συμπιεσμένη εικόνα. Η κατανόηση της παλέτας είναι το κλειδί για μικρά και καλοφαινόμενα GIF.

Πέντε γεγονότα για να στηριχτεί η υπόλοιπη σελίδα:
• κάθε καρέ φέρει το πολύ 256 χρώματα (28) από παλέτα· το βίντεο πραγματικών χρωμάτων πρέπει να κβαντιστεί σε αυτά
• η διάχυση προσομοιώνει τα λείποντα χρώματα σκορπίζοντας τελείες γειτονικών καταχωρίσεων της παλέτας — μεγαλύτερα αρχεία, πιο ομαλές διαβαθμίσεις
• ο χρονισμός καρέ αποθηκεύεται σε μονάδες των 10 ms: 10 fps → καθυστέρηση 10 (100 ms)· το πρακτικό όριο είναι καθυστέρηση 2 (20 ms = 50 fps)
• τα καρέ συμπιέζονται με LZW ανεξάρτητα — η απουσία συμπίεσης μεταξύ καρέ είναι ο νούμερο ένα εχθρός του μεγέθους
• λιγότερα χρώματα, λιγότερα καρέ, μικρότερες διαστάσεις: κάθε ρύθμιση συρρικνώνει την είσοδο του LZW, και το αποτέλεσμα πολλαπλασιάζεται
Η παλέτα των 256 χρωμάτων και οι ζώνες

Ένα εικονοστοιχείο βίντεο πραγματικών χρωμάτων χρειάζεται 24 bit (16,7 εκατομμύρια δυνατότητες)· ένα εικονοστοιχείο GIF είναι ένας δείκτης 8 bit σε πίνακα το πολύ 256 χρωμάτων. Η μετατροπή βίντεο σε GIF εκτελεί επομένως κβαντισμό παλέτας: επιλογή των 256 χρωμάτων που αναπαριστούν καλύτερα το περιεχόμενο, και έπειτα «κούμπωμα» κάθε εικονοστοιχείου στο πλησιέστερο. Οι διαβαθμίσεις πληρώνουν το τίμημα — ένας ουρανός που χρειάζεται 4 000 ελαφρώς διαφορετικά μπλε παίρνει 30, και η ομαλή κλίμακα καταρρέει σε ορατές ταινίες που λέγονται ζώνες. Τα επίπεδα γραφικά υψηλής αντίθεσης (λογότυπα, sprites παιχνιδιών, γραφήματα) σχεδόν δεν το προσέχουν· οι φωτογραφίες και το βίντεο χτυπιούνται περισσότερο. Η ποιότητα της παλέτας ενός μετατροπέα είναι μεγάλο μέρος της ποιότητας της εξόδου του.

Διάχυση: ανταλλαγή θορύβου με ομαλότητα

Η διάχυση είναι η κλασική λύση για τις ζώνες: αντί να κουμπώνει κάθε εικονοστοιχείο στο πλησιέστερο χρώμα της παλέτας, σκορπίζεται ένα μείγμα των δύο πλησιέστερων χρωμάτων ώστε ο μέσος όρος σε μια μικρή περιοχή να ταιριάζει με τον αρχικό τόνο. Οι διαβαθμίσεις φαίνονται δραματικά ομαλότερες — οι ταινίες διαλύονται σε λεπτό θόρυβο που το μάτι συγχωνεύει σε κανονική απόσταση θέασης. Το κόστος είναι το μέγεθος του αρχείου: ο θόρυβος είναι λεπτομέρεια υψηλής συχνότητας, και το LZW συμπιέζει πολύ καλύτερα τις κανονικές ταινίες παρά τις διάσπαρτες τελείες. Αυτή είναι η θεμελιώδης ανταλλαγή του GIF που αναδεικνύει αυτή η σελίδα: απενεργοποίηση της διάχυσης για μικρότερα αρχεία με ζώνες, ενεργοποίηση για ομαλές διαβαθμίσεις με αύξηση μεγέθους.

Χρονισμός καρέ: το όριο των 20 ms

Το GIF αποθηκεύει την καθυστέρηση μεταξύ καρέ σε μονάδες του 1/100 του δευτερολέπτου. Τα 10 fps σημαίνουν καθυστέρηση 10 (100 ms ανά καρέ)· τα 20 fps καθυστέρηση 5 (50 ms). Η μικρότερη χρήσιμη τιμή είναι το 2 (20 ms, δηλαδή 50 fps), και στην πράξη τα περισσότερα προγράμματα περιήγησης περιορίζουν οτιδήποτε κάτω από αυτό στα 100 ms — ζητώντας 60 fps παράγεται σιωπηλά αργότερη αναπαραγωγή. Πέρα από το όριο, κάθε αύξηση των fps πολλαπλασιάζει τον αριθμό καρέ: 15 fps → 50 fps για το ίδιο κλιπ σημαίνει περισσότερα από τριπλάσια καρέ, και το μέγεθος του GIF κλιμακώνεται περίπου γραμμικά με τον αριθμό καρέ. Ένα κλιπ 10 δευτερολέπτων στα 15 fps είναι 150 καρέ· στα 50 fps θα ήταν 500.

Γιατί τα GIF φουσκώνουν σε σύγκριση με το πραγματικό βίντεο

Οι σύγχρονοι κωδικοποιητές βίντεο ξοδεύουν τα περισσότερα bits τους περιγράφοντας την αλλαγή ανάμεσα στα καρέ — μια κλειδωμένη κάμερα σημαίνει ότι τα μεταγενέστερα καρέ κοστίζουν σχεδόν τίποτα. Το LZW του GIF βλέπει κάθε καρέ ως νέα εικόνα (το μοναδικό του κόλπο μεταξύ καρέ είναι μια σημαία διαφάνειας που παραλείπει εικονοστοιχεία πανομοιότυπα με το προηγούμενο καρέ, κάτι που βοηθά πολύ λιγότερο από την πραγματική αντιστάθμιση κίνησης). Ο εμπειρικός κανόνας: για το ίδιο κλιπ, ένα GIF αναμένεται να είναι πολλές φορές μεγαλύτερο από ένα καλά κωδικοποιημένο WebM στην ίδια ανάλυση. Αν ο προορισμός δέχεται πραγματικό βίντεο, προτιμάται αυτό· το GIF κερδίζει μόνο εκεί όπου μετρά η οικουμενικότητά του και η συμπεριφορά αυτόματης αναπαραγωγής και επανάληψης.

Συνηθισμένες παρανοήσεις
  • «Το GIF είναι συμπιεσμένο, άρα είναι αποδοτικό για βίντεο.» Το LZW είναι συμπιεστής σε επίπεδο bytes από το 1987, χωρίς μοντέλο κίνησης· για κινούμενο υλικό είναι η λιγότερο αποδοτική ευρέως χρησιμοποιούμενη μορφή στον ιστό.
  • «Η πηγή είναι 60 fps, άρα το GIF πρέπει να είναι και αυτό.» Το όριο καθυστέρησης των 20 ms περιορίζει το GIF στα 50 fps, και τα προγράμματα περιήγησης ανεβάζουν τις καθυστερήσεις κάτω από το όριο. Η πιστότητα καρέ προς καρέ δεν είναι κάτι που μπορεί να δώσει το GIF.
  • «Η διάχυση είναι απλώς θόρυβος που πρέπει να απενεργοποιείται.» Είναι σκόπιμη ανταλλαγή ποιότητας και μεγέθους: χωρίς διάχυση τα αρχεία είναι μικρότερα αλλά με ζώνες, με διάχυση οι διαβαθμίσεις είναι ομαλές και κοστίζουν bytes.
  • «Λιγότερα χρώματα πάντα φαίνονται άσχημα.» Για επίπεδα γραφικά και κινούμενα σχέδια υψηλής αντίθεσης, ακόμη και 64 χρώματα μπορεί να φαίνονται ίδια με 256 — και να μικραίνουν περισσότερο το αρχείο.

Σχετικά εργαλεία: Βίντεο σε WebP/APNG για κινούμενα χρώματα πραγματικής συμπίεσης, GIF σε βίντεο για την αντίστροφη κατεύθυνση (παλέτα σε πραγματικά χρώματα), Βίντεο σε WebM για το ίδιο κλιπ ως πραγματικό βίντεο, και Κοπή βίντεο για περικοπή της πηγής πριν τη μετατροπή.