با رشد سریع فناوریهای زیرساخت شبکه و افزایش سرعت اینترنت، بسیاری از شبکههای اجتماعی، مانند اینستاگرام و کلابهاوس از سرویس پخش زنده (Live) برای ارتباط افراد با مخاطبان (فالورها) خود استفاده کردند. همچنین، بعد از شیوع ویروس کرونا (کووید 19) و اجباری شدن قرنطینه خانگی، بسیاری از کسبوکارها، مدارس و موسسات آموزشی نیز به استفاده از برنامههایی مانند Skype و Google Meet، برای برگزاری جلسات و کلاسهای آموزشی خود روی آوردند. شاید برایتان جالب باشد که بدانید پخش زنده چیست و چگونه انجام میشود.
در این مقاله با ما همراه باشید تا بهصورت کاملا فنی شما را با فناوری پخش زنده آشنا کنیم و نحوه ارائه این سرویس را از طریق CDN شرح دهیم.
پلتفرم پخش زنده (Live Streaming) چیست؟
استریمینگ (Streaming) روشی برای انتقال دیتا (data) است، که هنگام تماشای ویدئو یا فایل صوتی در اینترنت مورد استفاده قرار میگیرد. در این روش، فایل ویدئویی یا صوتی که قرار است بهصورت آنلاین پخش شود، بدون نیاز به ذخیره شدن در محل خاصی، بهصورت همزمان، با انتقال داده برای مخاطب پخش میشود. به کمک این فناوری، دستگاههای سرویسگیرنده (مخاطب) مجبور نیستند قبل از شروع پخش، کل فایل موردنظر را بارگیری (دانلود) کنند.
پخش زنده (Live Streaming) زمانی است که فایل صوتی یا ویدئویی استریمشده بدون نیاز به ضبط و ذخیره، از طریق اینترنت بهصورت همزمان (Real-Time) ارسال شود؛ پخش زنده تلویزیون، بازیهای ویدئویی استریمشده، و ویدئوهای شبکههای اجتماعی، همگی میتوانند از این پلتفرم استفاده کنند.
معمولا وقتی صحبت از پخش زنده میشود، بیشتر افراد فقط نوع ویدئویی آن را به یاد میآورند. اما، پخش زنده فایلهای صوتی، مانند موسیقی، پادکست و کنفرانس صوتی هم طرفداران خاص خود را دارد، که به ویژه در چند سال اخیر بسیار مورد توجه قرار گرفته است. برای مثال، در سال 2020 اپلیکیشن کلاب هاوس (Clubhouse) برای برگزاری جلسات و کنفرانسهای صوتی زنده منتشر شد که با استقبال چشمگیر افراد متخصص و شرکتهای مختلف روبرو شد. Clubhouse از اتاقهای گفتگوی زیادی تشکیل شده است که در آن گروهی از سخنرانان، ناظران و شنوندگان میتوانند برای صحبت با یکدیگر، گوش دادن به سخنرانی یا حتی شنیدن یک کنسرت زنده گرد هم آیند. بر خلاف دیگر بسترهای رسانههای اجتماعی، Clubhouse فقط از صدا استفاده میکند، که این صدا ضبط یا برای استفاده بعدی ذخیره نمیشود.
تفاوت استریم و پخش زنده چیست؟
تفاوت بین استریم معمولی و پخش زنده، مانند تفاوت بین دو بازیگر است که یکی از آنها متن حفظ شده را بیان میکند و دیگری بداههگویی میکند. در مورد بازیگر اول، محتوا از قبل ایجاد و ذخیره شده و سپس به مخاطب منتقل میشود. در مورد بازیگر دوم، مخاطب محتوا را در همان لحظهای که بازیگر ایجاد کرده، دریافت میکند – درست مانند پخش زنده.
اصطلاح پخش زنده معمولاً به پخش مستقیم اشاره دارد، یعنی ارتباطات یک به چند که بهطور همزمان به چندین مخاطب منتقل میشود. فناوریهای کنفرانس ویدئویی مانندSkype ، FaceTime و Google Hangouts Meet بهجای پروتکلهایی که توسط پخش مستقیم یک به چند مورد استفاده قرار میگیرند، روی پروتکلهای ارتباطات در زمان واقعی (RTC) کار میکنند.
پخش زنده در سطح فنی چگونه کار میکند؟
در پشت صحنه پخش زنده ویدئو، مراحل زیر به ترتیب اجرا میشوند:
- ضبط ویدئو
- فشردهسازی (Compression)
- کدگذاری (Encoding)
- تقسیمبندی (Segmentation)
- شبکه توزیع محتوا (CDN)
- CDN caching
- رمزگشایی (Decoding)
- پخش ویدئو
ضبط ویدئو
پخش زنده با دادههای خام ویدئویی شروع میشود، یعنی همان اطلاعات بصری که توسط دوربین ضبط میشود. در دستگاه محاسباتی که دوربین به آن متصل است، این اطلاعات بصری بهعنوان دادههای دیجیتالی نمایش داده میشود.
فشردهسازی و کدگذاری
در این مرحله، دادههای ویدئوییِ تقسیمبندی شده، فشردهسازی و کدگذاری میشوند. این دادهها با حذف اطلاعات بصری اضافی، فشرده میشوند. بهعنوان مثال، اگر در اولین فریم ویدئو شخصی در حال صحبت کردن با پسزمینه خاکستری نشان داده شود، پسزمینه خاکستری نیازی به رندر شدن (Render) در فریمهای بعدی، ندارد.
فشردهسازی ویدئو را میتوان مانند افزودن وسایل جدید به اتاق نشیمن در نظر گرفت. لازم نیست هر بار که صندلی یا میز جدید به اتاق نشیمن اضافه میشود، مبلمان کاملا جدید خریداری شود. در عوض میتوان چیدمان اتاق را تقریبا یکسان نگه داشت و فقط همان وسیله را اضافه کرد، و گهگاه در صورت لزوم تغییرات بزرگتری انجام داد. بهطور مشابه، لازم نیست هر فریم از استریم ویدئویی بهطور کامل رندر شود – بلکه کافی است فقط قسمتهایی که از فریمی به فریم دیگر تغییر میکنند، مانند حرکت دهان شخص، رندر شوند.
“کدگذاری” به فرایند تبدیل دادهها به فرمت جدید اشاره دارد. دادههای پخش زنده ویدئو در قالب دیجیتالی، که انواع مختلفی از دستگاهها آن را تشخیص میدهند، کدگذاری میشوند. استانداردهای رایج کدگذاری ویدئو عبارتند از:
- H.264
- H.265
- VP9
- AV1
تقسیمبندی
ویدئو شامل اطلاعات دیجیتالی زیادی است، به همین دلیل دانلود یک فایل ویدئویی بسیار بیشتر از دانلود یک فایل PDF یا عکس طول میکشد. از آنجایی که ارسال همه دادههای ویدئویی بهطور همزمان از طریق اینترنت عملی نخواهد بود، پخش ویدئو به چند قسمت کوتاهتر و به طول چند ثانیه تقسیم میشود.
توزیع CDN و Caching
پس از فشردهسازی، کدگذاری و تقسیمبندی (که همه این مراحل فقط چند ثانیه طول میکشد)، ویدئوی پخش زنده باید در اختیار دهها یا میلیونها بینندهای قرار گیرد که میخواهند آن را تماشا کنند. به منظور حفظ کیفیت بالا با حداقل تأخیر هنگام ارائه استریم به هزاران بیننده در مکانهای مختلف، بهترین گزینه این است که CDN آن را توزیع کند.
CDN شبکه توزیع شده از سرورهایی است که محتوا را به نمایندگی از یک سرور مبدأ، در چندین نقطه جغرافیایی ذخیره میکند. استفاده از CDN منجر به عملکرد سریعتر در ارائهی محتوا میشود، زیرا درخواستهای کاربر برای دریافت محتوا، دیگر نیازی به ارسال مستقیم به سرور مبدأ ندارد، بلکه این درخواستها توسط سرورهای CDN (یا همان PoPها) که به کاربر نزدیکتر هستند، پاسخ داده میشوند. رسیدگی به درخواستها و ارائه محتوا با این روش، حجم کار سرور مبدأ را کاهش میدهد.
همچنین، CDN تمامی قسمتهای ویدئوی پخش زنده را درون سرورهای Cache خود ذخیره میکند. بنابراین، بیشتر بینندگان ویدئوی پخش زنده را به جای سرور مبدأ از CDN دریافت میکنند. این امر باعث میشود زمان رفت و برگشت (RTT) به سمت سرور مبدأ کاهش پیدا کند و حتی اگر دادههای ذخیره شده چند ثانیه عقب باشند، پخش زنده به زمان واقعی (Real-Time) نزدیکتر شود.
کدگذاری و پخش ویدئو
CDN ویدئوی موردنظر را برای تمامی کاربرانی که میخواهند آن را تماشا کنند، ارسال میکند. دستگاه هر کاربر دادههای ویدئویی تقسیمبندی شده را دریافت، رمزگشایی و از حالت فشرده خارج میکند. سپس، پخشکننده مدیا روی دستگاه کاربر – که میتواند یک برنامه اختصاصی یا یک پخشکننده ویدئو در مرورگر باشد – دادهها را بهعنوان اطلاعات بصری تفسیر میکند و ویدئو را پخش میکند.
مثالی از پخش زنده
فرض کنید “آلیس” میخواهد بهصورت همزمان و زنده (لایو) با دوستانش، از طریق تلفن هوشمند خود ارتباط برقرار کند و “باب” یکی از دوستان “آلیس” است که از آن سوی کشور، با تلفن هوشمند خود وارد لایو او شده است. آلیس پخش زنده خود را اینگونه آغاز میکند: دوربین تلفن همراه خود را به سمت صورتش میگیرد و میگوید “سلام دوستان!”. چه اتفاقی باید بیفتد تا قسمت ویدئوی “سلام دوستان!” به باب در آن سوی کشور و سایر دوستان آلیس که همزمان در این نشست حضور دارند، برسد؟
ابتدا، تلفن هوشمند آلیس آن بخش کوچک ویدئو را کدگذاری و فشرده میکند. دیوار پشت سر او بهعنوان اولین فریم ویدئو ضبط میشود و از آنجایی که پسزمینه (دیوار) دیگر تغییری نمیکند، در فریمهای بعدی نیازی به ضبط و رندر مجدد ندارد.
حالا برنامهای که آلیس از آن استفاده میکند، نسخه فشرده و کدگذاری شده از فریم “سلام دوستان” را به CDN برنامه ارسال میکند. خوشبختانه، یکی از سرورهای CDN فقط چند مایل با خانه باب فاصله دارد، بنابراین درخواست تلفن هوشمند او برای اولین بخش از پخش زنده تقریبا بلافاصله پاسخ داده میشود. سایر بینندگان نیز بسته به موقعیت جغرافیایی آنها ممکن است تاخیر بیشتر یا کمتری را نسبت به باب تجربه کنند.
تلفن باب بخش ویدیو را رمزگشایی کرده و دادههای فشردهشده را بازسازی میکند، بهطوری که دیوار پشت سر آلیس در هر فریم ظاهر میشود. و سرانجام، تنها چند ثانیه پس از اینکه آلیس در اتاق خود در آن سوی کشور گفت “سلام دوستان”، چهره او در تلفن هوشمند باب ظاهر میشود و باب سلام و احوالپرسی او را میبیند و میشنود.
چرا استفاده از CDN برای پخش زنده مهم است؟
پهنای باند: هر نقطه اتصال در شبکه، مقدار مشخصی از داده را از خود عبور میدهد؛ این اندازهگیری بهعنوان “پهنای باند” (Bandwidth) شناخته میشود. اگر جریان دادهای به نقطهای در شبکه برسد که مقدار داده از ظرفیت آن فراتر رود، به این حالت “نقطه خفگی” (Choke Point) گفته میشود، زیرا تحویل دادهها اصطلاحا خفه شده و کند میشود. نقطه خفگی شبیه به نحوه کندشدن ترافیک است، که بسیاری از خودروها سعی میکنند از یک جاده یک طرفه، با عرض محدود، استفاده کنند.
اگر همه بینندگان بخواهند ویدئوی پخش زنده را فقط از طریق سرور مبدأ دریافت کنند، سرور مبدأ و زیرساخت شبکه اطراف آن به نقطه خفگی میرسند و جریان ارسال دادهها بهطور محسوسی کند میشود. اما، اگر بار اصلی انتقال جریان به CDN منتقل شود، نقطه خفگی حذف میشود.
تحویل جهانی محتوا: از آنجایی که CDNها در سراسر جهان توزیع شدهاند، میتوانند محتوا را به مخاطبان جهانی تحویل دهند. یک سرور مبدأ در نیویورک نمیتواند آنطور که باید محتوا را به مخاطبان در میلان ارائه دهد، این امر به ویژه در مورد محتواهای با حجم بالا، مانند ویدئو صدق میکند. اما، CDN میتواند محتوا را از هر نقطهای در شبکه خود ارسال و به مخاطب ارائه دهد. در این صورت، شخصی که در میلان میخواهد پخش زنده را از مبدأ نیویورک تماشا کند، میتواند به جای انتظار برای رسیدن دادهها از سرور نیویورک، آن را با تأخیر بسیار کمتری از نزدیکترین سرور به خانهاش دریافت کند.
حجم کار (Workload): پاسخ سرور به درخواستهای کاربر مبنی بر دریافت هر نوع محتوا، هزینه محاسباتی را برای سرور به همراه دارد. هر چقدر این درخواستها برای دریافت محتواهای سنگین، مانند دادههای ویدئویی بیشتر شود، میتواند سرور را تحت تأثیر قرار دهد و عملکرد آن را تضعیف کند. CDN از دهها یا صدها سرور استفاده میکند، که میتوانند حجم زیادی از کار را از سرور مبدأ برداشته و محاسبات را بین خودشان تقسیم کنند.
ذخیرهسازی (Caching): ویدئوی پخش زنده به بخشهای کوچکتر تقسیم میشود و CDN هر بخش از آن را ذخیره میکند. سپس، CDN بهجای دریافت دادهها از سرور مبدأ، بخشهای مورد نظر را از حافظه پنهان (Cache) سرورهای خود تحویل میدهد.
حالا ممکن است این سؤال پیش بیاید که اگر ویدئوی در حال پخش بهصورت زنده است، پس چگونه CDN آن را از حافظه پنهان پخش میکند؟ آیا ارائهی پخش زنده که باید بهصورت Real-Time باشد، با ذخیره شدن در حافظه پنهان و سپس ارائهی آن به مخاطب در تناقض نیست؟
برای پاسخ به این سوال باید گفت که درست است که پخش زنده ذخیره شده از حالت Real-Time عقبتر است، اما با اینحال نسبت به دریافت مستقیم دادههای پخش زنده از سرور مبدأ سریعتر عمل میکند. رفت و برگشت درخواست کاربر و پاسخ سرور آنقدر طول میکشد که پخش زنده مستقیم از حالت پخش زنده ذخیره شده عقبتر میافتد. با امکان ذخیرهسازی CDN، کاربران حداقل زمان تأخیر را برای تماشای ویدئوی پخش زنده تجربه میکنند.
سرویس پخش زنده اَبر دِراک
اَبر دِراک با توسعه زیرساخت شبکه توزیع محتوای خود، امکان ارائهی سرویس پخش زنده را با کمترین تأخیر برای مخاطبان سراسر جهان فراهم نموده است. سرویس پخش زنده اَبر دِراک برای ارائهی بهترین کیفیت تصویر به مخاطبان در نقاط مختلف جغرافیایی، براساس حجم درخواستها، میزان پهنای باند و تعداد بازدیدکنندگان، منابع ابری مورد نیاز را تخمین زده و در اختیار سرویسدهنده پخش زنده قرار میدهد. همچنین، این سرویس امکان کارگردانی و ویرایش تصاویر را حین استریم، با استفاده از نرمافزار OBS Studio فراهم میکند.
از آغاز سال 1398 و همزمان با شیوع ویروس کرونا، اَبر دِراک به منظور حفظ اهداف آموزشی و مذهبی و تداوم برقراری رویدادهای مربوطه، سرویس پخش زنده خود را در اختیار علاقهمندان به برگزاری کلاس و وبینارهای آموزشی قرار داده است. در پاییز سال 1400، امکان استفاده از این سرویس برای همهی کاربران اَبر دِراک، در پنل کاربری آنها قابل دسترس خواهد بود.
جهت آشنایی بیشتر با سرویس پخش زنده اَبر دِراک، به صفحه «استریم مدیا» مراجعه کنید.
امیدواریم با مطالعه کامل این مقاله، ضمن آشنایی با مفاهیم استریم مدیا و پخش زنده، تفاوت بین آنها را درک کرده و نحوهی عملکرد پخش زنده را متوجه شده باشید. اگر شما هم نیاز به ارائهی محتوای پخش زنده دارید و میخواهید محتوای صوتی یا تصویری خود را با حداقل تأخیر و سریعترین زمان ممکن با مخاطبان خود به اشتراک بگذارید، استفاده از سرویس استریم مدیا را به شما پیشنهاد میکنیم.
جهت کسب اطلاعات بیشتر، با ما تماس بگیرید.