Το probe score δείχνει πόσο βέβαιο είναι το FFmpeg για τη μορφή κοντέινερ ενός αρχείου. Το FFmpeg είναι ένα πολυμεσικό πλαίσιο εργασίας (framework) που διαβάζει και μετατρέπει αρχεία ήχου και βίντεο και το πρόγραμμα ffprobe αναφέρει αυτό το σκορ.
Το σκορ είναι ένας ακέραιος αριθμός από 0 έως 100 και ένας μεγαλύτερος αριθμός σημαίνει ισχυρότερη αντιστοίχιση. Το σκορ περιγράφει μόνο τη μορφή κοντέινερ, όπως MKV ή MP4. Το σκορ δεν μετρά την ποιότητα του ήχου ή της εικόνας.
Από πού προέρχεται η τιμή
Το probe score δεν αποθηκεύεται μέσα στο αρχείο σας. Το FFmpeg υπολογίζει τον αριθμό κάθε φορά που ανοίγει το αρχείο.
Το FFmpeg έχει έναν μικρό ανιχνευτή για πολλές μορφές. Κάθε ανιχνευτής διαβάζει την αρχή του αρχείου, αναζητά ενδείξεις της δικής του μορφής και επιστρέφει ένα σκορ. Η μορφή με το υψηλότερο σκορ κερδίζει.
Το FFmpeg ξεκινά με 2048 bytes δεδομένων. Αν καμία μορφή δεν έχει σκορ πάνω από 25, το FFmpeg διπλασιάζει το μέγεθος και δοκιμάζει ξανά.
Το προεπιλεγμένο όριο είναι 1.048.576 bytes, δηλαδή περίπου 1 MB. Στην τελευταία προσπάθεια, οποιοδήποτε σκορ πάνω από 0 είναι αρκετό.
Αν η είσοδος αναφέρει έναν MIME type που ταιριάζει σε μια μορφή, αυτή η μορφή παίρνει 30 επιπλέον πόντους, έως και 100. Αν 2 μορφές ισοβαθμήσουν στο υψηλότερο σκορ, το FFmpeg απορρίπτει και τις δύο. Αν δεν απομένει καμία μορφή μετά την τελευταία προσπάθεια, το FFmpeg σταματά με το σφάλμα Invalid data found when processing input.
Πώς η επέκταση αρχείου επηρεάζει το σκορ
Ένα υψηλό probe score δεν αποδεικνύει ότι η κατάληξη αρχείου είναι σωστή. Για παράδειγμα, ο ανιχνευτής Matroska επιστρέφει 100 για έναν γνωστό τύπο εγγράφου στην κεφαλίδα του αρχείου, ανεξάρτητα από το πώς ονομάζεται το αρχείο.
Όταν μια μορφή έχει ανιχνευτή, μια αντιστοιχισμένη κατάληξη συνήθως απλώς ανεβάζει ένα σκορ από 0 σε 1. Μια μορφή χωρίς ανιχνευτή εξαρτάται από την κατάληξη και μια αντιστοίχιση δίνει σε αυτήν τη μορφή σκορ 50. Για να ελέγξετε μια αμφίβολη κατάληξη, συγκρίνετε την κατάληξη με το όνομα μορφής που αναφέρει το ffprobe δίπλα στο σκορ.
Πώς φαίνεται η τιμή
Με την επιλογή -show_format, το ffprobe εμφανίζει το σκορ ως μία γραμμή στην ενότητα format: probe_score=100. Η αναφορά XML του ffprobe περιέχει τον ίδιο αριθμό σε ένα γνώρισμα με όνομα probe_score.
Τυπικές τιμές
Αυτά τα παραδείγματα προέρχονται από τον πηγαίο κώδικα του FFmpeg 9.0. Άλλες εκδόσεις μπορεί να δώσουν άλλους αριθμούς, όπως 51 για το παράδειγμα MP3 στο FFmpeg 8.1.
100: ένα αρχείο MP4 ή MOV με ενότητα με όνομαftypήmoov100: ένα αρχείο Matroska ή WebM με γνωστό τύπο εγγράφου100: ένα αρχείο FLAC με έγκυρες πληροφορίες ροής (stream)99: ένα αρχείο WAV με τυπική κεφαλίδα RIFF52: ένα αρχείο MP3 με τουλάχιστον 7 πλαίσια ήχου στην αρχή51: ένα αρχείο AAC σε μορφή ADTS με τουλάχιστον 3 πλαίσια ήχου στην αρχή50: ένα αρχείο σε μορφή χωρίς ανιχνευτή, που ταιριάζει μόνο από την κατάληξή του0: ένα αρχείο του οποίου η μορφή επιβλήθηκε με την επιλογή-f, ώστε το FFmpeg να παραλείψει την ανίχνευση
Γιατί έχει σημασία για το αρχείο σας
Ένα ανιχνευμένο σκορ 25 ή χαμηλότερα είναι προειδοποιητικό σημάδι, όχι απόδειξη βλάβης. Τότε το FFmpeg εμφανίζει ένα μήνυμα με τις λέξεις misdetection possible, που σημαίνει ότι ίσως επέλεξε λάθος μορφή.
Ένα σκορ κοντά στο 50 είναι φυσιολογικό για αρχεία MP3 και AAC, επειδή οι ανιχνευτές τους δεν επιστρέφουν πάνω από 52. Άρα ένα σκορ 51 ή 52 δεν σημαίνει ότι το αρχείο MP3 σας έχει πρόβλημα.
Για ένα ανιχνευμένο σκορ 25 ή χαμηλότερα, η τεκμηρίωση προγραμματιστών του FFmpeg συνιστά επανάληψη με περισσότερα δεδομένα. Η επιλογή -formatprobesize ορίζει το όριο για την ανίχνευση μορφής σε bytes. Οι επιλογές -probesize και -analyzeduration έχουν διαφορετικό ρόλο: περιορίζουν τα δεδομένα που διαβάζει το FFmpeg για να βρει λεπτομέρειες των ροών (streams).