![نقل قول](images/styles/GamerBlue/misc/quote_icon.png)
نوشته اصلی توسط
AliYar
سلام دوست عزیز،
ببینید شما اول گفتین یک کلیپ هست با دو کیفیت ولی هر دو کیفیت مثل همه. اول «کیفیت» رو باید تعریف کرد منظور چی هست.
به نظرم منظورتون از «کیفیت» اولی این بود که مثلا هر دو یک سایز تصویر و رزولوشن هستن ولی از لحاظ دیتا حجم MP4 نصف فایل MKV هست ولی موقع دیدن تفاوتی «کیفیت» و در حس بصری وجود نداره. درسته؟
اولا کیفیت همونطور که گفتیم مولفه و متغیر های بسیار زیادی داره مثل اندازه، رزولوشن، bitrate و نحوه فشرده سازی و خارج شدن از فشرده سازی که بسته به نوع codec های استفاده شده برای encoding فایل ویدئو و همین طور نرم افزاری که برای پخش اون فایل ویدئو استفاده میشه متفاوته.
راستش صحبت کردن در مورد فرمت ها و به اصطلاح قالب های مختلف audio و video اونقدر مفصله که میشه راجع بهش چندین جلد کتاب نوشت و طبعا از حوصله جمع خارجه.
در مورد توجیه تفاوت حجم دو فایل با فرمت های MP4 و MKV که گفتید باید به یک نکته مهم توجه بشه اونم این هست که اینها در واقع فرمت های container هستند.
این یعنی چی؟ یعنی در واقع اینها محلی برای قرار دادن فایل های مختلف کنار هم هستند یعنی در یک قالب فایل MP4 که در واقع MPEG-4 هست که خودش یک استاندارد هست که هنوز در دست تکمیله و part های مختلفی داره.
در داخل این فالب میشه یه فایل/استریم ویدئو که مثلا در چهارچوب Part 4 هست با پروفایل Advanced Simple Profile کدگذاری شده قرار داد که توسط codec هایی مثل DivX، Xvid، یا فرض کنید Quick Time 6 مورد استفاده قرار می گیره قرار داده بشه. یا در قالب Part 10 باشه که MPEG-4 AVC/H.264 هست یا همون Advanced Video Coding. این codec توسط x264 encoder یا Nero Digital AVC یا QuickTime 7 و همچنین در رسانه های ویدئویی HD مثلا دیسک های Blu-ray استفاده میشه.
همچنین میشه استریم های صدا یا audio مختلفی هم در این قالب یا container قرار داد یعنی فرض کنید شما می تونید استریم صدای AAC یا MP3 بذارید و طبعا اگر کیفیت یا bitrate فرق بکنه حجم فایل هم تغییر می کنه و اگر شما یک استریم ویدئو با یک فرمت و کیفیت و حجم خاص رو اگر با استریم صدا MP3 با bitrate معادل 32Kbps هم تافته کنید خوب قعطا حجم خروجی فالب container (مثلا MP4) کمتر از وقتی میشه که همان استریم ویدئو رو با یک استریم صدای MP3 با bitrate معادل 320Kbps هم تافته کنید.
در مورد قالب containter دیگه که گفتید یعنی ماتروشکا یا همون MKV باید عرض کنم که اولا منبع باز هست یعنی شما برای استفاده از ابزارهای مبتنی بر این قالب برای ساختن پکیج های ویدئو/صدا لزومی نداره مبلغی برای licensing به فلان شرکت پرداخت کنید. و مثل MPEG-4 میشه در اون استریم های ویدئو و صدا مختلف و متعدد هم تافته کرد به علاوه اینجا دست خیلی بازتر هست و میشه چندین track صدا رو با یک استریم ویدئو قرار داد و به کاربر حق انتخاب داد همچنین نسبت به MP4 دست خیلی بازتر هست برای قرار دادن زیرنویس یا همان subtitle با فرمت های مختلف.
نکته قوت دیگه این قالب نسبت به MP4 استفاده از EBML یا (Extensible Binary Meta Language) که میشه «ابر زبان باینری قابل تعمیم» که نسبت به امکانات باینری MP4 خیلی گسترده تر هست.
به خصوص به دلیل امکان استفاده از Meta Data که عرض کردم که مثلا با استفاده از اون تعیین و ایجاد chapter در استریم ویدئو (یعنی فصل بندی استریم ویدئو) آسان تر هست میشه گفت قالب MKV در ساختار مفهومی و کلی شبیه سایر قالب های container هست مثل AVI یا MP4 یا موارد مشابه دیگه ولی به نظر میاد انعطاف پذیرتر باشه.
شاید به همین دلیل باشه که مثلا چند سال پیش اعلام شد که فرمت ویدئو/صدای WebM برای اینترنت بر مبنای یکی از پروفایل های MKV ایجاد خواهد شد با ویدئو با فرمت VP8 و صدا با فرمت Vorbis.
همچنین اگر اشتباه نکنم مایکروسافت پارسال اعلام کرد که ویندوز 10 به صورت native و پیشفرض از فرمت HEVC و Matroska پشتیبانی خواهد کرد و در یکی از Technical Preview هایی که از ویندوز 10 ارائه شد پشتبیانی پلتفرمی از HEVC و MKV به سیستم عامل اضافه شد.
دوستان ببخشید که طولانی شد :)