در این مقاله با اصول اولیه فایل های رسانه ای مانند مفاهیم کانتینر و تعدادی از فرمت های کدک موجود که می توانید در جریان استفاده کنید آشنا خواهید شد. بهعلاوه موضوعاتی مانند جریان تطبیقی، نرخ بیت و وضوح را به آرامی لمس کنید - اما در بخشهای بعدی عمیقتر به همه آنها خواهیم پرداخت.
ارائه فایل های ویدئویی
ممکن است فکر کنید که می توانید یک فایل خام را از یک دوربین فیلمبرداری بگیرید و آن را همانطور که هست در وب آپلود کنید. در واقع، سایتهای پخش ویدیو مانند YouTube یا Vimeo به شما این امکان را میدهند که این کار را انجام دهید، و حتی قابلیتهای پخش زنده را فراهم میکنند—معمولاً با اتصال به پورت HDMI دوربین و سپس پردازش آن از طریق کارت ضبط. این سرویسها پردازش و آپلود ویدیو را بسیار ساده میکنند، که شامل تولید بسیاری از فایلها و مانیفستهای مورد نیاز برای جریان تطبیقی و وضوحهای مختلف میشود. به علاوه بسیاری از الزامات پیچیده و ظریف دیگر که میزبانی از خود را کمی سخت می کند. آمادهسازی و ارائه یک ویدیو از سایت خود، و احتمالاً یک سرور رسانه جداگانه، کمی پیچیدهتر از آپلود یک فایل خام دوربین است، اگر برایتان مهم است که کاربران شما چگونه سایت شما را تجربه میکنند.
فایل های ویدئویی در فرمت های مختلفی ارائه می شوند. فرمتی که از دوربین شما خارج می شود معمولاً یک فایل .mov
. یا اگر یک دوربین بدون آینه مدرن خوب دارید یک .mp4
. با این حال، در حالی که یک .mov
برای ضبط و ویرایش و سایر فرآیندهای اولیه پس از تولید خوب است، اندازه فایل به این معنی است که برای پخش از طریق وب خوب نیست. همچنین، اندازه فایل یک .mp4
خام در 4K باعث میشود که پخش آن فایل در موبایل بسیار سخت باشد. از آنجایی که مرورگرها از فرمتهای فایل مختلف پشتیبانی میکنند، اگر قصد دارید از جریان تطبیقی پشتیبانی کنید، باید چندین فایل بهینهسازی شده و احتمالاً یک مانیفست ایجاد کنید. قبل از تبدیل فایلها، باید چند نکته اساسی در مورد آنها و ویژگیهای آنها بدانید.
کانتینرها و کدک ها و جریان ها؟
فایلی که در پوسته سیستم عامل خود می بینید یک محفظه است که با پسوند فایل ( .mp4
، .webm
، .ogg
و غیره) شناسایی می شود. کانتینر یک یا چند نهر را در خود جای داده است. یک فایل رسانه ای می تواند هر تعداد جریان داشته باشد، با فرمت های بسیار بیشتر از آنچه در اینجا به آن می پردازیم.
فایلهای نمونهای که بعداً در این بخش استفاده میشوند حداکثر شامل دو جریان هستند: یک جریان صوتی و یک جریان ویدیو. در میان انواع دیگری که ممکن است با آنها روبرو شوید، شرحها و دادهها هستند که هر دوی آنها خارج از محدوده این مقاله هستند. مواردی وجود دارد که جریان های صوتی و تصویری به طور جداگانه بررسی می شوند. اکثر فایلهایی که با آنها مواجه میشوید، فقط شامل یک جریان صوتی و یک جریان ویدئو هستند.
در جریان های صوتی و تصویری، داده های واقعی با استفاده از یک کدک فشرده می شوند. کدک یا کدک/رمزگشا، فرمت فشردهسازی برای دادههای ویدیویی یا صوتی است. تمایز بین یک کانتینر و یک کدک مهم است زیرا فایلهای دارای یک ظرف میتوانند محتویاتشان را با کدکهای مختلف کدگذاری کنند.
تصویر زیر این ساختار را نشان می دهد. در سمت چپ ساختار کانتینری اولیه با دو جریان است. در سمت راست مشخصات آن ساختار برای یک فایل WebM منفرد است.
فایلهای موجود در کانتینرهای WebM میتوانند نسبت به فرمتهای دیگر کوچکتر باشند، که آنها را به انتخاب خوبی برای پخش جریانی سایتهای موبایل تبدیل میکند. متأسفانه، همه مرورگرها از کانتینرها و کدک های به روز پشتیبانی نمی کنند. به عنوان مثال، WebM به طور خاص برای وب به عنوان یک گزینه با کیفیت بالا و منبع باز ایجاد شده است، اما پشتیبانی آن هنوز جهانی نیست. Safari به طور خاص، با توجه به اینکه آیا می توانم در زمان نوشتن این مقاله استفاده کنم ، از WebM برای ویدیوهای جاسازی شده پشتیبانی نمی کند. با این حال، WebM با کدک VP8 و VP9 که در WebRTC استفاده می شود، پشتیبانی جزئی دارد. بنابراین بهترین گزینه ارائه یک ویدیوی بازگشتی است.
فرمت های کدک
بسیاری از انواع فایل ها از چندین کدک در یک ظرف پشتیبانی می کنند. فهرست کاملی از کدکهای ویدیویی و کدکهای صوتی موجود برای خودش یک وبسایت کامل است. پیوندهایی که به تازگی ارائه شده است برای لیست های عملی MDN از موارد قابل استفاده در وب است. در زیر انواع فایل های ترجیح داده شده در حال حاضر و کدک هایی که ممکن است استفاده کنند ذکر شده است. برای مشاهده مرورگرهایی که از آنها پشتیبانی می کنند، پیوندهای نوع فایل را دنبال کنید.
* کدک ویدیویی ترجیحی را نشان می دهد.
میزان بیت و وضوح تصویر
نرخ بیت حداکثر تعداد بیت هایی است که برای رمزگذاری یک ثانیه از یک جریان استفاده می شود. هرچه بیت های بیشتری برای رمزگذاری یک ثانیه جریان استفاده شود، جزئیات و وفاداری بالقوه بالاتری دارد. ما اطلاعات بیشتری در مورد این مفهوم در Bitrate ارائه می دهیم.
رزولوشن مقدار اطلاعات موجود در یک فریم ویدیو است که به عنوان تعداد پیکسل های منطقی در هر بعد داده می شود. ما اطلاعات بیشتری در مورد این مفهوم در Resolution ارائه می دهیم.
در مرحله بعد، در اصول برنامه کاربردی رسانه ، به شما نشان خواهیم داد که چگونه این ویژگی ها را با استفاده از دو ابزار خط فرمان بررسی کنید: Shaka Packager و FFmpeg.