دورانیہ اس وقت کی لمبائی ہے جس تک کوئی چیز جاری رہتی ہے۔ میڈیا فائل میں، دورانیہ سے مراد کل چلنے والا وقت ہے۔ ویڈیو کا دورانیہ وہ وقت ہے جتنا عرصہ ویڈیو شروع سے آخر تک چلتی ہے، اور آڈیو کا دورانیہ کسی گانے یا ریکارڈنگ کے لیے بھی یہی مطلب رکھتا ہے۔
آپ عام طور پر یہ عدد اپنے میڈیا پلیئر میں کل وقت کے طور پر دیکھتے ہیں۔ میٹا ڈیٹا میں یہی معلومات Duration نامی فیلڈ میں ظاہر ہوتی ہے۔
کون سی فائلیں اسے رکھتی ہیں
دورانیہ ان فائلوں سے متعلق ہوتا ہے جو وقت کے ساتھ چلتی ہیں، یعنی آڈیو اور ویڈیو فائلیں۔ ساکن تصاویر اور ٹیکسٹ دستاویزات میں عام طور پر دورانیہ کا کوئی فیلڈ نہیں ہوتا۔
اینیمیٹڈ تصاویر ایک خاص صورت ہیں۔ GIF فائل ہر فریم کے لیے تاخیر (delay) محفوظ کرتی ہے، لیکن کل وقت نہیں۔ اس کے باوجود ExifTool اینیمیشن کو ایک بار چلنے کے لیے Duration کی رپورٹ دیتا ہے۔
قدر کہاں سے آتی ہے
کچھ فارمیٹس لمبائی کو براہ راست محفوظ کرتے ہیں۔ دوسرے فارمیٹس ایسی قدریں محفوظ کرتے ہیں جن سے سافٹ ویئر لمبائی کا حساب لگاتا ہے۔
- MP4 اور MOV: مووی ہیڈر میں time scale اور دورانیہ محفوظ ہوتا ہے۔ time scale فی سیکنڈ ٹائم یونٹس کی تعداد ہے، اور دورانیہ انہی یونٹس کو گنتا ہے۔
- MKV اور WebM: segment information میں اختیاری
Durationعنصر ہو سکتا ہے، جو ticks میں گنا جاتا ہے۔ بطور ڈیفالٹ، ایک tick ایک ملی سیکنڈ کے برابر ہوتا ہے۔ - MP3: ID3 ٹیگ میں
TLENفریم ہو سکتا ہے، جس میں لمبائی ملی سیکنڈز میں ہوتی ہے۔ ExifTool دوسرے اقدار، جیسے فائل سائز اور bit rate سے لمبائی کا حساب لگاتا ہے۔ - FLAC: فائل کل نمونوں (samples) کی تعداد اور sample rate محفوظ کرتی ہے۔ سافٹ ویئر انہی 2 قدروں سے لمبائی کا حساب لگاتا ہے، اور کل
0ہونے کا مطلب ہے کہ یہ تعداد نامعلوم ہے۔ - WAV: ExifTool لمبائی کا حساب اوسط bytes per second اور فائل سائز سے لگاتا ہے۔
قدریں کیسی نظر آتی ہیں
ایک ہی لمبائی مختلف شکلوں میں نظر آ سکتی ہے، اس پروگرام پر منحصر ہے جو فائل کو پڑھ رہا ہو:
00:05:15: گھنٹے، منٹ، اور سیکنڈ۔ یہ فائل 5 منٹ اور 15 سیکنڈ تک چلتی ہے۔15.23 s: سیکنڈ، جن کے ساتھ اکائی (unit) دکھائی جاتی ہے۔200.541000: اکائی کے بغیر ایک عدد۔ FFmpeg پروجیکٹ کے ffprobe پروگرام میں دورانیہ اسی طرح پرنٹ ہوتا ہے، جس میں اعشاریہ کے بعد 6 ہندسے ہوتے ہیں۔ یہ عدد 200.541 سیکنڈ کے برابر ہے، یعنی تقریباً 3 منٹ اور 21 سیکنڈ۔N/A: اپنے ڈیفالٹ آؤٹ پٹ فارمیٹ میں ffprobe یہ ویلیو تب پرنٹ کرتا ہے جب دورانیہ غائب ہو۔ JSON اور XML آؤٹ پٹ فارمیٹس اس صورت میں دورانیہ کو شامل ہی نہیں کرتے۔
اکائی کے بغیر عدد ہمیشہ سیکنڈز میں نہیں ہوتا۔ TLEN فریم ملی سیکنڈز کو گنتا ہے، اور ffprobe میں duration_ts کی ویلیو stream کے time base کی یونٹس گنتی ہے۔ دیکھیں کہ یہ عدد آپ کو کس فیلڈ سے ملا ہے۔
پروگرام مختلف دورانیے کیوں دکھا سکتے ہیں
مختلف پروگرام ایک ہی فائل کے لیے مختلف دورانیے دکھا سکتے ہیں، اور ضروری نہیں کہ کوئی بھی پروگرام غلط ہو۔ اس کی 4 وجوہات یہ ہو سکتی ہیں:
- گول کرنا: ایسا پلیئر جو صرف پورے سیکنڈز دکھاتا ہے،
200.541کو اوپر یا نیچے گول کر دیتا ہے۔ - الگ ٹریکس: تصویر اور آواز کے الگ الگ ٹریک ہوتے ہیں، اور ہر ٹریک کا اپنا دورانیہ ہوتا ہے۔ MOV فائل میں مووی کا دورانیہ سب سے لمبے ٹریک کے برابر ہوتا ہے۔
- شروع ہونے کے اوقات: ہر stream کا اپنا start time ہو سکتا ہے۔ FFmpeg سب سے پہلے شروع ہونے سے سب سے آخر میں ختم ہونے تک ناپ سکتا ہے، لہذا دیر سے شروع ہونا کل دورانیہ کو بڑھا سکتا ہے۔
- اندازے: فائل میں bit rate تو ہو سکتا ہے لیکن دورانیہ نہ ہو۔ اس صورت میں FFmpeg bit rate اور فائل سائز سے دورانیے کا اندازہ لگاتا ہے، اور خبردار کرتا ہے کہ نتیجہ غلط بھی ہو سکتا ہے۔
یہ کیوں اہم ہے
دورانیہ آپ کو فائل کو چلائے بغیر بھی چیک کرنے دیتا ہے۔ اگر آپ 5 منٹ اور 15 سیکنڈ کا کلپ توقع کر رہے ہوں اور 15.23 s دیکھیں، تو ممکن ہے فائل وہ نہ ہو جو آپ نے چاہی تھی۔
دورانیہ دوسری قدروں سے بھی جڑا ہوتا ہے۔ FFmpeg فائل سائز اور دورانیہ سے مجموعی bit rate کا حساب لگا سکتا ہے۔