Χωρίς μεταφόρτωση, 100% τοπικά, χωρίς λογαριασμό

Άρθρο

Εξαγωγή καρέ βίντεο για thumbnails και contact sheets

Ένα βίντεο είναι μια ακολουθία στατικών εικόνων. Η εξαγωγή μιας από αυτές δίνει ένα thumbnail, ένα εξώφυλλο ή ένα contact sheet. Το αποτέλεσμα είναι πιο ευκρινές και προβλέψιμο όταν καταλαβαίνετε πώς ένα codec βίντεο αποθηκεύει τα καρέ του και ποιες στιγμές αξίζει να καταγράψετε.

Καρέ και ρυθμός καρέ

Ένα αρχείο βίντεο είναι μια ακολουθία στατικών εικόνων που εμφανίζονται αρκετά γρήγορα για να δημιουργήσουν την ψευδαίσθηση της κίνησης. Ο αριθμός εικόνων που εμφανίζονται ανά δευτερόλεπτο είναι ο ρυθμός καρέ, εκφρασμένος σε fps. Συνηθισμένες τιμές είναι 24 fps για κινηματογράφο, 25 fps για εκπομπές PAL, 30 fps για βίντεο στο διαδίκτυο και 60 fps για υλικό gaming. Στα 24 fps, μια ταινία δύο ωρών περιέχει περίπου 172.800 μεμονωμένα καρέ. Κάθε καρέ αντιστοιχεί σε μία μόνο στιγμή. Η εξαγωγή ενός παγώνει εκείνη τη στιγμή ως αυτόνομη εικόνα. Ο ρυθμός καρέ καθορίζει επίσης πόσα καρέ παίρνετε ανά δευτερόλεπτο πλάνου κατά τη μαζική εξαγωγή: στα 30 fps, η εξαγωγή κάθε καρέ από ένα λεπτό βίντεο δίνει 1.800 εικόνες, που συχνά είναι πολύ περισσότερες από ό,τι χρειάζεστε. Η εξαγωγή σε χαμηλότερο ρυθμό καρέ, ή κάθε N-οστού καρέ με εργαλεία που το υποστηρίζουν, είναι πρακτικός τρόπος να μειώσετε αυτόν τον όγκο καλύπτοντας παράλληλα ολόκληρη τη διάρκεια.

Λωρίδα χρονολογίου που δείχνει 24 μεμονωμένα καρέ ανά δευτερόλεπτο πλάνου, με τον αριθμό καρέ και τη χρονοσφραγίδα ορατά κάτω από κάθε καρέ.

Keyframes έναντι interpolated frames

Τα σύγχρονα codecs βίντεο δεν αποθηκεύουν κάθε καρέ ως πλήρη εικόνα. Χρησιμοποιούν τρεις τύπους καρέ για εξοικονόμηση χώρου. Ένα I-frame, που ονομάζεται επίσης keyframe, είναι μια πλήρης, αυτάρκης εικόνα. Ένα P-frame αποθηκεύει μόνο τα pixel που άλλαξαν από το τελευταίο I-frame ή P-frame. Ένα B-frame αποθηκεύει αλλαγές σε σχέση με ένα προηγούμενο και ένα μελλοντικό καρέ, απαιτώντας καρέ και από τις δύο πλευρές για την ανακατασκευή του. Επειδή ένα P-frame ή B-frame είναι ελλιπές από μόνο του, η αποκωδικοποίηση του απαιτεί τα γύρω καρέ αναφοράς. Αν αυτά τα καρέ αναφοράς περιέχουν θόλωση κίνησης ή μετάβαση, η ανακατασκευασμένη εικόνα κληρονομεί αυτήν τη θόλωση. Ένα I-frame, αντίθετα, αποκωδικοποιείται ανεξάρτητα. Είναι πάντα ευκρινές γιατί δεν δανείζεται τίποτε από γειτονικά καρέ. Κατά την εξαγωγή καρέ για χρήση ως thumbnail, η επιλογή I-frame δίνει το καθαρότερο δυνατό αποτέλεσμα. Τα περισσότερα codecs τοποθετούν I-frames στις αλλαγές σκηνής, που είναι φυσικά ευκρινή σημεία εκκίνησης.

Επιλογή της κατάλληλης στιγμής

Ακόμα και ένα καλά αποκωδικοποιημένο I-frame μπορεί να κάνει κακό thumbnail αν η καταγεγραμμένη στιγμή δεν είναι κολακευτική. Αρκετοί παράγοντες μειώνουν την ποιότητα των thumbnails. Θόλωση κίνησης εμφανίζεται όταν η κάμερα ή το θέμα κινείται γρήγορα κατά τη διάρκεια της έκθεσης του καρέ. Η επακόλουθη θολότητα κάνει το καρέ να φαίνεται μαλακό ακόμα κι αν η αποκωδικοποίηση ήταν καθαρή. Τα καρέ μετάβασης που πιάστηκαν στη μέση ενός dissolve ή fade περιέχουν δύο επικαλυπτόμενες εικόνες και σπάνια δουλεύουν ως αυτόνομες φωτογραφίες. Υποεκτεθειμένα ή υπερεκτεθειμένα καρέ, συχνά στην αρχή μιας σκηνής πριν σταθεροποιηθεί η αυτόματη έκθεση, χάνουν λεπτομέρεια στις σκιές ή τα φώτα. Τα καλύτερα καρέ για thumbnail προέρχονται από στιγμές με σαφή δράση ή έκφραση, καλό φωτισμό και σταθερή κάμερα. Η πλοήγηση μέσα στο βίντεο με αναπαραγωγέα που δείχνει ακριβείς χρονοσφραγίδες σας επιτρέπει να εντοπίσετε αυτές τις στιγμές πριν τις εξαγάγετε. Ένα καρέ που φαίνεται καλό σε παύση σε έναν αναπαραγωγέα θα φαίνεται συνήθως καλό και ως εξαγόμενη στατική εικόνα.

Αναπαραγωγέας βίντεο σε παύση σε ένα καλά φωτισμένο, σταθερό καρέ ενός θέματος στη μέση μιας δράσης, με χρονοσφραγίδα στη γωνία.

Εξαγωγή: ανάλυση, μορφή και κάθε N-οστό καρέ

Κατά την εξαγωγή καρέ, η εξαγόμενη εικόνα πρέπει να αντιστοιχεί στην αρχική ανάλυση του βίντεο. Η μεγέθυνση εισάγει artifacts παρεμβολής. Η σμίκρυνση απορρίπτει pixel που μπορεί να χρειαστείτε. Ένα βίντεο 1080p παράγει εικόνες 1920x1080 pixel, ενώ ένα βίντεο 4K παράγει εικόνες 3840x2160. Για τη μορφή, το PNG διατηρεί κάθε pixel ακριβώς και είναι η σωστή επιλογή όταν χρειάζεστε μέγιστη ευκρίνεια για επεξεργασία ή περαιτέρω κλιμάκωση. Το JPEG είναι μικρότερο και κατάλληλο για προεπισκόπηση ή κοινοποίηση, αλλά εισάγει artifacts συμπίεσης γύρω από ευκρινείς άκρες. Αν φτιάχνετε contact sheet, δηλαδή πλέγμα από μικρά αντιπροσωπευτικά καρέ που καλύπτουν ολόκληρη τη διάρκεια, η εξαγωγή σε σταθερό ρυθμό καρέ αντί για κάθε καρέ είναι η τυπική προσέγγιση: ζητώντας 1 καρέ ανά δευτερόλεπτο από πηγή 30 fps παίρνετε μία εικόνα ανά δευτερόλεπτο πλάνου, και ένας υψηλότερος ρυθμός όπως 5 ή 10 fps δίνει πυκνότερο σύνολο για λεπτομερή εξέταση. Ο ακριβής ρυθμός εξαρτάται από πόση λεπτομέρεια χρειάζεστε σε σχέση με τον αριθμό εικόνων που θέλετε να διαχειριστείτε.

Τοπική επεξεργασία με το video-extract-frames

Το εργαλείο video-extract-frames στο Sunasty αποκωδικοποιεί το βίντεο σας εξ ολοκλήρου μέσα στον περιηγητή χρησιμοποιώντας FFmpeg μεταγλωττισμένο σε WebAssembly. Αποθέτετε ένα αρχείο, επιλέγετε ρυθμό καρέ από 1 έως 30 καρέ ανά δευτερόλεπτο, επιλέγετε PNG ή JPEG, και το εργαλείο αποκωδικοποιεί τα καρέ σε εκείνον τον ρυθμό στη μνήμη του περιηγητή και σας τα προσφέρει ως ξεχωριστές λήψεις, με ανώτατο όριο 300 καρέ ανά εκτέλεση. Το αρχείο βίντεο δεν αποχωρεί ποτέ από τη συσκευή σας. Δεν αποστέλλεται κανένα byte σε διακομιστή σε κανένα σημείο της διαδικασίας. Αυτό έχει σημασία για πλάνα που περιέχουν προσωπικό ή ευαίσθητο περιεχόμενο: οικογενειακή εγγραφή, συνέντευξη ή ακατέργαστο υλικό πριν από την επεξεργασία. Ο περιηγητής φορτώνει το βίντεο σε ένα εικονικό σύστημα αρχείων στη RAM, εκτελεί την αποκωδικοποίηση FFmpeg και σας επιστρέφει τις εικόνες. Ο συμβιβασμός είναι ότι η αποκωδικοποίηση γίνεται μέσω λογισμικού στην CPU σας και όχι από ειδικό υλικό, οπότε ένα μεγάλο βίντεο υψηλής ανάλυσης χρειάζεται περισσότερο χρόνο από μια εγγενή εφαρμογή. Για εξαγωγή λίγων καρέ ή παραγωγή contact sheet από σύντομο κλιπ, η ταχύτητα είναι πρακτική.

Εργαλεία αυτού του άρθρου

Συχνές ερωτήσεις

Γιατί το εξαγόμενο καρέ μου φαίνεται θολό;

Η πιο συνηθισμένη αιτία είναι η επιλογή P-frame ή B-frame σε στιγμή κίνησης. Αυτά τα καρέ αποθηκεύουν διαφορές και όχι πλήρεις εικόνες, και η θόλωση κίνησης στο πηγαίο υλικό μεταφέρεται στην αποκωδικοποίηση. Δοκιμάστε να εξαγάγετε το κοντινότερο I-frame, που αντιστοιχεί σε αλλαγή σκηνής ή περιοδικό keyframe, για πιο ευκρινές αποτέλεσμα.

Να εξάγω τα καρέ ως PNG ή JPEG;

PNG αν σκοπεύετε να επεξεργαστείτε το καρέ, να το μεγεθύνετε ή να το χρησιμοποιήσετε σε πλαίσιο όπου τα artifacts συμπίεσης θα ήταν ορατά. JPEG αν χρειάζεστε μικρότερο αρχείο για γρήγορη κοινοποίηση ή προεπισκόπηση και η μικρή απώλεια ποιότητας είναι αποδεκτή. Για thumbnails που εμφανίζονται σε σταθερό μικρό μέγεθος, το JPEG σε λογική ρύθμιση ποιότητας είναι συνήθως καλό.

Πώς φτιάχνω contact sheet από ένα βίντεο;

Επιλέξτε έναν ρυθμό καρέ αρκετά χαμηλό ώστε να σας δώσει έναν διαχειρίσιμο αριθμό εικόνων, αντί για μία μόνο χρονοσφραγίδα. Για ένα κλιπ δύο λεπτών, 1 καρέ ανά δευτερόλεπτο σας δίνει περίπου 120 καρέ, αρκετά πυκνό για να διαλέξετε ένα καλό πλέγμα· η έξοδος έχει ανώτατο όριο 300 καρέ ανά εκτέλεση σε κάθε περίπτωση. Δεν υπάρχει σήμερα πιο αραιός ρυθμός από 1 fps, οπότε για πιο αραιό πλέγμα, εξάγετε στα 1 fps και κρατήστε μόνο τα καρέ που θέλετε για το τελικό πλέγμα.