تعني درجة الاستقصاء مدى ثقة FFmpeg في تنسيق حاوية الملف. FFmpeg إطار عمل متعدد الوسائط يقرأ ملفات الصوت والفيديو ويحّولها، ويعرض برنامج ffprobe التابع له هذه الدرجة.
الدرجة عدد صحيح من 0 إلى 100، وكلما ارتفع الرقم كان التطابق أقوى. تصف الدرجة تنسيق الحاوية فقط، مثل MKV أو MP4. هذه الدرجة لا تقيس جودة الصوت أو الصورة.
من أين تأتي القيمة
لا تُحفظ درجة الاستقصاء داخل ملفك. يحسب FFmpeg الرقم في كل مرة يفتح فيها الملف.
يحتوي FFmpeg على كاشف صغير للعديد من التنسيقات. يقرأ كل كاشف بداية الملف، ويبحث عن مؤشرات على تنسيقه الخاص، ويعيد درجة. التنسيق ذو أعلى درجة هو الذي يُختار.
يبدأ FFmpeg بـ 2048 بايت من البيانات. إذا لم يحصل أي تنسيق على درجة أعلى من 25، يضاعف FFmpeg الكمية ويحاول مرة أخرى.
الحد الافتراضي هو 1,048,576 بايت، أي حوالي 1 ميجابايت. في المحاولة الأخيرة، تكفي أي درجة أعلى من 0.
إذا أعلن الإدخال عن نوع MIME يطابق تنسيقاً ما، يحصل هذا التنسيق على 30 نقطة إضافية، حتى حد أقصى 100. إذا تساوى تنسيقان في أعلى درجة، يرفض FFmpeg كليهما. وإذا لم يبقَ أي تنسيق بعد المحاولة الأخيرة، يتوقف FFmpeg مع الخطأ Invalid data found when processing input.
كيف يؤثر امتداد الملف في النتيجة
لا تثبت درجة استقصاء عالية أن امتداد الملف صحيح. على سبيل المثال، يعيد كاشف Matroska درجة 100 لنوع مستند معروف في ترويسة الملف، بغض النظر عن اسم الملف.
عندما يكون لتنسيق ما كاشف، يرفع الامتداد المطابق عادةً الدرجة من 0 إلى 1 فقط. أما التنسيق الذي لا يملك كاشفاً فيعتمد على الامتداد، ويمنحه التطابق درجة 50. للتحقق من امتداد مشكوك فيه، قارن الامتداد مع اسم التنسيق الذي يعرضه ffprobe بجانب الدرجة.
كيف تبدو هذه القيمة
مع خيار -show_format يعرض ffprobe الدرجة كسطر واحد في قسم التنسيق: probe_score=100. ويحمل تقرير XML الخاص بـ ffprobe الرقم نفسه في خاصية باسم probe_score.
القيم النموذجية
تأتي هذه الأمثلة من الشيفرة المصدرية للإصدار FFmpeg 9.0. يمكن أن تعطي الإصدارات الأخرى أرقاماً مختلفة، مثل 51 لمثال MP3 في FFmpeg 8.1.
100: ملف MP4 أو MOV يحتوي على قسم باسمftypأوmoov100: ملف Matroska أو WebM بنوع مستند معروف100: ملف FLAC بمعلومات تدفق صالحة99: ملف WAV بترويسة RIFF قياسية52: ملف MP3 يحتوي على 7 إطارات صوتية على الأقل في البداية51: ملف AAC بصيغة ADTS يحتوي على 3 إطارات صوتية على الأقل في البداية50: ملف بتنسيق لا يملك كاشفاً، طابَقَه النظام بالامتداد فقط0: ملف فُرض تنسيقه باستخدام الخيار-f، لذا تخطى FFmpeg عملية الاكتشاف
لماذا هذا مهم لملفك
الدرجة المكتشفة 25 أو أقل هي إشارة تحذير، لا دليل قاطع على وجود خلل. بعدها يطبع FFmpeg رسالة تحتوي على الكلمات misdetection possible، ما يعني أن FFmpeg قد يكون اختار تنسيقاً خاطئاً.
الدرجة القريبة من 50 طبيعية لملفات MP3 و AAC، لأن كواشفها لا تعيد أكثر من 52. لذا فإن درجة 51 أو 52 لا تعني أن ملف MP3 الخاص بك فيه مشكلة.
للدرجة المكتشفة 25 أو أقل، توصي وثائق مطوري FFmpeg بإعادة المحاولة مع مزيد من البيانات. يحدد خيار -formatprobesize الحد الأقصى لاكتشاف التنسيق بالبايت. ويؤدي خيارا -probesize و -analyzeduration مهمة مختلفة: إذ يحدان من كمية البيانات التي يقرؤها FFmpeg للعثور على تفاصيل التدفقات.