تکامل تکنولوژی و گسترش اینترنت، نوآوریهایی نهتنها در صنایع و کسبوکارهای مختلف، بلکه در زندگی روزمره کاربران اینترنت به وجود آورده است. در حال حاضر لایو استریم یا همان پخش زنده یکی از کاربردیترین سرویسها برای کلیه افراد از دانشآموزان یک موسسه آموزشی گرفته تا کارکنان بزرگترین کسبوکارها محسوب میشود. اگر قصد دارید با جنبههای فنی سرویس لایو استریمینگ آشنا شوید، این مقاله برای شما نوشته شده است. در مطلب پیش رو به شما میگوییم لایو استریم چیست و نحوه ارائه این سرویس از طریق CDN را برایتان شرح میدهیم.
لایو استریمینگ چیست؟
استریمینگ (Streaming) روشی برای انتقال دادهها است که برای تماشای ویدئو در اینترنت استفاده میشود. به عبارت دیگر، سرویس پخش زنده یا Live streaming این امکان را برای شما فراهم میکند که ویدئو را بهصورت لحظهای پخش یا تماشا کنید. بهاینترتیب فایل ویدئویی یا صوتی که قرار است بهصورت آنلاین پخش شود، بدون نیاز به ذخیره شدن در یک محل خاص، بهصورت همزمان، با انتقال داده برای مخاطب پخش میشود. با کمک این فناوری، دستگاههای سرویسگیرنده (مخاطب) مجبور به دانلود کل فایل قبل از شروع پخش نیستند. در لایو استریم محتوای نمایش داده شده قابل ویرایش نیستند و مخاطبان محتوای خام را دریافت میکنند.
بررسی تفاوت لایو استریم و پخش معمولی
لایو استریمینگ زمانی است که ویدئوی پخششده بدون اینکه ابتدا ضبط و ذخیره شود، بهصورت لحظهای از طریق اینترنت برای مخاطب ارسال میشود. برخلاف پخش معمولی (Regular streaming) که محتوای از پیش ضبط شده ویرایش و سپس به مخاطب نمایش داده میشود. برای درک بهتر تفاوت پخش معمولی و پخش زنده دو بازیگر را در نظر بگیرید که یکی دیالوگها را حفظ کرده و دیگری بداههگویی میکند.
در مورد بازیگر اول، محتوا از قبل ایجاد و ذخیره شده و سپس به مخاطب منتقل میشود. اما در مورد بازیگر دوم، محتوا دقیقا همان لحظه که توسط بازیگر ایجاد میشود، به مخاطب میرسد. اتصالات در لایو استریمینگ به صورت یک به چند است؛ یعنی محتوا بهطور همزمان برای چندین کاربر ارسال میشود. فناوریهای کنفرانس ویدئویی مانند Skype ،FaceTime و Google Hangouts Meet بهجای پروتکلهایی که توسط پخش مستقیم یک به چند مورد استفاده قرار میگیرند، روی پروتکلهای ارتباطات در زمان واقعی (RTC) کار میکنند.
نحوه عملکرد Live Stream چگونه است؟
برای اجرای هر لایو استریم چندین فرایند فنی باید انجام شود که در ادامه به بررسی دقیقتر هرکدام از آنها میپردازیم:
1. ضبط ویدئو (Video capture)
لایو استریمینگ با دادههای ویدئویی خامی شروع میشود که همان اطلاعات بصری گرفتهشده با دوربین است. در دستگاههایی مانند موبایل، تبلت یا لپتاپ که دوربین به آن متصل است، این اطلاعات بصری بهعنوان دادههای دیجیتالی نمایش داده میشود.
2. فشردهسازی (Compression)
بعد از ضبط ویدئو، دادههای ویدئویی تقسیمبندیشده فشردهسازی و سپس کدگذاری میشوند. این دادهها با حذف اطلاعات بصری اضافی فشرده میشوند. بهعنوان مثال، اگر در اولین فریم ویدئو، شخصی در حال صحبت کردن با پسزمینه خاکستری نشان داده شود، پسزمینه خاکستری نیازی به رندر شدن (Render) در فریمهای بعدی ندارد.
فشردهسازی ویدئو را میتوان مانند افزودن وسایل جدید به اتاق نشیمن در نظر گرفت. با اضافه شدن یک وسیله جدید به اتاق، نیازی به تغییر کل وسایل نیست. در عوض میتوان چیدمان اتاق را تقریبا یکسان نگه داشت و فقط همان وسیله را اضافه کرد؛ البته گاهی اوقات و در صورت لزوم تغییرات بزرگتری نیز نیاز است که انجام شود. بهطور مشابه، لازم نیست هر فریم از استریم ویدئویی بهطور کامل رندر شود، بلکه کافی است فقط قسمتهایی که از فریمی به فریم دیگر تغییر میکنند، مانند حرکت دهان شخص رندر شوند.
3. کدگذاری (Encoding)
کدگذاری به فرایند تبدیل دادهها به فرمت جدید اشاره دارد. دادههای پخش زنده ویدئو به فرمت دیجیتالی که انواع مختلفی از دستگاهها آن را تشخیص میدهند، کدگذاری میشوند. استانداردهای رایج کدگذاری ویدئو عبارتاند از:
- H.264
- H.265
- VP9
- AV1
4. تقسیمبندی (Segmentation)
ویدئو شامل اطلاعات دیجیتالی زیادی است و به همین دلیل دانلود یک فایل ویدئویی بسیار بیشتر از دانلود یک فایل PDF یا عکس طول میکشد. ازآنجاییکه ارسال همه دادههای ویدئویی بهطور همزمان از طریق اینترنت عملی نیست، پخش ویدئو به چند قسمت کوتاهتر و به طول چند ثانیه تقسیم میشود.
5. توزیع CDN و Caching
پس از فشردهسازی، کدگذاری و تقسیمبندی (که همه این مراحل فقط چند ثانیه طول میکشد)، ویدئوی پخش زنده باید در اختیار دهها یا میلیونها بینندهای قرار گیرد که میخواهند آن را تماشا کنند. بهترین گزینه برای توزیع به منظور حفظ کیفیت بالا با حداقل تأخیر هنگام ارائه استریم به چندین بیننده در مکانهای مختلف، استفاده از CDN یا شبکه توزیع محتوا است.
CDN یک شبکه توزیعشده از سرورهایی است که محتوا را به نمایندگی از یک سرور مبدأ، در چندین نقطه جغرافیایی ذخیره و ارائه میکند. استفاده از CDN منجر به عملکرد سریعتر در ارائه محتوا میشود؛ زیرا درخواستهای کاربر برای دریافت محتوا، دیگر نیازی به ارسال مستقیم به سرور مبدأ ندارد، بلکه این درخواستها توسط سرورهای CDN (یا همان PoPها) که به کاربر نزدیکتر هستند، پاسخ داده میشوند. رسیدگی به درخواستها و ارائه محتوا با این روش، حجم کار سرور مبدأ را کاهش میدهد.
همچنین CDN تمامی قسمتهای ویدئوی پخش زنده را درون سرورهای Cache خود ذخیره میکند. بنابراین، بیشتر بینندگان ویدئوی پخش زنده را بهجای سرور مبدأ از CDN دریافت میکنند. این امر باعث میشود زمان رفت و برگشت (RTT) به سمت سرور مبدأ کاهش پیدا کند و حتی اگر دادههای ذخیره شده چند ثانیه عقب باشند، پخش زنده به زمان واقعی (Real-Time) نزدیکتر شود.
6. رمزگشایی (Decoding) و پخش ویدئو
CDN لایو استریم را برای تمامی کاربرانی که میخواهند آن را تماشا کنند، ارسال میکند. دستگاه هر کاربر دادههای ویدئویی تقسیمبندی شده را دریافت، رمزگشایی و از حالت فشرده خارج میکند. سپس پخشکننده مدیا روی دستگاه کاربر – که میتواند یک برنامه اختصاصی یا یک پخشکننده ویدئو در مرورگر باشد – دادهها را بهعنوان اطلاعات بصری تفسیر کرده و ویدئو را پخش میکند.
درک عملکرد لایو استریم با یک مثال
فرض کنید علی میخواهد بهصورت همزمان و زنده (لایو) با دوستانش، از طریق تلفن هوشمند خود ارتباط برقرار کند. امیر یکی از دوستان علی است که در یک شهر یا کشور دیگر، با تلفن هوشمند خود وارد لایو او شده است. علی برای شروع پخش زنده، دوربین تلفن همراه خود را به سمت صورتش میگیرد و به دوستانش سلام میدهد. چه فرایندهایی انجام میشود تا امیر و سایر دوستان علی که در یک شهر یا کشور دیگر هستند و در این لایو حضور دارند، تصویر علی را میبینند و سلام او را میشنوند؟
ابتدا تلفن هوشمند علی آن بخش کوچک ویدئو (یعنی سلام) را کدگذاری و فشرده میکند. دیوار پشت سر او بهعنوان اولین فریم ویدئو ضبط میشود و ازآنجاییکه پسزمینه (دیوار) دیگر تغییری نمیکند، در فریمهای بعدی نیازی به ضبط و رندر مجدد ندارد.
حالا برنامهای که علی از آن استفاده میکند، نسخه فشرده و کدگذاریشده از فریم «سلام» را به CDN برنامه ارسال میکند. خوشبختانه، یکی از سرورهای CDN فقط چند کیلومتر با خانه امیر فاصله دارد؛ بنابراین درخواست تلفن هوشمند او برای اولین بخش از پخش زنده تقریبا بلافاصله پاسخ داده میشود. سایر بینندگان نیز بسته به موقعیت جغرافیایی آنها ممکن است تاخیر بیشتر یا کمتری را نسبت به امیر تجربه کنند.
تلفن امیر بخش ویدیو را رمزگشایی کرده و دادههای فشردهشده را بازسازی میکند؛ بهطوری که دیوار پشت سر علی در هر فریم ظاهر میشود. سرانجام فقط چند ثانیه پس از اینکه علی در اتاق خود در آن سوی کشور گفت «سلام»، چهره او در تلفن هوشمند امیر ظاهر میشود و امیر سلام و احوالپرسی او را میبیند و میشنود.
چرا CDN برای لایو استریم مهم است؟
شبکه توزیع محتوا یا CDN شبکهای از سرورهای متصل به هم در موقعیتهای جغرافیایی مختلف است که انتقال دادهها از سرور مبدا به کاربر نهایی را سرعت میبخشد. در ادامه به بررسی دلایل اهمیت استفاده از CDN در سرویسهای لایو استریمینگ میپردازیم:
پهنای باند؛ جلوگیری از کند شدن سرعت تحویل دادهها
هر نقطه اتصال در شبکه، فقط مقدار مشخصی از دادهها را در یک زمان از خود عبور میدهد؛ این اندازهگیری بهعنوان «پهنای باند» (Bandwidth) شناخته میشود. به حالتی که جریان دادهای به نقطهای در شبکه برسد که مقدار داده از ظرفیت آن فراتر رود، «نقطه خفگی» (Choke Point) میگویند؛ زیرا تحویل دادهها اصطلاحا خفه شده و کند میشود. نقطه خفگی شبیه به نحوه کند شدن ترافیک در خیابان است که بسیاری از خودروها سعی میکنند از یک جاده یک طرفه با عرض محدود استفاده کنند.
اگر همه بینندگان یک لایو استریم ویدئو را فقط از طریق سرور مبدأ دریافت کنند، سرور مبدأ و زیرساخت شبکه اطراف آن به نقطه خفگی میرسند و جریان ارسال دادهها بهطور محسوسی کند میشود. اما اگر بار اصلی انتقال جریان به CDN منتقل شود، نقطه خفگی حذف خواهد شد.
تحویل جهانی محتوا؛ تحویل محتوا از نزدیکترین سرور به مخاطب
ازآنجاییکه CDNها در سراسر جهان توزیع شدهاند، میتوانند محتوا را به مخاطبان جهانی تحویل دهند. یک سرور مبدأ در نیویورک نمیتواند آنطور که باید محتوا را به مخاطبان در میلان ارائه دهد؛ این امر به ویژه در مورد محتواهای با حجم بالا مانند ویدئو صدق میکند. اما CDN میتواند محتوا را از هر نقطهای در شبکه خود ارسال و به مخاطب ارائه دهد. در این صورت، شخصی که در میلان میخواهد پخش زنده را از مبدأ نیویورک تماشا کند، بهجای انتظار برای رسیدن دادهها از سرور نیویورک، آن را با تأخیر بسیار کمتری از نزدیکترین سرور به خانهاش دریافت خواهد کرد.
کاهش RTT و تاخیر
تحویل جهانی محتوا با CDN با کاهش RTT (زمان رفت و برگشت) تاخیر را برای مخاطبان لایو استریمینگ کاهش میدهد. با استفاده از CDN، رفت و برگشت درخواست-پاسخ هم از نظر زمانی و هم از بعد مسافت کوتاهتر میشود؛ زیرا درخواست بیننده برای لایو استریم به سرور مبدا ارسال نمیشود و دادههای پخش زنده نیز از سرور مبدا ارسال نمیشوند. بهاینترتیب تاخیرها کاهش پیدا میکند و بینندگان سریعتر دادههای لایو استریمینگ را دریافت و آن را مشاهده میکنند.
تقسیم حجم کاری (Workload) بین چندین سرور
پاسخ سرور به درخواستهای کاربر مبنی بر دریافت هر نوع محتوا، هزینه محاسباتی را برای سرور به همراه دارد. هر چقدر این درخواستها برای دریافت محتواهای سنگین، مانند دادههای ویدئویی بیشتر شود، سرور نیز بیشتر تحت تأثیر قرار میگیرد و عملکردش ضعیفتر میشود. CDN از دهها یا صدها سرور استفاده میکند که میتوانند حجم زیادی از کار را از سرور مبدأ برداشته و محاسبات را بین خودشان تقسیم کنند.
ذخیرهسازی (Caching)
ویدئوی پخش زنده به بخشهای کوچکتر تقسیم میشود و CDN هر بخش از آن را ذخیره میکند. سپس CDN بهجای دریافت دادهها از سرور مبدأ، بخشهای مورد نظر را از حافظه پنهان (Cache) سرورهای خود تحویل میدهد.
حالا ممکن است این سؤال پیش بیاید که اگر ویدئوی در حال پخش بهصورت زنده است، پس چگونه CDN آن را از حافظه پنهان پخش میکند؟ آیا ارائه پخش زنده که باید بهصورت Real-Time باشد، با ذخیره شدن در حافظه پنهان و سپس ارائه آن به مخاطب در تناقض نیست؟
برای پاسخ به این سوال باید گفت: درست است که پخش زنده ذخیرهشده از حالت Real-Time عقبتر است، بااینحال نسبت به دریافت مستقیم دادههای پخش زنده از سرور مبدأ سریعتر عمل میکند. رفت و برگشت درخواست کاربر و پاسخ سرور آنقدر طول میکشد که پخش زنده مستقیم از حالت پخش زنده ذخیرهشده عقبتر میافتد. با امکان ذخیرهسازی CDN، کاربران حداقل زمان تأخیر را برای تماشای ویدئوی پخش زنده تجربه میکنند.
مزایای Live Stream چیست؟
سرویسهای پخش زنده کاربردهای متعددی برای طیف وسیعی از افراد جامعه از اینفلوئنسرها یا صاحبان کسبوکارهای کوچک برای تبلیغ محصولات و خدمات گرفته تا معلمها و اساتید دانشگاه برای برگزاری کلاسهای آنلاین دارند. از جمله مزایای لایو استریمینگ که بسیاری از افراد را به استفاده از آن ترغیب کرده است، به موارد زیر میتوانیم اشاره کنیم:
- هزینه پایین: برای استفاده از سرویس پخش زنده به غیر از یک موبایل هوشمند، لپتاپ یا سایر تجهیزات به هیچ چیز دیگری احتیاج ندارید.
- فرصت عالی برای دستیابی به مخاطبان بیشتر: اگر قصد برگزاری یک رویداد حضوری را داشته باشید، نمیتوانید افرادی بیشتر از ظرفیت مکان مورد نظرتان دعوت کنید. سرویسهای لایو استریمینگ این امکان را برایتان فراهم میکنند تا با افراد زیادی ارتباط برقرار کنید؛ برای این کار فقط کافی است لینک استریمینگ ویدئوی خود را با دیگران به اشتراک بگذارید. بهعلاوه، افراد از سراسر جهان میتوانند بهراحتی از خانه خود در رویدادتان شرکت کنند.
- محدود نبودن پخش زنده به صدا و تصویر: سرویس پخش زنده علاوهبر پخش ویدئو و تصویر، طیف گستردهای از انواع رسانهها از جمله متن، تصویر یا حتی چت زنده را در دسترس کاربران قرار میدهد.
توسعه کسبوکار و درآمدزایی با سرویس پخش زنده ابر دراک
در این مقاله به بررسی سرویس لایو استریمینگ و نحوه عملکرد آن پرداختیم. اگر شما هم به ارائه محتوای پخش زنده نیاز دارید و میخواهید محتوای صوتی و تصویری خود را با کمترین تاخیر با مخاطبان خود به اشتراک بگذارید، سرویس لایو استریمینگ ابر دراک را به شما پیشنهاد میکنیم. ابر دراک با توسعه زیرساخت شبکه توزیع محتوای خود، امکان ارائه سرویس پخش زنده را با کمترین تأخیر برای مخاطبان سراسر جهان فراهم کرده است.
سرویس لایو استریمینگ ابر دراک برای ارائه بهترین کیفیت تصویر به مخاطبان در نقاط مختلف جغرافیایی، بر اساس حجم درخواستها، میزان پهنای باند و تعداد بازدیدکنندگان، منابع ابری مورد نیاز را تخمین زده و در اختیار سرویسدهنده پخش زنده قرار میدهد. برای بهرهمندی از این مزایا استفاده از سرویس پخش زنده ابر دراک را به شما پیشنهاد میکنیم. چنانچه هرگونه سوالی در این زمینه دارید، از طریق تماس با شماره تلفن 02191014197 با تیم پشتیبانی ما در تماس باشید.
منابع: CloudFlare | DataProt