ڈکشنری

پروب اسکور کا کیا مطلب ہوتا ہے؟

پروب اسکور 0 سے 100 تک کی ایک عدد ہوتی ہے۔ یہ دکھاتی ہے کہ FFmpeg کسی فائل کے کنٹینر فارمیٹ کے بارے میں کتنا پُراعتماد ہے۔

probe-score

پروب اسکور سے مراد یہ ہے کہ FFmpeg کو کسی فائل کے کنٹینر فارمیٹ کے بارے میں کتنی یقین دہانی ہے۔ FFmpeg ایک ملٹی میڈیا فریم ورک ہے جو آڈیو اور ویڈیو فائلیں پڑھتا اور تبدیل کرتا ہے، اور اس کا پروگرام ffprobe یہی اسکور رپورٹ کرتا ہے۔

اسکور 0 سے 100 تک کا ایک مکمل عدد ہوتا ہے، اور زیادہ عدد کا مطلب زیادہ مضبوط میچ ہے۔ اسکور صرف کنٹینر فارمیٹ کو بیان کرتا ہے، جیسے MKV یا MP4۔ اسکور آواز یا تصویر کے معیار کی پیمائش نہیں کرتا۔

قدر کہاں سے آتی ہے

پروب اسکور آپ کی فائل میں محفوظ نہیں ہوتا۔ FFmpeg ہر بار جب فائل کھولتا ہے تو یہ عدد دوبارہ نکالتا ہے۔

FFmpeg کے پاس بہت سے فارمیٹس کے لیے ایک چھوٹا ڈیٹیکٹر ہوتا ہے۔ ہر ڈیٹیکٹر فائل کے آغاز کو پڑھتا ہے، اپنے فارمیٹ کی علامتیں تلاش کرتا ہے، اور ایک اسکور واپس کرتا ہے۔ جس فارمیٹ کا اسکور سب سے زیادہ ہو، وہ منتخب ہو جاتا ہے۔

FFmpeg 2048 بائٹس ڈیٹا سے شروع کرتا ہے۔ اگر کسی فارمیٹ کا اسکور 25 سے اوپر نہ ہو تو FFmpeg ڈیٹا کی مقدار کو دگنا کر کے دوبارہ کوشش کرتا ہے۔

پہلے سے طے شدہ حد 1,048,576 بائٹس ہے، یعنی تقریباً 1 MB۔ آخری کوشش میں 0 سے زیادہ کوئی بھی اسکور کافی ہوتا ہے۔

اگر اِن پٹ ایسا MIME type رپورٹ کرے جو کسی فارمیٹ سے میل کھاتا ہو، تو اس فارمیٹ کو 30 اضافی پوائنٹس ملتے ہیں، زیادہ سے زیادہ 100 تک۔ اگر 2 فارمیٹس سب سے زیادہ اسکور پر برابر ہوں تو FFmpeg دونوں کو مسترد کر دیتا ہے۔ اگر آخری کوشش کے بعد بھی کوئی فارمیٹ باقی نہ بچے تو FFmpeg Invalid data found when processing input ایرر کے ساتھ رک جاتا ہے۔

فائل ایکسٹینشن اسکور پر کیسے اثر انداز ہوتی ہے

ایک اونچا پروب اسکور یہ ثابت نہیں کرتا کہ فائل ایکسٹینشن درست ہے۔ مثال کے طور پر، Matroska ڈیٹیکٹر فائل ہیڈر میں معروف ڈاکومنٹ ٹائپ کے لیے ہمیشہ 100 لوٹاتا ہے، چاہے فائل کا نام کچھ بھی ہو۔

جب کسی فارمیٹ کے پاس ڈیٹیکٹر ہو تو ملتی جلتی ایکسٹینشن عموماً صرف 0 کے اسکور کو بڑھا کر 1 تک لے جاتی ہے۔ جس فارمیٹ کا کوئی ڈیٹیکٹر نہ ہو، وہ ایکسٹینشن پر منحصر ہوتا ہے، اور میچ ہونے پر اُس فارمیٹ کو 50 کا اسکور ملتا ہے۔ مشکوک ایکسٹینشن کو چیک کرنے کے لیے، ایکسٹینشن کا موازنہ اس فارمیٹ نام سے کریں جو ffprobe اسکور کے ساتھ رپورٹ کرتا ہے۔

یہ ویلیو کیسی نظر آتی ہے

-show_format آپشن کے ساتھ ffprobe فارمیٹ سیکشن میں ایک لائن کے طور پر اسکور پرنٹ کرتا ہے: probe_score=100۔ ffprobe کی XML رپورٹ میں یہی عدد probe_score نامی ایٹریبیوٹ میں ہوتا ہے۔

عام اقدار

یہ مثالیں FFmpeg 9.0 کے سورس کوڈ سے لی گئی ہیں۔ دوسری ورژنز مختلف عدد دے سکتی ہیں، مثال کے طور پر FFmpeg 8.1 میں MP3 کی مثال کے لیے 51۔

  • 100: MP4 یا MOV فائل جس میں ftyp یا moov نام کا سیکشن ہو
  • 100: 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 اسٹریم کی تفصیلات معلوم کرنے کے لیے پڑھتا ہے۔

میٹا کیز