Duration বা স্থায়িত্ব হল কোনো কিছুর যতক্ষণ ধরে চলে তার দৈর্ঘ্য। কোনো মিডিয়া ফাইলে duration মানে মোট চলার সময়। ভিডিওর duration বলতে বোঝায় শুরু থেকে শেষ পর্যন্ত ভিডিওটি কতক্ষণ চলে, আর অডিওর duration বলতে কোনো গান বা রেকর্ডিংয়ের ক্ষেত্রেও একই বিষয় বোঝায়।
আপনি সাধারণত এই সংখ্যা আপনার মিডিয়া প্লেয়ারে মোট সময় হিসেবে দেখেন। মেটাডাটা-তে একই তথ্য Duration নামের একটি ফিল্ডে থাকে।
কোন ফাইলগুলো এটিকে বহন করে
Duration থাকে এমন ফাইলগুলিতে, যেগুলো সময়ের সাথে সাথে চলে, অর্থাৎ অডিও এবং ভিডিও ফাইল। স্থির ছবি এবং টেক্সট ডকুমেন্টে সাধারণত কোনো duration ফিল্ড থাকে না।
অ্যানিমেটেড ছবি একটি বিশেষ ক্ষেত্র। একটি GIF ফাইল প্রতিটি ফ্রেমের জন্য বিলম্ব (delay) সংরক্ষণ করে, কিন্তু মোট সময় নয়। তারপরও ExifTool অ্যানিমেশনের একবার চালনার জন্য একটি Duration দেখায়।
মানের উৎস কোথায়
কিছু ফরম্যাট সরাসরি দৈর্ঘ্য সংরক্ষণ করে। অন্য ফরম্যাটগুলি এমন মান সংরক্ষণ করে, যেগুলো থেকে সফ্টওয়্যার দৈর্ঘ্য হিসাব করে।
- MP4 এবং MOV: মুভির হেডারে time scale এবং duration সংরক্ষণ করা হয়। Time scale হল প্রতি সেকেন্ডে কতটি সময় ইউনিট আছে, আর duration সেই ইউনিটগুলিকে গণনা করে।
- MKV এবং WebM: segment information-এ ঐচ্ছিক
Durationএলিমেন্ট থাকতে পারে, যা টিক (tick) হিসেবে গণনা হয়। ডিফল্টভাবে ১ টিক মানে ১ মিলিসেকেন্ড। - MP3: ID3 ট্যাগে মিলিসেকেন্ডে দৈর্ঘ্যসহ একটি
TLENফ্রেম থাকতে পারে। ExifTool অন্য মান থেকে দৈর্ঘ্য হিসাব করে, যেমন ফাইলের আকার এবং bit rate। - FLAC: ফাইলটি মোট নমুনা (sample) সংখ্যা এবং sample rate সংরক্ষণ করে। সফ্টওয়্যার এই ২টি মান থেকে দৈর্ঘ্য হিসাব করে, এবং মোট
0মানে এই সংখ্যা অজানা। - WAV: ExifTool গড়ে প্রতি সেকেন্ডে কত বাইট এবং ফাইলের আকার থেকে দৈর্ঘ্য হিসাব করে।
মানগুলি দেখতে কেমন
একই দৈর্ঘ্য বিভিন্ন আকারে দেখা যেতে পারে, ফাইলটি যে প্রোগ্রাম পড়ছে তার ওপর নির্ভর করে:
00:05:15: ঘন্টা, মিনিট এবং সেকেন্ড। এই ফাইলটি ৫ মিনিট ১৫ সেকেন্ড ধরে চলে।15.23 s: সেকেন্ড, এককসহ দেখানো।200.541000: কোনো একক ছাড়া একটি সংখ্যা। FFmpeg প্রজেক্টের ffprobe প্রোগ্রাম duration এইভাবে দেখায়, দশমিকের পরে ৬টি অঙ্কসহ। এই সংখ্যা ২০০.৫৪১ সেকেন্ড বোঝায়, যা প্রায় ৩ মিনিট ২১ সেকেন্ড।N/A: এর ডিফল্ট আউটপুট ফরম্যাটে duration না থাকলে ffprobe এই মানটি দেখায়। JSON এবং XML আউটপুট ফরম্যাটে এর বদলে duration ফিল্ডটি একেবারেই থাকে না।
একক ছাড়া কোনো সংখ্যা সব সময় সেকেন্ড নাও হতে পারে। TLEN ফ্রেম মিলিসেকেন্ড গোনে, আর ffprobe-এর duration_ts মান স্ট্রিমের time base-এর ইউনিট গোনে। কোন ফিল্ড থেকে আপনি সংখ্যাটি পেয়েছেন তা পরীক্ষা করুন।
কেন বিভিন্ন প্রোগ্রামে সময়কাল ভিন্ন দেখাতে পারে
একই ফাইলের জন্য আলাদা প্রোগ্রাম ভিন্ন duration দেখাতে পারে, এবং তাতেও কোনো প্রোগ্রাম ভুল নাও হতে পারে। এর ৪টি কারণ হলো:
- গোল করা: যে প্লেয়ার শুধু পূর্ণ সেকেন্ড দেখায়, সেটি
200.541মানকে উপরে বা নিচে গোল করবে। - আলাদা ট্র্যাক: ছবি এবং শব্দের আলাদা ট্র্যাক থাকে, এবং প্রতিটি ট্র্যাকের নিজস্ব duration থাকে। একটি MOV ফাইলে movie duration সবচেয়ে দীর্ঘ ট্র্যাকের সঙ্গে মেলে।
- শুরুর সময়: প্রতিটি স্ট্রিমের নিজস্ব start time থাকতে পারে। FFmpeg সবচেয়ে আগে শুরু এবং সবচেয়ে পরে শেষের মধ্যকার সময় মাপতে পারে, ফলে দেরিতে শুরু হলে মোট সময় বেশি হতে পারে।
- অনুমান: কোনো ফাইলে bit rate থাকতে পারে কিন্তু duration নাও থাকতে পারে। তখন FFmpeg bit rate এবং ফাইলের আকার থেকে duration অনুমান করে, এবং ফলটি নির্ভুল নাও হতে পারে বলে সতর্ক করে।
এটি কেন গুরুত্বপূর্ণ
Duration আপনাকে ফাইলটি চালু না করেই পরীক্ষা করতে দেয়। আপনি যদি ৫ মিনিট ১৫ সেকেন্ডের একটি ক্লিপ আশা করেন এবং 15.23 s দেখেন, তাহলে ফাইলটি হয়তো আপনার প্রত্যাশিত ফাইলটি নয়।
Duration অন্য মানগুলোর সঙ্গেও যুক্ত। FFmpeg ফাইলের আকার এবং duration থেকে সামগ্রিক bit rate হিসাব করতে পারে।