Περιέκτης Flash Video (.flv)
Adobe ΤυπικόΤο Flash Video (FLV) είναι μια μορφή κοντέινερ που αναπτύχθηκε από τη Macromedia και την Adobe για την παράδοση συγχρονισμένου βίντεο και ήχου μέσω του διαδικτύου με το πρόσθετο του προγράμματος περιήγησης Adobe Flash Player.
Επιθεώρηση & Μεταδεδομένα
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία FLV ελέγχοντας την αρχική δυαδική ακολουθία byte:
Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία FLV ελέγχοντας την αρχική δυαδική ακολουθία byte:
ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):
46 4C 56 01ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: FLV
Τυποποίηση: Adobe Systems Flash Video File Format Specification
Τεχνικές Προδιαγραφές
| Αρχιτεκτονική Περιέκτη | Περιέκτης ροής βασισμένος σε ετικέτες, με εναλλασσόμενες ετικέτες δεδομένων ήχου, βίντεο και σεναρίων |
| Συμπίεση | Βίντεο Sorenson Spark, VP6 ή H.264 με ήχο MP3 ή AAC |
| Σειρά byte (endianness) | Διάταξη bit και byte μεγάλης διάταξης (Big-Endian) |
| Χρωματικοί Χώροι | YUV 4:2:0 |
| Κανάλια & Δομή | Μονοφωνικός και στερεοφωνικός ήχος με ροή βίντεο |
| Μέγιστες Διαστάσεις | Commonly up to 1080p |
| Διαφάνεια | Υποστηρίζεται διαφάνεια καναλιού άλφα σε ροές βίντεο VP6 |
| Ροή δεδομένων και προοδευτική φόρτωση | Εγγενής υποστήριξη ζωντανής μετάδοσης RTMP (Real-Time Messaging Protocol) |
Τεχνικός Πίνακας Σύγκρισης: FLV έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | FLV (Τρέχον) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Υποστήριξη από φυλλομετρητές σήμερα | 0% (Εντελώς αφαιρεμένο από όλους τους σύγχρονους φυλλομετρητές) | Υποστηρίζεται από πολλά σύγχρονα προγράμματα περιήγησης· η διαθεσιμότητα διαφέρει ανά έκδοση και πλατφόρμα | Υποστηρίζεται από πολλά σύγχρονα προγράμματα περιήγησης· η διαθεσιμότητα διαφέρει ανά έκδοση και πλατφόρμα | Απαιτεί πρόγραμμα αναπαραγωγής πολυμέσων υπολογιστή |
| Τυποποίηση | Ιδιοκτησιακή προδιαγραφή Adobe | Διεθνές ανοιχτό πρότυπο ISO/IEC | Ανοιχτό πρότυπο W3C / WebM | Πρότυπο ανοιχτού κώδικα Matroska |
| Αναπαραγωγή σε Κινητές Συσκευές | Δεν υποστηρίζεται εγγενώς σε iOS και σύγχρονο Android | Εγγενής υποστήριξη υλικού | Εγγενής υποστήριξη υλικού | Υποστηρίζεται μέσω VLC/εφαρμογών τρίτων |
| Διαφάνεια Άλφα | Υποστηρίζεται μέσω του κωδικοποιητή On2 VP6 | Περιορισμένη (απαιτεί καμβά ή WebCodecs) | Εγγενής υποστήριξη καναλιού άλφα (VP9) | Υποστηρίζεται σε ροές VP9/ProRes |
Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων
Το ληφθέν βίντεο FLV δείχνει τη συνολική διάρκεια ως «άγνωστη» και δεν μπορεί να γίνει σάρωση (scrubbing).
Βασική Αιτία: Λείπει η ετικέτα σεναρίου 'onMetaData' που περιέχει χρονική σήμανση βασικού πλαισίου και πίνακες μεγέθους αρχείου.
Ανάκτηση: Εισαγωγή των πινάκων βασικών πλαισίων που λείπουν χρησιμοποιώντας το 'yamdi' (Yet Another MetaData Injector) ή μετατροπή σε MP4 με το File2File.app.
Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή
Το πρόσθετο Flash Player ήταν ιστορικά ένα από τα στοιχεία λογισμικού που έχουν αποτελέσει συχνότερα στόχο εκμετάλλευσης στην ιστορία της πληροφορικής, λόγω σφαλμάτων αλλοίωσης μνήμης στην ανάλυση ActionScript και FLV.
Γνωστά διανύσματα επίθεσης
- Χρήση μετά την απελευθέρωση (use-after-free) και υπερχείλιση σωρού στη μηχανή ανάλυσης ActionScript 3 FLV (π.χ. CVE-2015-5122).
- Κακοσχηματισμένα πακέτα μεταδεδομένων AMF0/AMF3 μπορούν να προκαλέσουν αλλοίωση μνήμης σε ευάλωτους αναλυτές.
- Υπερχειλίσεις μνήμης (buffer overflows) σε παλαιότερες ρουτίνες αποσυμπίεσης Sorenson Spark.
Βέλτιστες αμυντικές πρακτικές: Μην εκτελείτε ποτέ πρόσθετα Flash Player. Μετακωδικοποιήστε τα αρχειοθετημένα αρχεία FLV απευθείας σε MP4 χρησιμοποιώντας απομονωμένο FFmpeg.
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Ιστορικά πρωτοπόρο μέσο για την ευρεία διάδοση διαδικτυακού βίντεο: επέτρεψε την αναπαραγωγή βίντεο στον ιστό χωρίς αυτόνομα προγράμματα αναπαραγωγής επιτραπέζιων υπολογιστών.
- Υποστήριζε διαφάνεια άλφα σε ροές βίντεο χρησιμοποιώντας τον κωδικοποιητή On2 VP6.
- Μικρή επιβάρυνση από τις κεφαλίδες των πακέτων βελτιστοποιημένο για ζωντανή εκπομπή βίντεο RTMP χαμηλής καθυστέρησης.
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Εντελώς παρωχημένο και δεν υποστηρίζεται σε κανένα σύγχρονο πρόγραμμα περιήγησης ιστού μετά την κατάργηση του Flash Player.
- Απαιτεί επανακωδικοποίηση ή αλλαγή κοντέινερ σε MP4 για αναπαραγωγή σε iOS, Android και smart TV.
- Στερείται σύγχρονων χαρακτηριστικών κοντέινερ, όπως ήχου πολλαπλών κομματιών και προσαρμοστικής ροής ρυθμού bit.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Το πρώτο βίντεο που ανέβηκε ποτέ στο YouTube («Me at the zoo» τον Απρίλιο του 2005) κωδικοποιήθηκε και παραδόθηκε ως αρχείο FLV.
- Η ακολουθία byte μαγείας του Flash Video «46 4C 56 01» γράφει το ASCII «FLV» ακολουθούμενο από την έκδοση κοντέινερ 1.
- Ο Steve Jobs δημοσίευσε την περίφημη ανοιχτή επιστολή του «Thoughts on Flash» το 2010, η οποία επιτάχυνε τη μετακίνηση της βιομηχανίας από το FLV στο HTML5 MP4.
Συχνές Τεχνικές Ερωτήσεις
Γιατί δεν μπορώ πλέον να παίξω αρχεία FLV στον υπολογιστή μου;
Η Adobe και όλα τα μεγάλα προγράμματα περιήγησης ιστού διέκοψαν επίσημα το Flash Player τον Δεκέμβριο του 2020 λόγω ευπαθειών ασφαλείας. Για να παίξετε αρχεία FLV σήμερα, χρησιμοποιήστε το πρόγραμμα αναπαραγωγής πολυμέσων VLC ή μετατρέψτε τα σε MP4.
Μπορώ να μετατρέψω FLV σε MP4 χωρίς απώλεια ποιότητας;
Συμβατές ροές H.264 και AAC μπορούν να μεταφερθούν από FLV σε MP4 χωρίς επανακωδικοποίηση· ο χρόνος εξαρτάται από το αρχείο και τη συσκευή.
Ποιους κωδικοποιητές χρησιμοποιούσαν αρχικά τα βίντεο FLV;
Τα πρώιμα αρχεία FLV χρησιμοποιούσαν Sorenson Spark (μια παραλλαγή του H.263) και αργότερα On2 VP6, πριν η Adobe προσθέσει υποστήριξη για το τυπικό H.264 το 2007.