پخش زنده HTTP یکی از پرکاربردترین پروتکل های پخش ویدئو است. اگرچه آن را HTTP live streaming می نامند، اما هم برای استریم درخواستی (زمانی که کاربر درخواست پخش ویدیویی را دارد) و هم برای پخش زنده استفاده می شود. HLS فایلهای ویدیویی را به فایلهای HTTP قابل دانلود کوچکتر تجزیه کرده و با استفاده از پروتکل HTTP تحویل میدهد. دستگاه های سرویس گیرنده این فایل های HTTP را بارگیری می کنند و سپس آنها را به صورت ویدیو پخش می کنند.
یکی از مزیت های پروتکل HLS یا استریم پخش زنده این است که تمام دستگاه های متصل به اینترنت از HTTP پشتیبانی می کنند و اجرای آن را نسبت به پروتکل های استریم که نیاز به استفاده از سرورهای خاصی دارند، ساده تر می کنند. مزیت دیگر این است که یک استریم HLS می تواند کیفیت ویدیو را بسته به شرایط شبکه و بدون وقفه در پخش افزایش یا کاهش دهد. به همین دلیل است که وقتی کاربر در حال تماشای ویدیو است، کیفیت ویدیو ممکن است در میانه پخش بهتر یا بدتر شود. این ویژگی بهعنوان «adaptive bitrate video delivery» یا «adaptive bitrate streaming» شناخته میشود و بدون آن، شرایط کند شبکه میتواند پخش ویدیو را به طور کلی متوقف کند. HLS توسط اپل برای استفاده در محصولاتش توسعه داده شد، اما اکنون در طیف گسترده ای از دستگاه ها استفاده می شود.
در گذشته، فناوری ویدئویی Adobe Flash روش اصلی ارائه ویدئو از طریق اینترنت بود. با این حال، در سالهای اخیر، تغییر عمدهای در دنیای ویدیوهای آنلاین رخ داده است. به طور خاص، ویدئوهای آنلاین ارائه شده توسط پروتکل هایی مانند پخش HLS و پخش کننده های ویدئویی HTML5 به طور فزاینده ای جایگزین پروتکل Adobe Flash شده اند.
برای تولیدکنندگان محتوا، فناوریهای پخش زنده HTML5 و HLS مزایای عمدهای را نیز به همراه دارند. با این حال، برخی از معایب قابل توجه در این حوزه وجود دارد. به طور مثال جایگزینی سیستمها و فناوریهای قدیمی با استانداردهای جدید، ممکن است در همه پلتفرمهای استریم یکسان عمل نکنند و نیاز داشته باشند که زمان و تلاش زیادی صرف شود.
تصویر(1)
Streaming چیست؟
استریم راهی برای ارائه رسانه های دیداری و صوتی به کاربران از طریق اینترنت است. این کار با ارسال مداوم فایل رسانه ای به دستگاه کاربر به جای ارسال یکباره، انجام می شود. فایل اصلی در سرور مبدا اجرا می شود. در مورد پخش زنده، تصویر در زمان واقعی با دوربین یا میکروفون از راه دور در دسترس خواهد بود. به این ترتیب، ویدیو یا صدا می تواند بدون اینکه دستگاه کاربر ابتدا کل فایل را دانلود کند، پخش شود.
HTTP چیست؟
HTTP یک پروتکل لایه application برای انتقال اطلاعات بین دستگاه های متصل به شبکه است. هر وب سایت و برنامه ای که توسط کاربران عادی قابل دسترسی است، روی HTTP اجرا می شود. انتقال داده از طریق HTTP معمولا بر اساس درخواست ها و پاسخ ها انجام می شود.
با پخش استریم از طریق HTTP، الگوی استاندارد درخواست-پاسخ اعمال نمی شود. ارتباط بین کلاینت و سرور در طول مدت استریم باز باقی می ماند و سرور داده های ویدیویی را به دستگاه مشتری ارسال می کند تا مشتری مجبور نباشد هر بخش از داده های ویدیویی را درخواست کند.
پروتکل HLS یا استریم پخش زنده چگونه کار می کند؟
HLS یک پروتکل مهم برای پخش زنده است. روند پخش زنده که با تعداد زیادی از دستگاه ها و مرورگرها سازگار است، تقریبا شبیه مراحل زیر می باشد:
- دستگاه های ضبط کننده (دوربین، میکروفون و غیره) محتوا را ضبط می کنند.
- محتوا از دستگاه ضبط به یک رمزگذار ویدیو ارسال می شود.
- رمزگذار محتوا را از طریق RTMP به پلتفرم میزبانی ویدیو منتقل می کند.
- پلت فرم میزبانی ویدیو از HLS برای انتقال محتوا به یک پخش کننده ویدیوی HTML5 استفاده می کند.
این فرآیند به دو نرمافزار اصلی به نام های رمزگذار HLS ویدیوی زنده و پلتفرم میزبانی ویدیویی قدرتمند نیاز دارد. اگر پخش استریم با HLS را انتخاب کنید، باید مطمئن شوید که هر دو نرم افزار، پروتکل ها و ویژگی هایی را که به آنها اشاره شد ارائه می دهند. پخشکنندههای ویدیویی HTML5 که توسط HLS ارائه میشوند برای دستیابی به بیشترین مخاطب عالی هستند زیرا در جهان فراگیر شده اند.
بررسی اجمالی فنی HLS
ابتدا، پروتکل HLS یا استریم پخش زنده محتوای ویدئویی MP4 را با پسوند فایل ts. یا MPEG2 Transport Stream به قطعات کوتاه (10 ثانیه ای) تقسیم می کند. سپس، یک سرور HTTP استریم ها را ذخیره کرده و HTTP این کلیپهای کوتاه را در دستگاههایشان به بینندگان ارائه میدهد. HLS ویدیوی کدگذاری شده با کدک های H.264 یا HEVC/H.265 را پخش می کند. کدک یا Codec از دو کلمه coder و decoder تشکیل شده است. کدک های ویدیویی نرم افزاری است که ویدئوهای دیجیتال را فشرده و از حالت فشرده خارج می کند. کدک ویدیوی فشرده نشده را می گیرد و آن را به فرمت فشرده تبدیل می کند، بنابراین فضای کمتری را در هارد دیسک شما اشغال خواهد کرد.
سرور HTTP همچنین یک فایل شامل لیست پخش M3U8 (در این فایل آدرس ها و لینک های دسترسی به فایل های استریم قرار دارد) ایجاد می کند که به عنوان منبعی برای دسترسی به تکه های ویدیو عمل می نماید. به این ترتیب، حتی اگر قصد داشته باشید صرفا با یک کیفیت، ویدیویی را مشاهده کنید، لینک دسترسی به آن فایل در این لیست وجود خواهد داشت.
سوال مهمی که مطرح می شود این است که playback quality چگونه با پخش ویدیویی HLS کار می کند. با این پروتکل، نرمافزار پخشکننده ویدیویی مربوط به یک کاربر خاص (مانند پخشکننده ویدیویی HTML5) بدتر شدن یا بهبود شرایط شبکه را تشخیص میدهد. اگر یکی از این دو اتفاق افتاد، نرم افزار پخش کننده ابتدا فهرست پخش اصلی را می خواند و تعیین می کند که کدام ویدیو با کیفیت ایده آل قابل پخش است. سپس نرمافزار فایل با کیفیت خاص را بارگذاری می کند تا مشخص نماید کدام قسمت از ویدیو با نقطهای که بیننده در حال تماشای آن است مطابقت دارد.
اگرچه این موضوع ممکن است از نظر فنی پیچیده به نظر برسد، اما کل فرآیند کاملا یکپارچه انجام می شود. فرآیند پخش HLS به طور یکپارچه در پسزمینه انجام میشود. این توضیح فقط یک توضیح سریع است تا متوجه شوید که چه کاری در حین مشاهده استریم ویدیو رخ می دهد.
مزایای کلیدی HLS
تصویر(2)
یکی از مزایای کلیدی این پروتکل به ویژگی های سازگاری آن مربوط می شود. بر خلاف سایر فرمت های استریم، HLS با طیف گسترده ای از دستگاه ها و فایروال ها سازگار است. با این حال، زمان تأخیر (یا lag time) با پخش استریم زنده HLS در محدوده 15 تا 30 ثانیه است. به همین دلیل است که برای دریافت سریع استریم HLS باید از ابزارهای دیگری استفاده کنید.
وقتی صحبت از کیفیت به میان میآید، تطبیقپذیری باعث میشود پخش ویدیوی HLS در شرکت های ارائه دهنده سرویس استریم از هم متمایز شوند. در سمت سرور، سازندگان محتوا اغلب این گزینه را در اختیار دارند که باعث می شود همان استریم زنده را در تنظیمات با کیفیت چندگانه رمزگذاری کنند.
در این حالت بینندگان می توانند به صورت پویا بهترین گزینه موجود را با توجه به پهنای باند اینترنت خود در هر لحظه درخواست کنند. به عبارت دیگر، از تکه ای به تکه دیگر، کیفیت داده ها می تواند برای تناسب با قابلیت های مختلف دستگاه پخش متفاوت باشد. این مورد به بهترین شکل با یک مثال توضیح داده می شود. فرض کنید، در یک لحظه، یک ویدیوی کامل با کیفیت بالا را برای مشاهده کاربران در شبکه ارسال می کنید. لحظاتی بعد، یک کاربر تلفن همراه با کاهش سرعت اینترنت روبرو شده و کیفیت ارائه خدمات کاهش می یابد. با پخش HLS، این مشکل قابل رفع است و همچنان ویدیو استریم با کیفیتی پایین تر برای مخاطب موردنظر پخش خواهد شد.
ارائه دهنده ویدیو این کاهش پهنای باند را تشخیص می دهد و تکه های فیلم با کیفیت پایین تر را در این زمان ارائه می کند. پخش استریم HLS به شما امکان می دهد بهترین تجربه تماشای ویدیو را برای بینندگان خود ارائه دهید.
مقایسه پروتکل HLS یا استریم پخش زنده با سایر پروتکل های پخش ویدیو
چندین شرکت با استفاده از پروتکلهای پخش رسانه، راهحلهای پخش متنوعی را توسعه دادهاند. به طور کلی، هر یک از این راه حل ها نشان دهنده یک نوآوری جدید در زمینه پخش ویدیو است. با این حال، مشابه تقابل فرمت های HD-DVD و Blu-Ray، یا حتی قدیمیتر Betamax در مقابل VHS، همواره این رقابت ها در صنعت مذکور وجود داشته است. HLS در حال حاضر بهترین گزینه برای پروتکلهای رسانهای است، اما همیشه اینطور نبوده و تا ابد نیز چنین نخواهد ماند. در ادامه چندین پروتکل استریم در گذشته و حال مرور می شود تا نوآوری هایی را که امروزه پروتکل استریم HLS ارائه می دهد، بهتر درک کنید.
1. Adobe HTTP Dynamic Flash Streaming (HDS)
HDS که به عنوان استریم نسل بعدی Adobe شناخته می شود، در واقع مخفف HTTP Dynamic Streaming است. این پروتکل به طور خاص برای سازگاری با پلاگین پخش ویدیوی فلش Adobe در مرورگر طراحی شده است. بنابراین، پذیرش کلی HDS در مقایسه با HLS نسبتاً کم است.
برای دستگاهها و مرورگرهایی که از ویدیوی فلش پشتیبانی میکنند، HDS میتواند انتخابی قوی با تأخیر کمتر باشد. مانند HLS، پروتکل HDS فایل های رسانه ای را به تکه های کوچک تقسیم می کند. HDS همچنین ویژگی های رمزگذاری پیشرفته و DRM را ارائه می دهد. در نهایت، از روش فریم کلیدی پیشرفته برای اطمینان از همسویی تکهها با یکدیگر استفاده میکند.
2. پروتکل پیام رسانی بلادرنگ (RTMP)
Macromedia پروتکل RTMP را در اواسط دهه 2000 توسعه داد. این پروتکل برای پخش صدا و تصویر طراحی شده است. بسیاری این پروتکل را نمونه ساده فلش می شناسند. Macromedia بعداً با Adobe ادغام شد.
در دهه گذشته، RTMP روش پیشفرض پخش ویدئو در اینترنت بود. اما اخیرا با افزایش استفاده از HLS، کاربران شاهد کاهش استفاده از RTMP هستند. حتی امروزه، اکثر سرویسهای میزبانی استریم ویدیو با رمزگذارهای RTMP کار میکنند تا استریم های زنده را از طریق HLS دریافت کنند. به عبارت دیگر، پخشکنندهها استریم های خود را به پلتفرم ویدیویی انتخابی در قالب استریم RTMP تحویل میدهند. سپس، OVP (پلتفرم های ویدیویی آنلاین) معمولاً آن استریم ها را از طریق HLS به بینندگان ارائه میکنند.
در سالهای اخیر، حتی استفاده از استریم های RTMP به صورتی که توضیح داده شد، در حال محو شدن است. CDN های بیشتری (شبکه های تحویل محتوا) شروع به کاهش پشتیبانی RTMP کرده اند.
3. (Microsoft Smooth Streaming (MSS
مورد بعدی پروتکل استریم MSS (Microsoft Smooth Streaming) است. همانطور که از نام آن پیدا است، این نسخه توسط مایکروسافت به عنوان یک پروتکل پخش استریم ارائه شده است. Smooth Streaming همچنین از رویکرد نرخ بیت تطبیقی استفاده می کند و بهترین کیفیت موجود را در هر زمان ارائه می دهد.
این پروتکل اولین بار در سال 2008 معرفی شد، MSS یکی از اولین روشهای نرخ بیت تطبیقی بود که به عرضه عمومی رسید. در واقع، پروتکل MSS به پخش بازی های المپیک تابستانی 2008 در آن سال کمک کرد. پرکاربردترین پلتفرم MSS امروزه در Xbox One کاربرد دارد. با این حال، MSS یکی از پروتکل های استریمی است که امروزه از محبوبیت کمتری برخوردار می باشد.
4. پخش استریم تطبیقی پویا از طریق HTTP (MPEG-DASH)
جدیدترین نمونه در جنگ فرمت های پروتکل استریم، MPEG-DASH است. DASH مخفف عبارت Dynamic Adaptive Streaming (از طریق HTTP) می باشد.
MPEG-DASH دارای چندین مزیت می باشد. اول از همه، اولین پروتکل استاندارد بین المللی استریم مبتنی بر HTTP است. این ویژگی به تسریع روند پذیرش گسترده آن کمک کرده است. در حال حاضر، MPEG-DASH یک پروتکل نسبتا جدید بوده و به طور گسترده در صنعت پخش استفاده نمی شود. با این حال انتظار می رود طی چند سال آینده MPEG-DASH به استاندارد واقعی برای پخش استریم تبدیل شود.
یکی از مزایای اصلی MPEG-DASH این است که پروتکل آن از نوع "کدک آگنوستیک" می باشد. به عبارت ساده، این بدان معنی است که فایل های ویدئویی یا رسانه ای ارسال شده از طریق MPEG-DASH می توانند از انواع فرمت های رمزگذاری استفاده کنند. این فرمتهای رمزگذاری شامل استانداردهای پشتیبانی گسترده مانند H.264 (مانند پروتکل استریم HLS)، همچنین فرمتهای ویدیویی نسل بعدی مانند HEVC/H.265 و VP10 میشوند. مانند HLS، MPEG-DASH یک روش پخش ویدئو با نرخ بیت تطبیقی است.
5. پروتکل استریم بیدرنگ (RTSP)
پروتکل استریم بیدرنگ یا به اختصار RTSP پروتکلی است که به مدیریت و کنترل محتوای پخش زنده به جای انتقال واقعی محتوا کمک می کند. این یک "پروتکل لایه presentation" در نظر گرفته می شود. RTSP یک پروتکل بسیار قدیمی است که در اواخر دهه 1990 و با همکاری دانشگاه کلمبیا، Real Network و Netscape توسعه یافته است. RTSP به دلیل داشتن تأخیر بسیار کم استریم شناخته شده است، که مطمئناً یک مزیت می باشد.
متاسفانه، این پروتکل با تعدادی محدودیت همراه است. RTSP در مقابل RTMP، با دستگاهها و پخشکنندههای ویدیویی مدرن سازگار نیست. همچنین برخلاف RTMP، با پخش استریم از طریق HTTP در یک مرورگر وب نیز سازگار نمی باشد و مقیاسپذیری آن نیز آسان نمی باشد.
مزایای پخش ویدیوی از طریق پروتکل HLS یا استریم پخش زنده نسبت به سایر پروتکل ها
تصویر(3)
در این مقاله به مزیت اصلی HLS نسبت به سایر پروتکل ها از نظر کیفیت پخش ویدئو پرداخته شد. به طور خاص، پخشکنندهها میتوانند استریم ها را با استفاده از فرآیند نرخ بیت تطبیقی که توسط HLS پشتیبانی میشود، ارائه دهند. به این ترتیب، هر بیننده می تواند در هر لحظه بهترین استریم را با توجه به کیفیت اینترنت خود دریافت کند.
این پروتکل شامل تعدادی از مزایای کلیدی دیگر، از جمله زیرنویس همراه ویدیو، پخش همگامشده با استریم های متعدد، پشتیبانی خوب از استانداردهای تبلیغاتی، پشتیبانی از DRM و غیره است.
دستگاه ها و مرورگرهایی که از HLS پشتیبانی می کنند
پروتکل استریم HLS نیز به طور گسترده در چندین دستگاه و مرورگر پشتیبانی می شود. HLS در ابتدا محدود به دستگاههای iOS مانند iPhone، iPad و iPod Touch بود و اکنون توسط دستگاهها و مرورگرهای زیر پشتیبانی میشود:
- همه مرورگرهای گوگل کروم
- سافاری
- مایکروسافت اج
- دستگاه های iOS
- دستگاه های اندرویدی
- دستگاه های لینوکس
- دستگاه های مایکروسافت
- پلتفرم های macOS
اگر می خواهید به صورت آنلاین ویدیو تماشا کنید یا از پخش استریم HLS استفاده نمایید، HLS یک پروتکل تقریبا جهانی است و محدودیتی برای استفاده از آن نخواهید داشت.
چه زمانی از HLS استفاده کنید؟
در حال حاضر، به پخش کننده های ویدیو های استریم توصیه می شود از پروتکل HLS یا استریم پخش زنده استفاده کنند. این پروتکل بروزترین و پرکاربردترین پروتکل برای پخش رسانه است. برای مثال، در یکی از گزارش های تهیه شده، 45 درصد از پخشکنندگان بیان نمودند که از پخش استریم HLS استفاده میکنند. RTMP با 33 درصد در رتبه دوم قرار دارد و MPEG-DASH تنها توسط 7 درصد از پخش کننده ها استفاده می شود.
1. استریم در دستگاه های تلفن همراه
تصویر(4)
HLS برای پخش استریم در دستگاه های تلفن همراه و تبلت ها کاربرد زیادی دارد. با توجه به اینکه دستگاه های تلفن همراه اکنون بیش از 48 درصد از کل ترافیک اینترنت در سال 2021 را تشکیل می دهند، پروتکل HLS یا استریم پخش زنده برای این کاربران ضروری می باشد.
2. پخش استریم با پخش کننده ویدیویی HTML5
به یاد داشته باشید، ویدیوی HTML5 از RTMP یا HDS پشتیبانی نمیکند. بنابراین، اگر می خواهید از یک پخش کننده ویدیویی صرفا HTML5 استفاده کنید، HLS تنها انتخاب است. اگر در حال حاضر در استفاده از فناوری Flash تردید دارید، RTMP روش تحویل بهتری خواهد بود. اما فقط در صورتی که گزینه دیگری نداشته باشید.
3. تاخیر با HLS
استریم HLS یک نقطه ضعف دارد که در بالا به آن اشاره شد. HLS تاخیر نسبتاً بالاتری نسبت به برخی پروتکل های دیگر دارد. این بدان معنا است که استریم های HLS که اصطلاحا به آن پخش زنده می گویند، «زنده» نیستند.
به طور کلی، با پروتکل HLS یا استریم پخش زنده بینندگان می توانند تا 30 ثانیه (یا بیشتر، در برخی موارد) تاخیر را تجربه کنند. گفته می شود، این مشکل برای اکثر پخش کننده ها نیست. اکثریت قریب به اتفاق پخشهای زنده میتوانند این نوع تاخیر را بدون ایجاد هرگونه نارضایتی برای کاربر مدیریت کنند.
استریم ویدیو HTML5 با HLS
تصویر(5)
همانطور که در بالا ذکر شد، پروتکل HLS یا استریم پخش زنده به روشی مناسب برای پخش محتوا با پخش کننده های ویدیویی HTML5 تبدیل شده است. اگر با پخش ویدیویی HTML5 آشنایی ندارید، به یاد داشته باشید امروزه یکی از سه رویکرد اصلی برای پخش ویدیو است.
با HTML5، وب سایت شما از HTTP بومی برای پخش مستقیم رسانه استفاده می کند. برچسب های محتوا (به عنوان مثال، برچسب <video>) به عنوان بخشی از کد HTML گنجانده شده است. در نتیجه، تگ <video> یک پخش کننده ویدیویی بومی HTML5 در مرورگر شما ایجاد می کند. این تگ ها به پروتکل HTTP (HLS) اعلام می کنند که با این محتوا چه باید کرد. HTTP متن را نمایش می دهد و پخش کننده صوتی محتوای صوتی را پخش می کند.
برخی از پسرویس دهنده ها ممکن است ترجیح دهند از پخش کننده ویدیوی سفارشی استفاده کنند. خوشبختانه، جاسازی HLS خود در هر پخش کننده ویدیویی بسیار ساده است. برای مثال، اگر از JW Player استفاده میکنید، کافی است URL مرجع M3U8 را در کد پخشکننده ویدیوی خود وارد کنید. در زیر یک مثال تصویری وجود دارد:
var playerInstance = jwplayer("myElement");
playerInstance.setup({
file: "/assets/myVideoStream.m3u8",
image: "/assets/myPoster.jpg"
});
آینده پخش زنده
تصویر(6)
قبل از اتمام این مطلب، برخی از مزایای پروتکل HLS مرور خواهد شد. اول اینکه برای ارائه محتوای HLS نیازی به زیرساخت خاصی نیست. در واقع، هر وب سرور استاندارد یا CDN برای راه اندازی HLS مناسب است. از نظر عملکرد فنی، HLS ویدیوهای کدگذاری شده با کدک های H.264 یا HEVC/H.265 را پخش و سپس ویدیو را به بخش های 10 ثانیه ای تقسیم می کند. به یاد داشته باشید، تاخیر برای تحویل ویدیو، معمولا در محدوده 30 ثانیه است.
پروتکل HLS یا استریم پخش زنده شامل چندین ویژگی دیگر نیز می شود. برای مثال، HLS یک پروتکل استریم بیت تطبیقی است. این بدان معنی است که دستگاه مشتری و سرور به صورت پویا سرعت اینترنت کاربر را تشخیص می دهند و سپس کیفیت ویدیو را تنظیم می کنند.
در حالی که HLS یک استاندارد محبوب برای پخش زنده است، اما محبوبیت و میزان استفاده از آن به همین شکل باقی نخواهد ماند. انتظار می رود پروتکل های بهینه و سریعتر در سال های آینده به طور فزاینده ای محبوب شوند. با انجام این تغییر، تغییرات دیگری مانند انتقال از کدگذاری h.264 به h.265/HEVC غیر قابل تصور نیستند. این استاندارد، در طی فشردهسازی فایلهای بسیار کوچکتری را ارائه میکند که پخش زنده 4K را به یک ویژگی واقعی تبدیل خواهد کرد.