Κοπή, περικοπή, διαχωρισμός και συγχώνευση βίντεο online — Κοπή ανεπιθύμητων τμημάτων, διαχωρισμός ενός κλιπ σε πολλά τμήματα ή συγχώνευση πολλών αρχείων βίντεο σε ένα. Όλη η επεξεργασία γίνεται τοπικά στο πρόγραμμα περιήγησης, οπότε τα αρχεία δεν μεταφορτώνονται ποτέ σε κανέναν διακομιστή και η ιδιωτικότητα προστατεύεται πλήρως.
Υποστηριζόμενη είσοδος: Βίντεο που χρησιμοποιούν ανοιχτούς κωδικοποιητές χωρίς δικαιώματα χρήσης, όπως VP8/VP9/AV1/MPEG-4/FFV1 (κοντέινερ WebM, MKV, MP4, MOV, AVI). Η μορφή εξόδου και οι κωδικοποιητές επιλέγονται παρακάτω· κάθε έξοδος κωδικοποιείται ξανά τοπικά στο πρόγραμμα περιήγησης.
Η πρώτη χρήση φορτώνει στο τρέχον πρόγραμμα περιήγησης μηχανή επεξεργασίας βίντεο ~30MB. Αποθηκεύεται στην κρυφή μνήμη και επαναχρησιμοποιείται στη συνέχεια, οπότε απαιτείται υπομονή.
🎥
Κλικ για επιλογή ή σύρσιμο ενός αρχείου βίντεο
Υποστηρίζονται WebM, MKV, MP4, MOV, AVI και άλλες συνηθισμένες μορφές· συνιστάται κάτω από 500 MB
Περικοπή / κοπή: Διατήρηση μόνο του τμήματος του βίντεο ανάμεσα στην ώρα αρχής και τέλους (μορφή ΩΩ:ΛΛ:ΔΔ ή απλά δευτερόλεπτα, π.χ. 00:00:05 ή 5). Το επιλεγμένο τμήμα κωδικοποιείται ξανά σε νέο αρχείο.
Διαχωρισμός: Χωρισμός του βίντεο σε πολλά μέρη. Είτε λίστα χρονικών σημείων (χωρισμένα με κόμμα, π.χ. 00:00:10,00:00:20) είτε διαχωρισμός σε ίσο αριθμό μερών. Κάθε μέρος λαμβάνεται χωριστά.
Συγχώνευση: Προσθήκη δύο ή περισσότερων αρχείων βίντεο, ταξινόμηση και συγχώνευση σε ένα αρχείο. Όλες οι είσοδοι κωδικοποιούνται ξανά με τις ίδιες ρυθμίσεις, οπότε οι ασύμβατοι κωδικοποιητές αντιμετωπίζονται, αλλά για καλύτερο αποτέλεσμα διατηρούνται παρόμοια ανάλυση και ρυθμίσεις ήχου.
Τι είναι τα keyframes και τα GOP; Γιατί η κοπή βίντεο είναι δυσκολότερη από όσο φαίνεται
Η κοπή βίντεο ακούγεται σαν διαγραφή ενός τμήματος από bytes, αλλά το συμπιεσμένο βίντεο δεν αποθηκεύει πλήρεις εικόνες. Μια συμπιεσμένη ροή είναι αλυσίδα που αρχίζει με μια πλήρως αυτοτελή εικόνα (ένα keyframe, το καρέ I) και ακολουθούν δεκάδες καρέ που αποθηκεύουν μόνο ό,τι άλλαξε από το προηγούμενο. Δεν μπορεί να αποκωδικοποιηθεί το καρέ 47 αν δεν έχουν αποκωδικοποιηθεί πρώτα τα καρέ 1 έως 46. Αυτή η αλυσίδα εξαρτήσεων — ένα keyframe και όλα τα καρέ που στηρίζονται σε αυτό — λέγεται GOP (Group of Pictures). Η κοπή είναι επομένως διαπραγμάτευση με τη δομή GOP: κοπή σε keyframe επιτρέπει αντιγραφή bytes· κοπή οπουδήποτε αλλού σημαίνει ότι κάτι πρέπει να ξαναχτιστεί.
Πέντε γεγονότα για να στηριχτεί η υπόλοιπη σελίδα:
• Καρέ I (keyframe) = πλήρης εικόνα, αποκωδικοποιείται μόνο του· καρέ P = αλλαγές από το προηγούμενο καρέ· καρέ B = αλλαγές που παρεμβάλλονται ανάμεσα σε δύο καρέ
• GOP = ένα keyframe συν τα εξαρτώμενα καρέ του· συνήθες μήκος: 1–2 δευτερόλεπτα (στα 30 fps αυτό είναι 30–60 καρέ)
• κοπή σε keyframe = αντιγραφή των υπαρχόντων GOP, στιγμιαία και χωρίς απώλειες, αλλά η κοπή κουμπώνει στο πλησιέστερο keyframe (έως ένα μήκος GOP απόκλισης)
• κοπή ακριβούς καρέ = ακριβώς το καρέ που επιλέχθηκε, αλλά το GOP του ορίου πρέπει να κωδικοποιηθεί ξανά
• το μέγεθος ακολουθεί τον ρυθμό bit: ένα κλιπ 60 δευτερολέπτων σε 12 Mbps είναι 12×60/8 = 90 MB ανεξάρτητα από το τι υπάρχει στην εικόνα
Καρέ I, P και B
Το καρέ I ("intra") είναι πλήρης εικόνα εκείνης της στιγμής, τύπου JPEG· είναι μεγάλο αλλά δεν χρειάζεται τίποτα άλλο. Το καρέ P ("predicted") αποθηκεύει μόνο τη διαφορά από το προηγούμενο καρέ — μια στατική λήψη κάμερας κάνει τα καρέ P σχεδόν δωρεάν, γι' αυτό τα βίντεο με ομιλητή συμπιέζονται τόσο καλά. Το καρέ B ("bidirectional") προβλέπεται από και το προηγούμενο και το επόμενο καρέ, πιάνοντας αντικείμενα που αποκαλύπτονται και ξανακρύβονται· είναι το φθηνότερο σε αποθήκευση αλλά το δυσκολότερο στην επεξεργασία, επειδή η σειρά αποκωδικοποίησης δεν ταιριάζει πλέον με τη σειρά εμφάνισης. Οι επεξεργαστές βίντεο κρύβουν αυτή την πολυπλοκότητα· η μορφή αρχείου όχι.
Γιατί η κοπή σε keyframe είναι στιγμιαία και χωρίς απώλειες
Η κοπή σε keyframe επιλέγει ολόκληρα GOP και αντιγράφει τα συμπιεσμένα bytes τους σε νέο κοντέινερ — χωρίς αποκωδικοποίηση, χωρίς νέα κωδικοποίηση, ολοκληρώνεται σε χρόνο περίπου ίσο με αυτόν της εγγραφής του αρχείου. Το τίμημα είναι η ακρίβεια: το ζητούμενο σημείο εισόδου μπορεί να πέσει μόνο εκεί όπου υπάρχει πράγματι keyframe. Με GOP 2 δευτερολέπτων στα 30 fps (60 καρέ ανά GOP), το πλησιέστερο keyframe μπορεί να απέχει έως 59 καρέ, οπότε το κλιπ μπορεί να αρχίζει αισθητά νωρίτερα ή αργότερα από ό,τι σημειώθηκε. Οι streamers κωδικοποιούν με διαστήματα keyframe 1–2 δευτερολέπτων ακριβώς για να μένει γρήγορη η αναζήτηση· τα πλάνα ασφαλείας με GOP 10 δευτερολέπτων είναι γνωστά για το «πήδημα» όταν γίνεται scrubbing.
Γιατί η κοπή ακριβούς καρέ πρέπει να κωδικοποιηθεί ξανά
Ας υποτεθεί ότι το τέλειο καρέ αρχής είναι καρέ P στη μέση ενός GOP. Τα συμπιεσμένα bytes του λένε «ίδιο με το προηγούμενο καρέ, εκτός από...» — άχρηστο χωρίς τα καρέ πριν από αυτό. Για να γίνει αυτοτελές, ο κόφτης πρέπει να αποκωδικοποιήσει ολόκληρο το GOP μέχρι εκείνο το καρέ, να προαγάγει το επιλεγμένο καρέ σε νέο keyframe και να το κωδικοποιήσει ξανά (και ό,τι ακολουθεί μέχρι το επόμενο αρχικό keyframe). Μόνο το GOP του ορίου πληρώνει αυτό το κόστος: το υπόλοιπο κλιπ αντιγράφεται ακόμη bytes προς bytes. Γι' αυτό η κοπή ακριβούς καρέ είναι πιο αργή αλλά μόνο ελαφρώς πιο απωλεστική — ένα GOP παίρνει δεύτερο πέρασμα συμπίεσης, και το υπόλοιπο μένει αλλοίωτο.
Συνηθισμένες παρανοήσεις
«Η κοπή απλώς διαγράφει ένα τμήμα του αρχείου.» Σχεδόν κανένα καρέ δεν στέκεται μόνο του σε συμπιεσμένη ροή· κάθε σημείο κοπής πρέπει πρώτα να συμφιλιωθεί με τη δομή GOP.
«Κάθε κοπή κωδικοποιείται ξανά και κοστίζει σε ποιότητα.» Οι κοπές σε keyframe δεν κωδικοποιούνται ποτέ ξανά. Ακόμη και οι κοπές ακριβούς καρέ κωδικοποιούν ξανά μόνο το GOP του ορίου· ό,τι αντιγράφεται μετά είναι bit προς bit ίδιο.
«Το σημείο κοπής είναι ακριβώς εκεί που έσυρα τον δείκτη.» Στη λειτουργία keyframe κουμπώνει στο πλησιέστερο keyframe· μόνο η λειτουργία ακριβούς καρέ τηρεί το ακριβές καρέ — και αυτό είναι επιλογή λειτουργίας, όχι σφάλμα.