فریم ریٹ سے مراد ان ساکن تصاویر کی تعداد ہے، جنہیں فریم کہا جاتا ہے، جو ویڈیو ہر سیکنڈ میں دکھاتی ہے۔ اس کی اکائی فی سیکنڈ فریمز ہے، جسے fps لکھا جاتا ہے۔ تکنیکی معیارات اسے فریم فریکوئنسی بھی کہتے ہیں۔
ویڈیو فائل میں فریم ریٹ ایک میٹا ڈیٹا ویلیو ہوتی ہے جو ویڈیو اسٹریم کو بیان کرتی ہے۔ 25 fps پر ہر فریم 1/25 سیکنڈ یا 40 ملی سیکنڈ کے لیے اسکرین پر رہتا ہے۔
کون سی فائلیں اسے رکھتی ہیں
ویڈیو فارمیٹس جیسے MP4، MOV، MKV، WebM، AVI، WMV اور FLV فریم ریٹ رکھ سکتے ہیں۔ ہر فارمیٹ یہ ویلیو اپنے طریقے سے اسٹور کرتا ہے:
- MP4 اور MOV: time‑to‑sample ٹیبل ان فریمز کے سلسلے درج کرتی ہے جن کی مدت ایک جیسی ہو۔ ExifTool اس ٹیبل سے اوسط نکال کر
VideoFrameRateحساب کرتا ہے۔ کچھ MP4 فائلیں اوسط اور زیادہ سے زیادہ ریٹ کوVideoAvgFrameRateاورVideoMaxFrameRateجیسے ٹیگز میں بھی رکھتی ہیں۔ - MKV: فیلڈ
DefaultDurationفی فریم وقت نینو سیکنڈز میں بتاتا ہے۔ فیلڈFrameRateصرف معلومات کے لیے ہوتا ہے۔ - WebM: یہ فارمیٹ Matroska کا subset ہے اور
DefaultDurationبھی استعمال کر سکتا ہے۔ WebM کی گائیڈ لائنزFrameRateکو منسوخ شدہ (deprecated) بتاتی ہیں۔ - AVI: اسٹریم ہیڈر میں دیے گئے rate کو اس کے scale پر تقسیم کیا جائے تو فریم ریٹ ملتا ہے۔
- WMV اور FLV: ان کے میٹا ڈیٹا میں فریم ریٹ کا ٹیگ موجود ہو سکتا ہے۔
آڈیو اسٹریم میں اس طرح کا کوئی فریم ریٹ نہیں ہوتا۔ FFmpeg کے ffprobe میں اس کے لیے 0/0 دکھایا جاتا ہے۔
قدریں کیسی نظر آتی ہیں
رپورٹ میں فریم ریٹ کو اعشاریہ، مثلاً 29.97، یا کسر کی شکل میں، مثلاً 25/1، دکھایا جا سکتا ہے۔ کسر 25/1 کا مطلب ہے 1 سیکنڈ میں 25 فریمز۔ جب ریٹ مکمل عدد نہ ہو تو کسر کی شکل درستگی برقرار رکھتی ہے۔
یہ چند عام ویلیوز ہیں:
24/1: 24 fps، جو موشن پکچر فلم کا عام فریم ریٹ ہے24000/1001: تقریباً 23.976 fps، جسے FFmpegntsc-filmکہتا ہے25/1: 25 fps، جسے FFmpegpalکہتا ہے30000/1001: تقریباً 29.97 fps، جسے FFmpegntscکہتا ہے50اور60: YouTube کے مطابق ویڈیو اپ لوڈز کے عام فریم ریٹس120: بالائی حد ہے، عام ویلیو نہیں۔ یہ الٹرا ہائی ڈیفینیشن ٹیلی ویژن کے ITU معیار میں سب سے زیادہ فریم ریٹ ہے۔
مستقل اور متغیر فریم ریٹ
مستقل (constant) فریم ریٹ میں ہر فریم کا وقت ایک ہی رہتا ہے۔ متغیر (variable) فریم ریٹ میں ویڈیو کے دوران فریمز کے درمیان وقت بدلتا رہتا ہے۔
FFmpeg کا ffprobe دو فیلڈز دکھاتا ہے: avg_frame_rate اوسط ریٹ ہے، اور r_frame_rate بنیادی ریٹ ہے۔ بنیادی ریٹ وہ سب سے کم ریٹ ہے جو تمام ٹائم اسٹیمپس کو درست طور پر ظاہر کر سکے، اور FFmpeg کی دستاویزات اسے اندازہ (guess) کہتی ہیں۔
مثال کے طور پر، اگر فریمز کی مدت یا تو 1/25 سیکنڈ ہو یا 1/50 سیکنڈ، تو r_frame_rate کی ویلیو 50/1 ہو گی۔ اوسط اس سے کم ہو گی، اس لیے دونوں فیلڈز مختلف ہوں گے۔ ٹائم اسٹیمپس کو time base کی اکائیوں میں گنا جاتا ہے۔
قدر کہاں سے آتی ہے
ریکارڈ کی گئی ویڈیو کو اس کا فریم ریٹ ریکارڈنگ کے دوران ملتا ہے۔ انکوڈر بعد میں اسے بدل سکتا ہے، مثال کے طور پر ویڈیو کو چھوٹا کرنے کے لیے فریمز ہٹا کر۔
انٹرلیسڈ ویڈیو میں ایک الگ عدد دکھائی دے سکتا ہے۔ اس ویڈیو کے لیے Apple کا AVFoundation فریم ورک فریم ریٹ کے بجائے فیلڈ ریٹ رپورٹ کرتا ہے۔
یہ کیوں اہم ہے
فریم ریٹ بنیادی طور پر اس بات پر اثر ڈالتا ہے کہ حرکت کتنی روان نظر آتی ہے۔ زیادہ ریٹ سے حرکت زیادہ ہموار لگتی ہے، لیکن جیسے جیسے ریٹ بڑھتا ہے، فائدہ کم ہوتا جاتا ہے۔ تقریباً 12 فریم فی سیکنڈ سے کم پر آپ کو حرکت کے بجائے ساکن تصاویر کی لڑی دکھائی دیتی ہے۔
24 fps سے اوپر عموماً حرکت ہموار لگتی ہے، اور 30 یا 60 fps ایک مناسب ہدف ہیں۔ زیادہ ریٹ کمپریسڈ فائل کو بھی بڑا بنا دیتا ہے، جب تک انکوڈر ریٹ کم نہ کرے۔ اس لیے 60 fps، 30 fps سے زیادہ ہموار لگ سکتا ہے، لیکن فائل کا حجم بڑھ جاتا ہے۔
YouTube آپ سے کہتا ہے کہ ویڈیو کو اسی فریم ریٹ پر اپ لوڈ کریں جس پر آپ نے اسے ریکارڈ کیا تھا۔ مستقل ریٹ کی صورت میں، ریٹ کو دورانیے سے ضرب دینے پر فریمز کی تعداد ملتی ہے۔ لہذا 4 سیکنڈ کے لیے 25 fps سے 100 فریمز بنتے ہیں۔