প্রোব স্কোর দিয়ে বোঝানো হয় একটি ফাইলের কন্টেইনার ফরম্যাট সম্পর্কে FFmpeg কতটা নিশ্চিত। FFmpeg একটি মাল্টিমিডিয়া ফ্রেমওয়ার্ক, যা অডিও ও ভিডিও ফাইল পড়ে এবং রূপান্তর করে, এবং এর প্রোগ্রাম ffprobe এই স্কোর জানায়।
স্কোরটি 0 থেকে 100 এর মধ্যে একটি পূর্ণসংখ্যা, এবং বেশি সংখ্যা মানে বেশি শক্তিশালী মিল। স্কোরটি কেবল কন্টেইনার ফরম্যাটকে বর্ণনা করে, যেমন MKV বা MP4। স্কোরটি শব্দ বা ছবির গুণমান মাপে না।
মানের উৎস কোথায়
প্রোব স্কোর আপনার ফাইলে সংরক্ষিত থাকে না। প্রতিবার ফাইলটি খোলার সময় FFmpeg নতুন করে এই মান বের করে।
FFmpeg-এর অনেক ফরম্যাটের জন্য ছোট ডিটেক্টর আছে। প্রতিটি ডিটেক্টর ফাইলের শুরু অংশ পড়ে, নিজের ফরম্যাটের লক্ষণ খোঁজে এবং একটি স্কোর ফেরত দেয়। যে ফরম্যাটের স্কোর সবচেয়ে বেশি, সেটিই বেছে নেওয়া হয়।
FFmpeg প্রথমে 2048 বাইট ডেটা দিয়ে শুরু করে। যদি কোনো ফরম্যাটের স্কোর 25-এর বেশি না হয়, FFmpeg ডেটার পরিমাণ দ্বিগুণ করে আবার চেষ্টা করে।
ডিফল্ট সীমা 1,048,576 বাইট, অর্থাৎ প্রায় 1 MB। শেষ প্রচেষ্টায়, 0 এর উপরে যেকোনো স্কোরই যথেষ্ট।
যদি ইনপুট এমন একটি MIME টাইপ জানায় যা কোনো ফরম্যাটের সাথে মেলে, সেই ফরম্যাট অতিরিক্ত 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: একটি স্ট্যান্ডার্ড RIFF হেডারসহ WAV ফাইল52: এমন একটি MP3 ফাইল যার শুরুতে অন্তত 7টি অডিও ফ্রেম আছে51: ADTS ফর্মের এমন একটি AAC ফাইল যার শুরুতে অন্তত 3টি অডিও ফ্রেম আছে50: ডিটেক্টরবিহীন এমন একটি ফরম্যাটের ফাইল, যা কেবল এক্সটেনশন মিলিয়ে শনাক্ত হয়েছে0: এমন একটি ফাইল যার ফরম্যাট-fঅপশন দিয়ে জোর করে নির্ধারণ করা হয়েছে, তাই FFmpeg ডিটেকশন এড়িয়ে গেছে
আপনার ফাইলের জন্য এটি কেন গুরুত্বপূর্ণ
25 বা কম হিসেবে শনাক্ত কোনো স্কোর সতর্কতার সংকেত, দোষের প্রমাণ নয়। তখন FFmpeg misdetection possible কথাযুক্ত একটি বার্তা মুদ্রণ করে, যার মানে FFmpeg ভুল ফরম্যাট বেছে নিয়ে থাকতে পারে।
MP3 এবং AAC ফাইলের জন্য প্রায় 50-এর স্কোর স্বাভাবিক, কারণ তাদের ডিটেক্টর 52-এর বেশি ফেরত দেয় না। তাই 51 বা 52 স্কোর মানে এই নয় যে আপনার MP3 ফাইলে কোনো সমস্যা আছে।
25 বা তার কম হিসেবে শনাক্ত স্কোরের ক্ষেত্রে, FFmpeg ডেভেলপার ডকুমেন্টেশন বেশি ডেটা নিয়ে আবার চেষ্টা করতে বলে। -formatprobesize অপশনটি বাইট এককে ফরম্যাট শনাক্তকরণের সীমা ঠিক করে। -probesize এবং -analyzeduration অপশনগুলোর কাজ আলাদা: এগুলো স্ট্রিমের বিস্তারিত খুঁজতে FFmpeg যে পরিমাণ ডেটা পড়ে, সেটির সীমা নির্ধারণ করে।