کدام پروتکل استریمینگ را انتخاب کنیم؟ MPEG-DASH یا HLS؟

مصرف ماهیانۀ ویدیو تا سال ۲۰۲۲ به ۶۰۸۸۹ پتابایت خواهد رسید. این موضوع، ضرورت استفاده از سرویس‌های استریمینگِ کم‌تأخیر را گوشزد می‌کند. اما سوال اینجاست که از کدام پروتکل استفاده کنیم؟ MPEG-DASH یا HLS؟  در این مقاله توضیح می‌دهیم.

 

پروتکل استریمینگ چیست؟

به عرضۀ اینترنتی محتوا بر اساس تقاضای کاربر، استریم گفته می‌شود. یعنی به جای دانلود فیلم، دکمۀ Play را بزنید تا فیلم ذره ذره پخش شود. مسائلی مثل تقسیم ویدیو به قطعات کوچکتر، انتخاب رزولوشن و تغییر کیفیت پخش، توسط پروتکل استریمینگ مشخص می‌شوند و در حال حاضر رقابت اصلی بین دو پروتکل HLS و MPEG-DASH است.
هر وقت در یوتیوب، آپارات یا تلویزیون‌های اینترنتی (فیلیمو، نماوا و ...) ویدیو تماشا می‌کنید یا در اسپاتیفای و بیپ‌تیونز موسیقی گوش می‌کنید، در حال استریم کردن محتوا هستید و تبعاً در پس زمینۀ آن، یک پروتکل استریمینگ فعالیت می‌کند. به طور کوتاه، پروتکل استریمینگ، به شیوۀ انتقال ویدیو و صوت بر بستر اینترنت گفته می‌شود. 
گفتنی است که فرستنده و گیرنده، هر دو باید از یک پروتکل یکسان استفاده کنند؛ در غیر این صورت، گیرنده قادر به پخش رسانه نخواهد بود؛ یعنی ویدیویی که تحت HLS ارسال شده، بر روی پلیری که از این پروتکل پشتیبانی نمی‌کند قابل پخش نیست. وجود این ناسازگاری‌ها باعث شد تا بحث استانداردسازی پروتکل‌های استریمینگ مطرح شود که در این زمینه HLS و MPEG-DASH موفق‌تر از بقیه عمل کرده‌اند.

 

تکامل استانداردهای استریمینگ

تلویزیون‌های اینترنتی یا سرویس‌های استریمینگ ویدیو، نیازمند روشی برای تحویل محتوای ویدیویی هستند. در گذشته، ویدیوها عموماً با پروتکل RTMP ارسال می‌شدند که توسط شرکت ماکرومدیا (اکنون ادوبی) معرفی و توسعه یافته است. این روش برای جابه‌جایی رسانه بین پلتفرم‌های مبتنی بر فلش به کار می‌رفت که گرچه هنوز هم در حال استفاده است ولی به خاطر منسوخ شدن فلش، از محبوبیت افتاده است. احساس نیاز به یک پروتکل جدید، باعث معرفی HLS و MPEG-DASH شد که در حال حاضر جزو پروتکل‌های مطرح استریمینگ محسوب می‌شوند.

 

HLS  چیست؟

HLS سرنام HTTP Live Streaming، پروتکلی برای عرضۀ محتوا زنده بر بستر اینترنت است که توسط شرکت اپل ساخته شد و همچنان در حال توسعه است. HLS در ابتدا فقط روی iOS پشتیبانی می‌شد؛ ولی طولی نکشید که به یک استاندارد فراگیر تبدیل شد و اکنون تقریباً روی همۀ دستگاه‌ها پشتیبانی می‌شود. HLS محتوای ویدیویی را از طریق وب سرورهای HTTP ارسال می‌کند؛ بنابراین راه‌اندازی سرویس پخش ویدیو با پروتکل HLS، نیازی به زیرساخت اضافه ندارد. همچنین یک پروتکل پخش با بیت‌ریت تطبیق‌پذیر (Adaptive Bitrate Streaming) است که رزولوشون آن مطابق با سرعت اینترنت کاربر تنظیم می‌شود. تمام این کارها به صورت خودکار انجام می‌شود.

 

adoptive bitrate

برخی از ویژگی‌های HLS:

  • ویدیوها را با کدک‌ H.264 یا HEVC - H.265 و صدا را با کدک AAC یا MP3 پخش می‌کند؛
  • ویدیو را به سگمنت‌های 10 ثانیه‌ای تقسیم می‌کند؛
  • از فرمت انتقال MPEG-2 TS استفاده می‌کند؛
  • از Closed Caption پشتیبانی می‌کند (زیرنویس با قابلیت خاموش روشن شدن)؛
  • از فناوری DRM برای مدیریت حقوق دیجیتال پشتیبانی می‌کند؛
  • با استانداردهای تبلیغاتی VAST و VPAID سازگار است.

قابل پخش در:

  • اندروید، iOS، لینوکس، ویندوز و مکینتاش؛
  • کروم، سافاری، فایرفاکس و مرورگر Edge؛
  • تلویزیون‌های هوشمند و ستاپ‌باکس‌های دیجیتال.

 

MPEG-DASH چیست؟

MPEG-DASH، جدیدترین پروتکل استریمینگ و تا لحظۀ نوشتن این مقاله، بهترین رقیب HLS بوده است. این پروتکل توسط گروه MPEG در میانۀ سال‌های ۲۰۰۹ و ۲۰۱۲ معرفی شد و همانند رقیبش از HTTP برای انتقال محتوا استفاده می‌کند. DASH سرنام Dynamic Adaptive Streaming over HTTP است که به فارسی: «پخش تطبیق‌پذیر داینامیک بر بستر HTTP» ترجمه می‌شود. با این حساب DASH نیز همانند HLS یک پروتکل پخش با بیت‌ریت تطبیق‌پذیر بوده و کیفیت پخش آن متناسب با سرعت اینترنت کاربر تنظیم می‌شود.


برخی از ویژگی‌های MPEG DASH:

  • DASH تقریباً با هر کدک ویدویی سازگار است: H.264, H.265/HEVC, VP9/10 و WebM؛
  • از انواع کدک‌های صوتی مثل AAC و MP3 پشتیبانی می‌کند؛
  • از DRM پشتیبانی می‌کند؛
  • از فرمت انتقال MP4 fragments و MPEG-2 TS استفاده می‌کند.

قابل پخش در:

  • تمام دیوایس‌های اندرویدی؛
  • تلویزیون‌های: ال جی، سامسونگ، پاناسونیک، فیلیپس و سونی؛
  • کروم‌کست؛
  • نت‌فلیکس و یوتیوب.

نکته: HTML5 به صورت توکار از MPEG-DASH پشتیبانی نمی‌کند ولی برای پخش آن با زبان جاوا اسکریپت و MSE، می‌توان پلیر اختصاصی ساخت.

 

مقایسۀ HLS و MPEG-DASH

رقابت نزدیک این دو پروتکل، انتخاب را کمی سخت کرده است. در اینجا فاکتورهای اصلی دو پروتکل را با هم مقایسه می‌کنیم:

 

کدام یک پشتیبانی وسیع‌تری دارد؟

HLS پشتیبانی وسیع‌تری دارد؛ چون با اندروید، iOS، ویندوز، لینوکس، Chrome OS، تلویزیون‌های هوشمند، انواع ستاپ‌باکس‌ها و کنسول‌های بازی سازگار است. MPEG-DASH در مرورگری سافاری پشتیبانی نمی‌شود و این خبر بدی برای کاربران اپل (آیفون، آیپد، اپل تی وی و سیستم‌عامل مکینتاش) است چون وابستگی این محصولات به مرورگر سافاری، استفاده از سرویس‌های استریمینگِ مبتنی بر پروتکل MPEG-DASH را سخت می‌کند.

 

کدام یک کیفیت بهتری ارائه می‌دهد؟

کیفیت این دو پروتکل در یک سطح است. اوایل، MPEG-DASH به خاطر پشتیبانی وسیع‌تر از کدک‌ها، می‌توانست در بیت‌ریت‌های پایین، کیفیت ویدیوی بهتری ارائه دهد؛ ولی اخیراً HLS با پشتیبانی از کدک HEVC/H.256 توانسته این تفاوت را کمرنگ کند. در مورد رزولوشن MPEG-DASH رزولوشون بالاتری از HLS ارائه می‌داد ولی اواخر سال 2017، با پشتیبانی HLS از رزولوشن 4K مجدداً در سطحی یکسانی قرار گرفتند. در شرایط کنونی، به لحاظ کیفی، تفاوت چندانی بین دو پروتکل وجود ندارد.

Video Protocol Usage 2019

Video Protocol Usage 2019

بالاخره کدام یک را انتخاب کنیم؟

انتخاب پروتکل استریمینگ، وابسته به چند مولفه است:

  • مقیاس‌پذیری؛
  • کدک‌های مورد نیاز؛
  • میزان تأخیر؛
  • لزوم استفاده از استریم با بیت‌ریت تطبیق‌پذیر.

انتخاب یک پروتکل استریمینگ، وابسته به نیاز شما است؛ پس اولین قدم، اولویت‌بندی نیازهاست. هر دو پروتکل، به لحاظ فناوری و کیفیت در یک سطح قرار دارند. HLS به سازگاری بیشتر معروف است؛ چون تقریباً از تمام دستگاه‌ها و مرورگرها پشتیبانی می‌کند و  MPEG-DASH به پشتیبانی از کدک‌های بیشتر معروف است. در ابتدا فقط MPEG DASH از رزولوشن 4K برای استریم‌ها پشتیبانی می‌کرد ولی اخیراً با پشتیبانی از این رزولوشن در پروتکل HLS، شکاف رقابتی کاهش یافته است.
تنها تفاوت بارزِ دو پروتکل، میزان پشتیبانی از دستگاه‌ها است که از این لحاظ HLS برنده است. در حال حاضر بیش از ۲ میلیارد کاربرِ iOS از HLS استفاده می‌کنند و اغلبِ آن‌ها از دریافت استریم‌های MPEG-DASH ناتوانند؛ مگر اینکه از مرورگری غیر از سافاری استفاده کنند. 
با جمع‌بندی آنچه گفتیم، HLS پروتکل مناسب‌تری برای استریمینگ ویدیو است.
کاویمو از دو فرمت MPEG-DASH و HLS پشتیبانی می‌کند.