ফাইল ফরম্যাট

MP4 - MPEG-4 পার্ট 14 ভিডিও

MP4 হলো সেই কন্টেইনার যাতে আজকাল প্রায় সব ভিডিওই আসে, ফোনে রেকর্ড করা ভিডিও থেকে শুরু করে স্ট্রিমিং ডাউনলোড পর্যন্ত। এটি একটি ফাইলে ভিডিও, অডিও, সাবটাইটেল এবং মেটাডাটা একসঙ্গে রাখে।

.mp4

MP4 হলো সেই ভিডিও ফাইল ফরম্যাট, যা আপনি সবচেয়ে বেশি দেখেন। এর আনুষ্ঠানিক নাম MPEG-4 Part 14, এবং এটি সংজ্ঞায়িত করেছে Moving Picture Experts Group, অর্থাৎ একই আন্তর্জাতিক সংস্থা যারা MPEG ভিডিও স্ট্যান্ডার্ডের পেছনে আছে। MPEG একদম শুরু থেকে শুরু করেনি; তারা Apple's QuickTime ফাইল ফরম্যাটকে ভিত্তি হিসেবে নিয়ে সেটাকে ISO Base Media File Format এ রূপান্তর করে, তার উপর MP4 বানিয়েছে। এই কারণেই MP4 এবং MOV ফাইল ভেতর থেকে এতটা মিলের মতো দেখায়। ফোন, ক্যামেরা, এডিটিং প্রোগ্রাম, স্ট্রিমিং সার্ভিস এবং মেসেজিং অ্যাপ সবই MP4-এ স্থির হয়েছে, তাই এটি আপনার প্রায় সব ডিভাইসে চলতে পারে।

একটি MP4 ফাইল কীভাবে গঠিত হয়

MP4 হলো একটি container। কন্টেইনার নিজে কিছু কমপ্রেস করে না; এটি ইতিমধ্যে কমপ্রেস করা স্ট্রিমগুলো ধরে রাখার বাক্স এবং প্লেয়ারকে কীভাবে সেগুলো পড়তে হবে তা জানায়। কমপ্রেশন করে একটি codec, এবং MP4-এর ভেতরের কোডেক সাধারণত ছবির জন্য H.264, H.265 (যাকে HEVC-ও বলা হয়) বা AV1, আর সাউন্ডের জন্য AAC হয়। এগুলো সবই lossy: এগুলো চোখে বা কানে সহজে ধরা না পড়া কিছু ডিটেইল ফেলে দেয়, এবং সেই ডিটেইল আর ফিরে আসে না। কোনো এডিটরের মাধ্যমে একটি MP4 আবার সেভ করলে এটি দ্বিতীয়বার কমপ্রেস হয় এবং সামান্য আরও গুণগত মান হারায়।

ভেতরে, ফাইলটি ব্লকের একটি গাছের মতো কাঠামো, যেগুলোকে বক্স বা অ্যাটম বলা হয়। প্রতিটির চার অক্ষরের একটি নাম থাকে। একদম শুরুতে থাকা ftyp বলে দেয় এটি কোন ধরনের MP4, mdat ধরে রাখে কাঁচা কমপ্রেস করা ভিডিও ও অডিও, আর moov হলো সেই ইনডেক্স যা প্লেব্যাক সময়কে mdat এর ভেতরের অবস্থানের সাথে মিলিয়ে দেয়। অডিও এবং ভিডিওকে ছোট ছোট খণ্ডে পালা করে সাজানো থাকে, যাতে প্লেয়ার একসাথে দুটোই পড়তে পারে। যখন moov ফাইলের সামনে থাকে, তখন ডাউনলোড শেষ হওয়ার আগেই প্লেব্যাক শুরু করা যায়, যেটাকেই অ্যাপগুলো fast start বলে।

একটি MP4 ফাইলে কী মেটাডাটা থাকে

MP4 মেটাডাটা ওই একই বক্সগুলোর ভেতরেই থাকে, তাই একটি MP4-এর রিপোর্টে প্রযুক্তিগত তথ্যের সাথে বর্ণনামূলক ট্যাগও মিশে থাকে।

  • মুভি হেডার mvhd এর ভেতরে থাকে তৈরি হওয়ার তারিখ ও পরিবর্তনের তারিখ, মোট দৈর্ঘ্য এবং সেটি মাপার জন্য ব্যবহৃত time scale।
  • প্রতিটি ট্র্যাকের নিজস্ব হেডার থাকে, যেখানে থাকে মাত্রা (dimensions), একটি রোটেশন ম্যাট্রিক্স যা প্লেয়ারকে জানায় ক্লিপটি পাশ ফিরে ধরে করা হয়েছে কি না, একটি ভাষা কোড এবং একটি হ্যান্ডলার নাম।
  • স্ট্রিম বর্ণনাগুলো কোডেক, ফ্রেম রেট, বিট রেট, অডিও স্যাম্পল রেট এবং চ্যানেলের সংখ্যা নির্দিষ্ট করে।
  • বর্ণনামূলক ট্যাগগুলো সাধারণত iTunes-স্টাইল ট্যাগ লিস্ট নামে পরিচিত একটি user data ব্লকের ভেতরে থাকে। ফিল্ড নামগুলো কপিরাইট চিহ্ন দিয়ে শুরু হয়, যেমন শিরোনাম ফিল্ড, শিল্পী, অ্যালবাম, বছর, ঘরানা, মন্তব্য এবং এনকোডার, সঙ্গে আর্টওয়ার্ক ও বর্ণনা ফিল্ড। কোনো ফাইল মিউজিক বা ভিডিও স্টোর থেকে এলে এই ব্লকটিই ভরে যায়।

এর কিছু অংশ ব্যক্তিগতও হতে পারে। ফোন সাধারণত একটি কোঅর্ডিনেট ফিল্ডে GPS অবস্থান লিখে রাখে, যা latitude, longitude এবং কখনও কখনও altitude হিসেবে সেভ থাকে। Apple ডিভাইসগুলো ক্যামেরা প্রস্তুতকারক, মডেল, অপারেটিং সিস্টেমের ভার্সন এবং যে টাইম জোনে রেকর্ড করা হয়েছে সেই তথ্যসহ তৈরি হওয়ার তারিখ বহনকারী নিজস্ব কিছু key যোগ করে। Android ফোনও প্রায় একইভাবে অবস্থান লিখে রাখে। Adobe-এর এডিটিং ও ডিজাইন সফটওয়্যারও একটি XMP প্যাকেট এমবেড করতে পারে, যা একটি গঠনযুক্ত টেক্সট ব্লক, যেখানে শিরোনাম, লেখক, কপিরাইট এবং এডিটিং হিস্ট্রি পুনরাবৃত্তি করে রাখা হয়। আপনি যদি নিজে ধারণ করা কোনো ক্লিপ প্রকাশ করতে চান, তাহলে ডিভাইস ও লোকেশন ফিল্ডগুলো সরিয়ে ফেলা ভালো।

কখন MP4 সঠিক পছন্দ

ফাইলটি এমন কোথাও চালাতে হবে যেখানে আপনার নিয়ন্ত্রণ নেই, যেমন একটি ওয়েবসাইট, যাকে পাঠাচ্ছেন তার ফোন, একটি টেলিভিশন বা কোনো ক্লায়েন্টের ল্যাপটপ, তখন MP4-ই বেছে নিন। অন্য কোনো ফরম্যাট এতটা সমর্থন পায় না, আর H.264-এর জন্য হার্ডওয়্যার ডিকোডিং প্রায় সব বিক্রি হওয়া স্ক্রিনেই অন্তর্নির্মিত থাকে।

সবচেয়ে সুস্পষ্ট বিকল্প হলো MKV, যা আরও বেশি অডিও ট্র্যাক, আরও বেশি সাবটাইটেল ফরম্যাট, অধ্যায় এবং সংযুক্ত ফাইল গ্রহণ করে, এবং অনেক ভাষার ট্র্যাকসহ কোনো চলচ্চিত্র আর্কাইভ করার জন্য ভালো। MP4 ইচ্ছে করেই সীমিত রাখা হয়েছে এবং এর মাধ্যমে এটি বেশি নির্ভরযোগ্য হয়। WebM হলো পছন্দ যখন আপনি ওয়েবের জন্য royalty-free কোডেক চান, কারণ H.264 এবং HEVC ব্যবহার করতে পেটেন্ট লাইসেন্সিং লাগে। আর যদি শুধু wrapper বদলাতে হয়, তাহলে re-encode না করে remux করুন: বিদ্যমান স্ট্রিমগুলোকে নতুন কন্টেইনারে কপি করলেই হয়, এতে গুণগত মানের কোনো ক্ষতি হয় না।