آموزشی

آشنایی با تأخیر در پروتکل های HLS و MPEG-DASH

shahin شاهین نوعی
17 بازدید | 0 دیدگاه | 09 شهریور 1401
/storage/post-images/1661926284_2022-08-31_1656781915_2022-07-02_02-min.png
سرفصل های مهم
آشنایی با تأخیر در پروتکل های HLS و MPEG-DASH

دنیای پخش زنده بارها درگیر بحث و جدل درباره تاخیرات ( Latency ) و راهکارهای کاهش آن بوده است. با وجود ظهور راهکارهای بهینه برای پخش زنده ای با تأخیر کمتر، تصمیم داریم در این مطلب نگاهی دقیق تری به تأخیر در لایو استریمینگ بیاندازیم. با اینکه انگشت انتقادات به سمت راهکارهای بسیار کندی است که عموماً از تکنولوژی های WebRTC و WebSocket استفاده می کنند، همچنان پروتکل پخش زنده HTTP محور سنتی به طور بالقوه ای برای این صنعت مورد استفاده قرار گرفته و از هیچ عنصر تعاملی خاصی نظیر تماس ویدیویی، چت، Donate و شرط بندی بهره نمی برد.

از نقطه نظر CDN، ممکن است در گذشته تصورات در خصوص تأخیر به زمانی بود که یک بسته از سرور اصلی تا مقصد نهایی به طول می انجامید؛ به این تاخیر round-trip time گویند. بگذارید به این پدیده تأخیر شبکه گوییم.

تأخیر شبکه که در حالت ایده آل به میلی ثانیه محاسبه می شود، به فاکتورهای زیادی بستگی دارد؛ مثل سرعت نور، مسافت فیزیکی، نرخ انتقال، ساختار شبکه و سیاست های جفت شدن سیستم های خودکار و مهم تر از همه زیرساخت های شبکه ای ( network edge ) از جمله اتصالات موبایل ها و اینترنت خانگی ما.

بهتر است قبل از ورود به مبحث تأخیر، ابتدا با دو مفهوم MPEG-DASH و HLS بیشتر آشنا شویم...

MPEG-DASH چیست؟

استریمینگ یا پخش زنده به انتقال داده ها از طریق اینترنت اشاره دارد که یک دستگاه را قادر می سازد تا قبل از لود شدن کامل، بتواند داده ای را شروع کند. ویدیوهای امروزی به کمک اینترنت استریم می شوند، تا دستگاه کاربر مجبور به دانلود کل فایل ویدیویی قبل از پخش آن نباشد.

MPEG-DASH یک روش یا متد پخش زنده است. DASH مخفف "Dynamic Adaptive Streaming over HTTP" است، چراکه بر مبنای HTTP عمل می کند؛ پس هر سرور اصلی یا Origin server می تواند یک استریم MPEG-DASH را راه اندازی کند.

MPEG-DASH تقریباً مثل HLS است، یک پروتکل استریمینگ دیگر؛ که از طریق آن ویدیوها به دسته های خردتری تقسیم شده و پروتکل آنها را در کیفیت های مختلف Encode می کند. اینکار پخش ویدیو با سطوح کیفیتی مختلف را ممکن می سازد. به طوری که می توان در میان تماشای ویدیو، بین آنها از کیفیتی به کیفیت دیگر جا به جا شد.

HTTP چیست؟

HTTP یک پروتکل لایه 7 است که برای ارتباطات اینترنتی مورد استفاده قرار می گیرد. اپلیکیشن های وب از HTTP برای ارسال داده ها بین یکدیگر استفاده می کنند. این چیزی شبیه به دو فردی است که از دو نقطه ی مختلف جهان به وسیله یک زبان مشترک قصد برقراری ارتباط با یکدیگر را دارند.

MPEG-DASH از HTTP استفاده می کند که برای آن یک مزیت محسوب می شود، چراکه اکثر مرورگرهای اینترنت از HTTP پشتیبانی می کنند. با کمک HTTP، استریم به یک پورت استاندارد ارسال می شود ( پورت 80 یا 443 ) که همیشه یک پورت باز است.

این موضوع به این دلیل رخ می دهد که از بلاک شدن یا مسدود شدن استریم توسط فایروال جلوگیری شود، فایروالی که می تواند پروتکل های استریمی که از پورت های خاص یا غیر معمول استفاده می کنند را مسدود کند.

 MPEG-DASH چطور عمل می کند؟

مراحل اصلی فرآیند استریم به وسیله MPEG-DASH عبارتند از:

  • بخش بندی و Encoding: سرور اصلی فایل ویدیویی را به چند بخش کوچک تر تقسیم می کند ( معمولاً چند ثانیه ). این سرور علاوه بر این بخش بندی، یک فایل index نیز ایجاد می کند؛ چیزی شبیه به جدول محتوایی برای معرفی بخش های خرد شده ی ویدیو. سپس بخش ها رمزنگاری شده و برای ترجمه دستگاه های مختلف، فرمت بندی می شوند. MPEG-DASH به رمزنگاری یا Encode کردن با استفاده از استانداردهای مختلف کمک می کند.
  • تحویل: زمانی که کاربران شروع به تماشای یک استریم می کنند، بخش های encode شده ی ویدیو، به وسیله اینترنت به سمت دستگاه کاربر یا کلاینت ارسال می شود. در اکثر موارد، یک CDN در میان راه قرار گرفته که توزیع استریم را موثر تر و سریع تر می کند.
  • رمزگشایی و پخش: زمانی که دستگاه کاربر داده های استریم شده را دریافت می کند، داده ها را رمزگشایی کرده و ویدیو را پخش می کند. پخش کننده ویدیو به طور خودکار بین کیفیت های مختلف جا به جا می شود تا خود را با شرایط شبکه تطبیق دهد. برای مثال اگر کاربر پهنای باند کمی داشته باشد، ویدیو با کیفیت پایین تری برای استفاده ی کمتر از پهنای باند پخش خواهد شد.

تفاوت بین HLS و DASH

HLS یک پروتکل استریم دیگر است که امروزه به طور گسترده ای مورد استفاده قرار می گیرد. HLS و MPEG-DASH از جوانب بسیاری با یکدیگر شباهت دارند. هر دو پروتکل روی HTTP اجرا می شوند، از TCP به عنوان یک پروتکل انتقالی استفاده می کنند، ویدیو را به بخش های کوچک تر تقسیم و یک فایل index اضافه می کنند و از قابلیت ABS یا پخش با بیت ریت متغیر پشتیبانی می کنند.

با این وجود، چند تفاوت اصلی این دو پروتکل را از یکدیگر متمایز می کنند:

فرمت های رمزنگاری یا Encoding: MPEG-DASH استفاده از هرگونه استاندارد رمزنگاری را میسر می کند. اما در طرف مقابل، HLS به استفاده از H.264 یا H.265 نیاز دارد.

پشتیبانی دستگاه: HLS تنها فرمتی است که توسط دستگاه های Apple پشتیبانی می شود. یعنی آیفون ها، مک بوک ها و سایر محصولات Apple نمی توانند ویدیوهایی را که با MPEG-DASH تحویل می شوند را پخش کنند.

طول بخش یا Segment: قبل از 2016 این یک تفاوت بسیار بزرگ بین دو پروتکل محسوب می شد، زمانی که طول بخش های پیش فرض در HLS،  10 ثانیه بود. امروزه این مقدار به 6 ثانیه کاهش پیدا کرده است. البته می توان تنظیمات پیش فرض را تغییر داد. اما طول بخش های MPEG-DASH بین 2 تا 10 ثانیه بوده و طول بهینه برای آن نیز بین 2 تا 4 ثانیه است.

استانداردسازی: MPEG-DASH یک استاندارد جهانی است. HLS توسط Apple توسعه داده شده و به عنوان یک استاندارد بین المللی منتشر نشده است.

تأخیر شیشه تا شیشه ( Glass-to-Glass )

با وجود پیچیدگی، تأخیر شبکه تنها یکی از جنبه های تأخیر کلی یک پخش زنده بوده که به اصطلاح به تأخیر glass-to-glass نیز معروف است.

این اصطلاح  در واقع به یک زمان اشاره دارد؛ به طوری که از لحظه ای شروع می شود که یک تصویر از طریق لنز شیشه ای دوربین گرفته شده تا زمانی که بر روی شیشه اسکرین دستگاه شما نمایان می شود.

برای اینکه بتوانیم درک بهتری از دلیل رخداد تاخیرات کسب کنیم، بهتر است با نگاهی به سیگنال های ویدیویی شروع کنیم...

شمارش معکوس تأخیر شیشه تا شیشه، دقیقاً از زمانی شروع می شود که دوربین تصویری از دنیای آنالوگ ما ضبط می کند؛  و سپس آن را به رشته ای از داده های دیجیتال مستمر تبدیل می کند.

در مرحله اولیه، انتقال داده ها به ظرفیت زیادی از پهنای باند نیاز دارد؛ بنابراین، مرحله طبیعی بعدی این است که به کمک codec ها سیگنال را فشرده کرده و بیت ریت های ویدیو را برای انتقال اینترنتی مناسب، به اندازه های کوچک تر مقیاس داده شود. به این فرآیند اصطلاحاً encoding گویند.

حال، زمانی که استریم می تواند به وسیله IP منتقل شود، باید به این فکر کنیم که چطور آن را به طور موثر به دست بینندگان برسانیم.

در گذشته، پروتکل فلش-محورِ RTMP برای این هدف مورد استفاده قرار می گرفت؛ اما از زمانی که Flash توسط مرورگرها و دستگاه های موبایل، دیگر پشتیبانی نمی شود، جریانات HTTP محور ظهور کرده و RTMP تنها به عنوان یک پروتکل انتقالی بین Encoder و فرآیند واحد بعدی یعنی سرور پخش، مورد استفاده قرار می گیرد.

برای پروتکل های http محور، سرور رسانه، محتوا را به چند بخش کوچک تر خرد می کند. به این بخش ها دسته یا chunks گویند.

هر کدام از این بخش ها شامل محتوای مختصری معمولاً بین 2 تا 10 ثانیه می باشد. این دسته ها درون یک فایل حجیم بسته بندی شده که دارای یک نقشه متادیتا بوده و بیانگر زمان دقیق بین فواصل ویدیوها می باشد.

در همین لحظه،سرور نسخه هایی کپی از استریم در بیت ریت ها و رزولوشن های مختلف ایجاد کرده ( transcoding ) تا بتواند برای دستگاه های مختلف و بهبود عملکرد شبکه، کیفیت های متنوعی را ارائه دهد.

از این مرحله به بعد، استریم بخش بندی شده، به سرورهای لبه ی CDN سفر کرده، کش شده و از طریق یک پخش کننده (Player) به دست مخاطب نهایی می رسد.

هر کدام از این واحد ها، مقداری را به تأخیر اضافه کرده و فاصله زمانی بین ضبط و پخش را طولانی تر می کنند. به طور مشخص تر، در واقع این ترکیبی از تأخیر شبکه ( طبق مراحل توضیح داده شده در بالا )، تأخیر transcoding (-5 ثانیه ) و buffer است که هم سرور استریم و هم پخش کننده می توانند به طور لحظه ای و بدون مرز ، ویدیو را منتشر کنند.

دومی، یعنی پخش کننده، در اصل به طول دسته ( chunk duration ) بستگی دارد و ممکن است به ازای هر واحد تا 10 ثانیه طول بکشد.

با احتساب تمام اینها، یک پروتکل http-based تاخیر شیشه تا شیشه ای بین 25 تا 40 ثانیه ارائه می دهد.

تآخیر کم، کیفیت بالا

ممکن است برخی از خود بپرسند که چرا با وجود راهکارهای تاخیر میلی ثانیه ای موجود در بازار، همچنان از HLS و MPEG-DASH استفاده می شود؟

پاسخ در مقیاس پذیر بودن آسان آنهاست! علاوه بر این، پشتیبانی گسترده بین پلتفرم های مختلف، و قابلیت پخش بدون نیاز به اپلیکیشن های مازاد، از دیگر دلایل محبوبیت این دو پروتکل هستند.

به زبان ساده، همه در حوزه لایو استریمینگ در تلاش اند تا برای ارائه یک تجربه پخش زنده ی بدون lag و راحت برای بینندگان، تاخیر کلی را به حداقل ممکن برسانند. برای بهینه سازی و کاهش این تأخیرات، میزبان کلود راهکارهای بسیار جذابی برای شما در نظر گرفته تا بتوانید با پروتکل مورد نظر، به کمک یک سیستم پخش زنده ابری حرفه ای و سرویس CDN ابری، در پلتفرمی جذاب و با تمام قابلیت های مورد نیاز، یک تجربه ی منحصر به جای بگذارید.

راهکار میزبان کلود

به کمک سرویس پخش زنده ی ابری میزبان کلود می توانید با پخش کننده ویدیوی تحت وب، بهره مندی از قابلیت ABR یا تطبیق پذیری با سرعت های اینترنت متغیر، توزیع اختصاصی محتوا، پشتیبانی از HLS و MPEG-DASH و ویژگی های کاربردی بسیار دیگر، اتصال استریم به CDN ابری میزبان کلود، و بهره مندی از کلاسترینگ سرورهای ابری، با کمترین میزان تأخیر و بالاترین سطح کیفیت، بهترین تجربه کاربری را برای بینندگان ویدیوهای استریم خود رقم زنید.و همچنین شما می توانید برای اطلاعات قیمت پلتفرم پخش زنده به سایت ما مراجعه نمایید.

راهکار پخش زنده ابری میزبان کلود دارای ویژگی های امنیتی بسیار قدرتمندی نیز می باشد؛ نظیر قابلیت ارائه لینک امن، دامنه اختصاصی، توزیع اختصاصی و جلوگیری از دانلود ویدیو، یکپارچه سازی سرویس با سیستم های پدافند امنیتی ابری و ...

پیشنهاد می کنیم حتماً به صفحه پخش زنده ابری میزبان کلود مراجعه کرده و با سایر ویژگی های این سرویس آشنا شوید. در صورت داشتن هرگونه سوال و نیاز به دریافت مشاوره جهت شروع استفاده از پلتفرم پخش VOD یا پخش زنده ابری میزبان کلود می توانید با کارشناسان زبده ما تماس حاصل فرمایید.

جمع بندی

یکی از ترندهای روز نمایش ویدیوها به سبک استریم یا زنده است. برای اینکه بیننده بتواند ویدیوهای شما را به صورت آنی در دستگاه خود و با توجه به پهنای باند و سرعت اینترنت خود، بدون نیاز به دانلود کل فایل مشاهده کرده و  بتواند بین کیفیت های مختلف حین مشاهده ویدیو، جا به جا شود، باید داده های فایل ویدیویی توسط سرور به بخش های کوچک تری تقسیم شده و از طریق پروتکل های انتقالی نظیر HTTP و روش های مختلف نظیر MPEG-DASH و HLS به دست مخاطب برسد. در این مطلب به طور مفصل در خصوص دو روش HLS و MPEG-DASH صحبت کرده و شما را با جزئیات آنها، تفاوت و نقاط تشابه و تاخیرات موجود در استریم آشنا کردیم. امیدواریم بتوانید از راهکار میزبان کلود برای پخش زنده ای موفق بهره مند شده و از اطلاعات ارائه شده در این مطلب نیز بهره مند شده باشید؛ پیشنهاد می کنیم مطلب ABR یا Adaptive bitrate streaming را نیز در بلاگ میزبان کلود مطالعه کنید.




پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
برچسب ها :
نویسنده مطلب شاهین نوعی

Hi everyone, my name is Shahin Noei; I'm so glad to be sharing with you my latest knowledge of IT infrastructure and I warmly invite you to ask any of your questions in my linkedin page. I've been working in digital marketing field for the last 5 years and I've been in touch with some IT businesses long enough to get the most out of the newest technologies in this modern era.

آشنایی با تأخیر در پروتکل های HLS و MPEG-DASH 0 دیدگاه

مطالب را قبل از دیگران مطالعه کنید

دریافت جدیدترین مطالب در ایمیل شما

ایمیل شما به صورت کاملا محرمانه نزد ما محفوظ است
ما برای شما هرزنامه ارسال نمی کنیم