একটি MKV ফাইল কি?
MKV (Matroska Video) is a multimedia container similar to MOV and AVI format but it supports more than one audio and subtitle track in the same file. An MKV file is the Matroska multimedia container format used for video. MKV is based on Extensible Binary Meta Language and it supports several video and audio compression formats. The major difference between MKV and other video formats is that MKV is a container and not a codec. MKV files are saved with the .mkv file extension. MKV can incorporate audio, video, and subtitles in a single file even if those elements use different types of encoding. For example, you could have an MKV file that contains H.264 video and MP3 or AAC for audio. MKV also supports descriptions, ratings, cover art, and even chapter points. There are several key features that MKV is future-proof. These features include:
- দ্রুত অনুসন্ধানের জন্য সমর্থন।
- বিভিন্ন অডিও এবং ভিডিও স্ট্রিম নির্বাচন করার ক্ষমতা।
- সাবটাইটেলগুলির জন্য সমর্থন (হার্ড কোডেড এবং সফট কোডেড)।
- মেটাডেটা, অধ্যায় এবং মেনুগুলির জন্য সমর্থন।
- অনলাইন স্ট্রিম করার ক্ষমতা।
- ভ্রান্ত ফাইলগুলি পুনরুদ্ধার করার ক্ষমতা যা দূষিত ফাইলগুলি চালানোর ক্ষমতা প্রদান করে।
সংক্ষিপ্ত ইতিহাস
MKV ফাইলটি 2002 সালে রাশিয়ায় উদ্ভূত হয়েছিল। লিড ডেভেলপার ছিলেন ল্যাসে কার্কাইনেন যিনি ম্যাট্রোস্কার প্রতিষ্ঠাতা স্টিভ লোমে এবং প্রোগ্রামারদের একটি দলের সাথে কাজ করেছিলেন। MKV একটি ওপেন স্ট্যান্ডার্ড প্রজেক্ট হিসেবে তৈরি করা হয়েছিল, যার মানে হল এটি ওপেন সোর্স এবং ব্যবহার করা যায় বিনামূল্যে। সময়ের সাথে সাথে, ফর্ম্যাটটি উন্নত হয়েছে এবং 2010 সালে WebM মাল্টিমিডিয়া ফর্ম্যাটের ভিত্তি হয়ে উঠেছে।
ম্যাট্রোস্কা ডিজাইন
Matroska EBML স্পেসিফিকেশনে নিম্নলিখিত সীমাবদ্ধতা যোগ করে।
- EBML হেডার এর docType অবশ্যই ‘matroska’ হতে হবে।
- EBML হেডার এর EBMLMaxIDLength অবশ্যই 4 হতে হবে।
- EBML হেডার এর EBMLMaxSizeLength অবশ্যই 1 এবং 8 এর মধ্যে হতে হবে (অন্তর্ভুক্ত)।
সমস্ত শীর্ষ-স্তরের উপাদানগুলি 4টি অক্টেটে কোড করা হয়েছে।
- ভাষা কোড: Matroska (সংস্করণ 1 থেকে 3) ব্যবহৃত ভাষা কোড যা হয় 3 অক্ষরের গ্রন্থপঞ্জী ISO-639-2 ফর্ম (যেমন ফরাসি জন্য fre) হতে পারে বা অতিরিক্ত দেশের কোড ব্যবহার করা যেতে পারে যেমন fre-ca কানাডিয়ান ফরাসিদের জন্য। ম্যাট্রোস্কা সংস্করণ 4 থেকে শুরু করে, হয় ISO 639-2 বা BCP 47 ভাষা কোডের জন্য ব্যবহার করা যেতে পারে, যদিও BCP 47 সুপারিশ করা হয়।
- ভৌত প্রকার: অডিও এবং ভিডিও উভয় ফাইলের জন্যই এগুলোর ভিন্ন অর্থ রয়েছে। উদাহরণস্বরূপ, ChapterPhysicalEquiv = 60 মানে (CD / 12 / 10 / 7 / TAPE / MINIDISC / DAT) অডিওর জন্য এবং (DVD / VHS / LASERDISC) ভিডিওর জন্য।
- ব্লক স্ট্রাকচার - ব্লক হেডার: ব্লক হেডারে ট্র্যাক নম্বর, টাইমস্ট্যাম্প, লেসিংয়ের ধরন ইত্যাদি সম্পর্কিত তথ্য রয়েছে।
- লেসিং: এটি ডেটা সংরক্ষণ করার সময় স্থান বাঁচানোর একটি পদ্ধতি যা সাধারণত ডেটার ছোট ব্লকের (ফ্রেম) জন্য ব্যবহৃত হয়। লেইসিং 3 ধরনের আছে:
- “Xiph: 255 এর মাল্টিপল সহ ফ্রেম সাইজের শেষে 0 দিয়ে কোড করা হয়েছে। উদাহরণস্বরূপ, 765-এর কোড হল 255;255;255;0।”
- “EBML: ফ্রেমের আকার আগের আকার এবং এই আকারের মধ্যে পার্থক্য হিসাবে কোড করা হয়। লেসের প্রথম আকারটি স্বাক্ষরবিহীন কিন্তু অন্যরা প্রতিটি মানের উপর একটি চিহ্ন পেতে একটি পরিসীমা পরিবর্তন ব্যবহার করে।”
- “fixed-size: আকার একই থাকে।”
- সিম্পলব্লক স্ট্রাকচার: এটি ব্লক স্ট্রাকচার দ্বারা অনুপ্রাণিত এবং মূল পার্থক্য হল কীফ্রেম এবং ডিসকার্ডেবল পতাকা যুক্ত করা। তা ছাড়া, সবকিছু একই।
ম্যাট্রোস্কা কাঠামো
একটি Matroska ডকুমেন্ট Matroska ডকুমেন্ট টাইপ ব্যবহার করে কমপক্ষে একটি EBML ডকুমেন্ট দিয়ে তৈরি হতে হবে। প্রতিটি EBML ডকুমেন্ট অবশ্যই একটি EBML শিরোনাম দিয়ে শুরু করতে হবে যার পরে EBML রুট এলিমেন্ট যেটিকে সেগমেন্ট হিসেবে সংজ্ঞায়িত করা হয়েছে। ম্যাট্রোস্কা সেগমেন্ট-এর মধ্যে ঘটতে পারে এমন কয়েকটি শীর্ষ-স্তরের উপাদানকে সংজ্ঞায়িত করে।
EBML একটি EBML নথি রচনা করতে উপাদানগুলির একটি সিস্টেম ব্যবহার করে, ম্যাট্রোস্কা ফাইলের শীর্ষ-স্তরের উপাদানগুলির তালিকা নিম্নরূপ:
- ইবিএমএল ডকুমেন্ট: পুরো ফাইলের জন্য মোড়ক।
- EBML হেডার: এতে ডকটাইপের মতো ফাইলের জন্য হেডারের তথ্য রয়েছে।
- সেগমেন্ট: শীর্ষ উপাদান যা অন্যান্য সমস্ত শীর্ষ-স্তরের উপাদান ধারণ করে।
- SeekHead: এতে অন্যান্য টপ-লেভেল এলিমেন্টের সেগমেন্টের অবস্থান রয়েছে।
- তথ্য: এতে সেগমেন্ট সম্পর্কে সাধারণ তথ্য রয়েছে।
- ট্র্যাক: বর্ণিত অনেক ট্র্যাক সহ তথ্যের একটি শীর্ষ-স্তরের উপাদান।
- Chapters: It is used to define basic menus and partition data.
- ক্লাস্টার: ব্লক স্ট্রাকচার ধারণকারী টপ-লেভেল এলিমেন্ট।
- Cues: একটি শীর্ষ-স্তরের উপাদান যাতে সেগমেন্টের স্থানীয় সমস্ত এন্ট্রি রয়েছে যা অ্যাক্সেসের জন্য গতি বাড়ায়।
- সংযুক্তি: এতে সংযুক্ত ফাইল রয়েছে।
- ট্যাগ: এই উপাদানটিতে মেটাডেটা রয়েছে যা ট্র্যাক, সংস্করণ, অধ্যায়, সংযুক্তি বা সম্পূর্ণরূপে সেগমেন্ট বর্ণনা করে।
নিম্নোক্ত সারণীটি ম্যাট্রোস্কা নথির কাঠামো দেখায় যার অধিকাংশ উপাদান একটি শ্রেণিবিন্যাসে প্রদর্শিত হয়:
EBML হেডার | ||||||
সেগমেন্ট | সন্ধান করুন | চাওয়া | সন্ধান করুন | |||
অবস্থান সন্ধান করুন | ||||||
তথ্য | সেগমেন্টইউআইডি | |||||
সেগমেন্ট ফাইলের নাম | ||||||
PrevUID | ||||||
পূর্ববর্তী ফাইলের নাম | ||||||
NextUID | ||||||
পরবর্তী ফাইলের নাম | ||||||
সেগমেন্ট ফ্যামিলি | ||||||
অধ্যায় অনুবাদ | ||||||
টাইমস্ট্যাম্পস্কেল | ||||||
সময়কাল | ||||||
DateUTC | ||||||
শিরোনাম | ||||||
MuxingApp | ||||||
WritingApp | ||||||
ট্র্যাক | TrackEntry | ট্র্যাক নম্বর | ||||
TrackUID | ||||||
ট্র্যাক টাইপ | ||||||
নাম | ||||||
ভাষা | ||||||
কোডেকআইডি | ||||||
কোডেক প্রাইভেট | ||||||
কোডেকনাম | ||||||
ভিডিও | ফ্ল্যাগ ইন্টারলেসড | |||||
ফিল্ডঅর্ডার | ||||||
স্টেরিওমোড | ||||||
আলফামোড | ||||||
পিক্সেল প্রস্থ | ||||||
পিক্সেল উচ্চতা | ||||||
প্রদর্শন প্রস্থ | ||||||
প্রদর্শন উচ্চতা | ||||||
AspectRatioType | ||||||
রঙ | ||||||
অডিও | স্যাম্পলিং ফ্রিকোয়েন্সি | |||||
চ্যানেল | ||||||
বিটডেপথ | ||||||
অধ্যায় | EditionEntry | EditionUID | ||||
সংস্করণ পতাকা লুকানো | ||||||
EditionFlagDefault | ||||||
EditionFlagOrdered | ||||||
অধ্যায়আটম | ChapterUID | |||||
ChapterStringUID | ||||||
চ্যাপ্টারটাইমস্টার্ট | ||||||
চ্যাপ্টারটাইমএন্ড | ||||||
অধ্যায় ফ্ল্যাগ লুকানো | ||||||
চ্যাপ্টার ডিসপ্লে | চ্যাপস্ট্রিং | |||||
চ্যাপল্যাঙ্গুয়েজ | ||||||
ক্লাস্টার | টাইমস্ট্যাম্প | |||||
সাইলেন্টট্র্যাকস | ||||||
অবস্থান | ||||||
পূর্বের আকার | ||||||
সিম্পলব্লক | ||||||
ব্লকগ্রুপ | ||||||
এনক্রিপ্টেড ব্লক | ||||||
ইঙ্গিত | কিউপয়েন্ট | কিউটাইম | ||||
কিউট্র্যাক পজিশন | ||||||
সংযুক্তি | সংযুক্ত ফাইল | ফাইলের বিবরণ | ||||
ফাইলের নাম | ||||||
FileMimeType | ||||||
ফাইলইউআইডি | ||||||
ফাইল রেফারেল | ||||||
FileUsedStartTime | ||||||
FileUsedEndTime | ||||||
ট্যাগ | ট্যাগ | লক্ষ্য | TargetTypeValue | |||
টার্গেট টাইপ | ||||||
TagTrackUID | ||||||
TagEditionUID | ||||||
TagChapterUID | ||||||
TagAttachmentUID | ||||||
সিম্পলট্যাগ | ট্যাগনাম | |||||
ট্যাগ ভাষা | ||||||
ট্যাগডিফল্ট | ||||||
ট্যাগস্ট্রিং | ||||||
TagBinary | ||||||
সিম্পলট্যাগ |
কোডেক ব্যবহার করা
আপনি যদি একটি নতুন মিডিয়া প্লেয়ার না চান এবং আপনার বিদ্যমান প্লেয়ার ব্যবহার করতে পছন্দ করেন তবে আপনাকে কিছু কোডেক ইনস্টল করতে হবে (কম্প্রেশন/ডিকম্প্রেশনের জন্য সংক্ষিপ্ত বিবরণ)। যদিও কোডেক ডাউনলোড করা একটি বৈধ বিকল্প, আপনার উত্স সম্পর্কে সতর্ক হওয়া উচিত এবং এতে ম্যালওয়্যার থাকতে পারে।