Wynik wykrywania pokazuje, jak bardzo FFmpeg jest pewny formatu kontenera pliku. FFmpeg to framework multimedialny, który odczytuje i konwertuje pliki audio i wideo, a jego program ffprobe podaje ten wynik.
Wynik to liczba całkowita od 0 do 100, a wyższa liczba oznacza lepsze dopasowanie. Wynik opisuje tylko format kontenera, na przykład MKV lub MP4. Nie mierzy on jakości dźwięku ani obrazu.
Skąd pochodzi wartość
Wynik wykrywania nie jest zapisany w Twoim pliku. FFmpeg oblicza tę wartość za każdym razem, gdy otwiera plik.
FFmpeg ma mały moduł wykrywający dla wielu formatów. Każdy moduł odczytuje początek pliku, szuka oznak własnego formatu i zwraca wynik. Wygrywa format z najwyższym wynikiem.
FFmpeg zaczyna od 2048 bajtów danych. Jeśli żaden format nie uzyska wyniku powyżej 25, FFmpeg podwaja ilość danych i próbuje ponownie.
Domyślny limit to 1 048 576 bajtów, czyli około 1 MB. Przy ostatniej próbie każdy wynik powyżej 0 jest wystarczający.
Jeśli wejście zgłasza typ MIME pasujący do formatu, ten format dostaje 30 dodatkowych punktów, maksymalnie do 100. Jeśli 2 formaty uzyskają taki sam najwyższy wynik, FFmpeg odrzuca oba. Gdy po ostatniej próbie żaden format nie pozostanie, FFmpeg kończy działanie z błędem Invalid data found when processing input.
Jak rozszerzenie pliku wpływa na wynik
Wysoki wynik wykrywania nie dowodzi, że rozszerzenie pliku jest poprawne. Na przykład moduł Matroska zwraca 100 dla znanego typu dokumentu w nagłówku pliku, niezależnie od jego nazwy.
Gdy format ma własny moduł wykrywający, pasujące rozszerzenie zwykle tylko podnosi wynik z 0 do 1. Format bez modułu zależy od rozszerzenia, a dopasowanie daje mu wynik 50. Aby sprawdzić wątpliwe rozszerzenie, porównaj je z nazwą formatu, którą ffprobe podaje obok wyniku.
Jak wygląda ta wartość
Z opcją -show_format ffprobe wypisuje wynik jako jedną linię w sekcji formatu: probe_score=100. Raport XML z ffprobe zawiera tę samą liczbę w atrybucie o nazwie probe_score.
Typowe wartości
Te przykłady pochodzą z kodu źródłowego FFmpeg 9.0. Inne wersje mogą dawać inne liczby, na przykład 51 dla przykładu MP3 w FFmpeg 8.1.
100: plik MP4 lub MOV z sekcją o nazwieftyplubmoov100: plik Matroska lub WebM ze znanym typem dokumentu100: plik FLAC z prawidłowymi informacjami o strumieniu99: plik WAV ze standardowym nagłówkiem RIFF52: plik MP3 z co najmniej 7 ramkami audio na początku51: plik AAC w formacie ADTS z co najmniej 3 ramkami audio na początku50: plik w formacie bez modułu wykrywającego, dopasowany tylko po rozszerzeniu0: plik, którego format został wymuszony opcją-f, więc FFmpeg pominął wykrywanie
Dlaczego ma to znaczenie dla Twojego pliku
Wykryty wynik 25 lub niższy to sygnał ostrzegawczy, a nie dowód błędu. FFmpeg wypisuje wtedy komunikat zawierający słowa misdetection possible, co oznacza, że FFmpeg mógł wybrać niewłaściwy format.
Wynik w okolicach 50 jest normalny dla plików MP3 i AAC, ponieważ ich moduły wykrywające nie zwracają więcej niż 52. Dlatego wynik 51 lub 52 nie oznacza, że Twój plik MP3 ma problem.
Dla wykrytego wyniku 25 lub niższego dokumentacja dla programistów FFmpeg zaleca ponowną próbę z większą ilością danych. Opcja -formatprobesize ustawia limit wykrywania formatu w bajtach. Opcje -probesize i -analyzeduration mają inne zadanie: ograniczają ilość danych, które FFmpeg odczytuje, aby znaleźć szczegóły strumieni.