هر آنچه باید درباره فایلهای ویدئویی و انواع فشردهسازیها، کانتِینرها و کدکها بدانیم
کدک (Codec) چیست؟
کدک یا کدکننده یک ابزار کدگذاری است دکه ویدئو را پردازش کرده و آن را به شکل جریانی از بایتها ذخیره میکند. کدک از الگوریتمهایی برای کاهش اندازه فایلهای صوتی و تصویری نیز استفاده میکند؛ سپس در زمان مورد نیاز آن را از حالت فشرده خارج میکند. کدکهای مختلف هر کدام، از تکنولوژی خاصی برای رمزگذاری و فشرده کردن فایلهای ویدئویی برای کاربردهای مختلف استفاده میکنند.
بسته به نوع کدکننده، عمل کدگذاری به دو شکل فشردهسازی با از دست دادن داده و بدون از دست دادن داده انجام می شود.
فشرده سازی با از دست دادن داده (Lossy Compression)
اگر به دنبال فایلهای با اندازه محدود و کنترل شده هستید فشرده سازی با از دست دادن داده، مناسبترین گزینه به شمار میرود. در این نوع فشرده سازی، کیفیت در صوت یا تصویر یا هر دو تا حدودی کاهش مییابد؛ اما این امر در شرایط کنونی و در دنیایی که ذخیره و به اشتراک گزاری فایلها روالی رایج به شمار میرود، اجتناب ناپذیر است. به عنوان مثال با اینکه حجم فایل قابل ذخیره با کیفیت بالا در بلو-رِی بیش از ۴۰ گیگابایت است اما این حجم برای دانلود و خرید اینترنتی بسیار ناکارامد است. نکته کلیدی در فشرده سازی با از دست دادن داده، استفاده از بالاترین کیفیت ممکن و فشرده سازی تا حد لازم برای کاربرد مورد نظر است. فشرده سازی در حقیقت راه رفتن بر روی لبهی باریک حفظ کیفیت و تنظیم اندازه فایل است.
فشرده سازی بدون از دست دادن داده (Lossless Compression)
نحوه کار در فشرده سازی بدون از دست دادن داده بسیار شبیه الگوریتم فشرده سازی RAR و ZIP است که در آن فایل نهایی همان فایل اولیه است. با استفاده از یک الگوریتم هوشمند، کاهش کیفیتی در فایل ایجاد نمیشود اما این راه حل به دلیل عدم فشرده سازی قابل توجه، برای ذخیره سازی فایلهای بزرگ مناسب نیست. علاوه بر این در انتقال فایلهای آنلاین ویدئویی در اینگونه فشرده سازی نیاز به پهنای باند به مراتب بالاتر وجود دارد.
در صنعت فیلم و ادیت ویدئو نیز بسیار بعید است که از فرمت ویدئویی فشرده سازی بدون از دست دادن داده استفاده شود. حتی تلویزیونهای 4K که دارای تصاویری با رزولوشن بالا هستند که توسط دوربینهای جدید تصویر برداری شدهاند نیز مقداری فشردهسازی وجود دارد. با اینکه ویدئوهای 4K بسیار زیبا و با کیفیت هستند اما از لحاظ حجم تفاوت بسیاری با فرمتهای ویدئویی بدون فشردهسازی دارند.
در حالی که فیلم بلو-ری دارای حجم کمتر از ۵۰ گیگابایت است؛ اولین فیلم 4K قابل دانلود که در دسترس مصرف کنندگان است، بیش از ۱۶۰ گیگا بایت حجم دارد! از طرفی یک ساعت ویدئوی فول اچدی بدون فشرده سازی، حجمی بیش از ۴۱۰ گیگابایت دارد که بسیار زیاد است. البته این مقدار فارغ از حجم صوتی است که خود میتواند اندازهای حدود ۷ گیگابایت به ازای یک ساعت را بر این حجم بیافزاید. با تکنولوژیهای کنونی، این حجم از صوت و تصویر برای بازار مشتریان غیرقابل استفاده است.
توجه به این نکته بسیار مهم است که کاربرد کدکها فقط برای فشرده سازی فایلهای صوتی و ویدئویی نیست. وقتی یک فایل با استفاده از کدک خاصی کدگذاری میشود، برای پخش آن در دستگاههای صوتی و تصویری، باید توسط همان کدک فایل را رمزگشایی کرد. عدم استفاده از کدک درست و یکسان، موجب ناسازگاری دستگاهها یا مشکلات پخش ویدئو خواهد شد. این مشکلات در کانتِینرها یا بستههای ویدئویی جدید که شامل اغلب کدکهای صوتی و تصویری مورد نیاز برای پخش فایل مورد نظر هستند تا حدود زیادی برطرف شدهاند.
کدکهای معروف
امروزه کدکهای مختلفی در فایلهای ویدئویی مورد استفاده قرار می گیرد که برخی از آنها با گذشت زمان و افزایش ویژگیها و کاربردهای مختلف دارای ورژنهای مختلف هستند و برخی دیگر نیز کدکهای جدیدی به شمار میروند. ورژنهای مختلف MPEG، H.264، MPEG spinoffs، MJPEG، WMV، DivX، Sorenson 3، Quicktime 6، RP9، WMV 9 برخی از کدکهای هستند که امروزه به کار میروند. در ادامه مهمترین کدکها را مورد بررسی بیشتری قرار میدهیم.
XviD/DivX:
DivX یک کدک تجاری انحصاری است؛ در حالی که XviD یک کدک جایگزین مشابه است که با کدباز ارائه شده است. هر دو کدک میتوانند خروجی یکدیگر را رمزگشایی کنند. هر دو این کدکها در ساخت MPEG-4 نیز بکار گرفته شدهاند. این کدکنندهها به طور گسترده، علیالخصوص در کدگذاری ویدئویی استفاده میشوند. مشخصه این کدکها ابعاد نامحدود و سبک محاسبات کدگذاری آنها میباشد در ادامه به برخی استانداردهای مرتبط با این کدکها میپردازیم.
MPEG-4:
رایجترین فرمت و کدک ویدئویی است. MPEG مخفف Moving Picture Experts Group یا گروه کارشناسان تصویر متحرک است که اشاره به گروه سازندهی آن دارد. این کدک شامل بخشهای مختلفی است که بخش دوم آن برای کدگذاری ویدئو استفاده میشود. این بخش، از کدکنندههایی مانند دیو ایکس یا ایکسوید برای کدگذاری ویدئوها استفاده میکند. نکته قابل توجه اینجا است که با تمام مزایایی که این کدک دارد در حال حاضر در به روز رسانیهای جدید از H.264 به طور گسترده استفاده میشود.
H.264:
محبوبترین انتخاب برای ویدئوهای با کیفیت بالا است. این کدک از هر دو نوع فشرده سازی با و بدون از دست دادن داده استفاده میکند که این امر بستگی به تنظیمات کدگذاری مدنظر مانند نرخ فریم، کیفیت، اندازه فایل هدف و دیگر تنظیمات دارد. در این کدک برای کدگذاری صوتی از کدکهای صوتی AAC یا MP3 بسته به سایز و کیفیت مد نظر شما استفاده میشود.
H.264 تا دو برابر کارآمدتر از فشردهسازی MPEG-4 اولیه است. از طرفی این کدک خروجی فایل با سایز کوچکتری را ارائه میدهد و قابلیت پخش بر روی دستگاههای پخش مختلف بدون هیچ مشکلی در آن وجود دارد. در حال حاضر ویژگیهای H.264 در داخل کدک MPEG-4 جدید نیز گنجانده شده است که با عنوان AVC شناخته میشود. با توجه به وجود کدکهای مختلف، چالش اصلی آینده در این حوزه، کار بر روی کدکی است که به تکنولوژی کدگذاری خاصی متکی نباشد و به عنوان بستهی کدکی عمل کند که شامل روشهای مختلف کدگذاری در یک بسته باشد.
کانتِینر (Container) چیست؟
هدف از بستههای ویدئویی یا کانتِینرها، گردآوری فایلهای صوتی و ویدئویی و کدکننده در یک بسته است. علاوه براین کانتِینر شامل اطلاعاتی از فیلمهای دی وی دی یا بلورِی مانند زیرنویس، افزونههای صوتی مانند زبانهای مختلف برای فیلم است. یک کانتِینر معمولی همانند یک فایل اجرایی (.exe) در ویندوز اجرا میشود. کانتِینرها از فایل .bat در سیستم عامل استفاده میکنند تا به سیستم عامل اعلام کنند که عملیاتشان شامل دستورات اجرایی است که باید با هم اجرا شوند تا نتیجهی مورد نظر بدست آید.
کانتِینرهای معروف
کانتِینرها به دلیل کاربرد مهم و وسیعی که دارند دارای انواع گوناگونی هستند که هر کدام کاربرد خاص خود را دارد. MP4، AVI، FLV یا Flash Video، MOV، OGG، OGM، OGV، MKV، VOB، ASF برخی از کانتِینرهای رایج امروزی هستند. در ادامه مهمترین کانتِینرها را مورد بررسی بیشتری قرار میدهیم.
(Flash Video (.flv, .swf:
قبل از این که شرکت ادوبی در سال ۲۰۰۵ ماکرومدیا را خریداری کند، فلش توسط شرکت ماکرومدیا ارائه شده بود. فلش قدیمیترین کانتِینری است که به دلیل برخی محدودیتها در حال انقراض است. از ابتدا شرکت اپل به این کانتِینر روی خوشی نشان نداد و استیو جابز این فرمت را به عنوان فایلی دارای باگ معرفی کرد که این امر باعث شد تا دستگاههای با سیستم عامل iOS از این فرمت پشتیبانی نکنند؛ این محدودیت شروع مرحلهی انقراض این فرمت بود. در حال حاضر استاندارد HTML5 جایگزین این فرمت شده است به طوری که امروزه ویدئوهای آنلاین کمی را با فرمت فلش میتوان مشاهده کرد.
MKV:
فرمت MKV به سرعت در حال رشد است. طراحی آن به گونهای است که در آینده نیز قابل استفاده باشد. کانتِینر آن بسیار سازگار و کارآمد است زیرا تقریبا از هر فرمت صوتی و ویدئویی پشتیبانی میکند به گونهای که آن را به یکی از بهترین روشها برای ذخیره فایلهای صوتی و ویدئویی تبدیل کرده است. همچنین این کانتِینر از فایلهای زیرنویس مختلف که با فرمتهای متفاوتی کدگذاری شدهاند نیز پشتیبانی میکند. ویژگی دیگر این کانتِینر، بازیابی خطا است که امکان پخش فایلهای آسیب دیده را نیز فراهم میکند. مجموع این ویژگیها باعث میشود تا این کانتِینر از محبوبیت بیشتری برخوردار شود.
MP4:
فرمت MP4 بهترین فرمت پیشنهادی برای آپلود ویدئو در وب است. همچنین سرویسهای اینترنتی مانند ویمئو و یوتیوب نیز این فرمت را ترجیح میدهند. کانتِینر MP4 از کدگذاری MPEG-4 یا H.264 استفاده میکند. همچنین این کانتِینر از AAC یا AC3 برای صوت استفاده میکند. بیشتر دستگاههای امروزی از این فرمت و کانتِینر پشتیبانی میکنند. همچنین این بستهی ویدئویی برای ویدئوهای آنلاین بسیار محبوب است و شما با کاربرد آن کمتر به مشکل برخواهید خورد.
لازم به ذکر است کانتِینر صرفا محلی برای ذخیرهی صوت و ویدئو و کدک است از این رو کانتِینر به تنهایی شامل بیتهای اطلاعاتی غیر قابل استفاده است. در اصل توسط کدک است که ویدئو و صوت، کدگشایی و قابل پخش میشود.
در نهایت اگر به دنبال پاسخ این سوال هستید که چه کدک یا کانتِینری بهترین گزینه برای استفاده است. به نظر میرسد H.264 به سرعت به یک کدک استاندارد تبدیل شود همچنین MP4 و MKV کانتِینر بهتری به نظر میرسند ولی MP4 از محبوبیت بیشتری برخوردار است زیرا دستگاههای پخش زیادی از آن پشتیبانی میکنند و سایتهای ویدئویی معروف از آن استفادهی گستردهای میکنند. در نهایت انتخاب باشما است و گزینههای دیگری نیز ممکن است در شرایط مختلف برای شما کاربرد خوبی داشته باشد.
نظر شما در خصوص کاربرد این فرمتها و کدکها و کانتِینر چیست؟ شما کدام یک را ترجیح میدهید؟ از چه نرم افزارها و تنظیماتی در این خصوص استفاده میکنید؟