Probe Score bedeutet, wie sicher sich FFmpeg beim Containerformat einer Datei ist. FFmpeg ist ein Multimedia-Framework, das Audio- und Videodateien liest und konvertiert, und sein Programm ffprobe gibt den Score aus.
Der Score ist eine ganze Zahl von 0 bis 100, und eine höhere Zahl bedeutet eine stärkere Übereinstimmung. Der Score beschreibt nur das Containerformat, zum Beispiel MKV oder MP4. Er misst nicht die Qualität von Ton oder Bild.
Woher der Wert kommt
Der Probe Score wird nicht in deiner Datei gespeichert. FFmpeg berechnet den Wert jedes Mal neu, wenn es die Datei öffnet.
FFmpeg hat für viele Formate einen kleinen Detektor. Jeder Detektor liest den Anfang der Datei, sucht nach Hinweisen auf sein eigenes Format und gibt einen Score zurück. Das Format mit dem höchsten Score gewinnt.
FFmpeg beginnt mit 2048 Bytes Daten. Wenn kein Format mehr als 25 Punkte erreicht, verdoppelt FFmpeg die Datenmenge und versucht es erneut.
Die Standardgrenze ist 1.048.576 Bytes, also etwa 1 MB. Beim letzten Versuch reicht jeder Score über 0 aus.
Wenn die Eingabe einen MIME-Typ meldet, der zu einem Format passt, bekommt dieses Format 30 Zusatzpunkte, höchstens jedoch 100. Wenn 2 Formate den gleichen Höchstwert erreichen, lehnt FFmpeg beide ab. Bleibt nach dem letzten Versuch kein Format übrig, bricht FFmpeg mit dem Fehler Invalid data found when processing input ab.
Wie die Dateierweiterung den Score beeinflusst
Ein hoher Probe Score beweist nicht, dass die Dateiendung korrekt ist. Der Matroska-Detektor gibt zum Beispiel 100 zurück, wenn im Datei-Header ein bekannter Dokumenttyp steht, egal wie die Datei heißt.
Wenn ein Format einen Detektor hat, hebt eine passende Endung einen Score von 0 normalerweise nur auf 1 an. Ein Format ohne Detektor ist auf die Endung angewiesen, und eine Übereinstimmung gibt diesem Format einen Score von 50. Um eine zweifelhafte Endung zu prüfen, vergleiche die Endung mit dem Formatnamen, den ffprobe neben dem Score ausgibt.
Wie der Wert aussieht
Mit der Option -show_format gibt ffprobe den Score als einzelne Zeile im Formatabschnitt aus: probe_score=100. Im XML-Bericht von ffprobe steht derselbe Wert in einem Attribut mit dem Namen probe_score.
Typische Werte
Diese Beispiele stammen aus dem FFmpeg-9.0-Quellcode. Andere Versionen können andere Werte liefern, zum Beispiel 51 für das MP3-Beispiel in FFmpeg 8.1.
100: eine MP4- oder MOV-Datei mit einem Abschnitt namensftypodermoov100: eine Matroska- oder WebM-Datei mit einem bekannten Dokumenttyp100: eine FLAC-Datei mit gültigen Stream-Informationen99: eine WAV-Datei mit einem Standard-RIFF-Header52: eine MP3-Datei mit mindestens 7 Audioframes am Anfang51: eine AAC-Datei in ADTS-Form mit mindestens 3 Audioframes am Anfang50: eine Datei in einem Format ohne Detektor, das nur über die Endung erkannt wird0: eine Datei, deren Format mit der Option-ferzwungen wurde, sodass FFmpeg die Erkennung übersprungen hat
Warum das für deine Datei wichtig ist
Ein erkannter Score von 25 oder weniger ist ein Warnsignal, kein Beweis für einen Fehler. FFmpeg gibt dann eine Meldung mit den Worten misdetection possible aus. Das bedeutet, FFmpeg könnte das falsche Format gewählt haben.
Ein Score in der Nähe von 50 ist für MP3- und AAC-Dateien normal, weil ihre Detektoren nicht mehr als 52 zurückgeben. Ein Score von 51 oder 52 bedeutet daher nicht, dass deine MP3-Datei ein Problem hat.
Für einen erkannten Score von 25 oder weniger empfiehlt die FFmpeg-Entwicklerdokumentation einen weiteren Versuch mit mehr Daten. Die Option -formatprobesize legt die Grenze für die Formaterkennung in Bytes fest. Die Optionen -probesize und -analyzeduration haben eine andere Aufgabe: Sie begrenzen die Datenmenge, die FFmpeg zum Finden von Stream-Details liest.