Networkآموزش

لایو استریم چیست و نحوه عملکرد آن چگونه است؟

استریم روشی برای انتقال داده است که برای تماشای ویدیو یا فایل های صوتی در اینترنت استفاده می شود. این روشی است برای ارائه یک فایل ویدئویی و استفاده از آن به طور همزمان. ببه لطف این تکنولوژی دستگاه های سرویس گیرنده نیازی به دانلود کل ویدیو قبل از شروع پخش آن ندارند. لایو استریم زمانی است که ویدیوی پخش شده به صورت بلادرنگ (Real-Time) از طریق اینترنت ارسال می شود، بدون اینکه ابتدا ضبط و ذخیره شود. امروزه، پخش‌ زنده در تلویزیون، بازی‌ های ویدیویی و همچنین ویدئو های رسانه‌های اجتماعی همگی می‌ توانند با استفاده از لایو استریم به صورت زنده پخش شوند.

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

اصطلاح لایو استریم معمولاً به پخش مستقیم اشاره دارد: ارتباط یک به چند که به طور همزمان برای چندین کاربر ارسال می شود. فناوری‌ های کنفرانس ویدیویی مانند Skype ،FaceTime و Google Hangouts Meet بر روی پروتکل‌ های ارتباطی RTC کار می‌ کنند تا پروتکل‌ هایی که توسط لایو استریم یک به چند استفاده می‌شوند.

لایو استریم در سطح فنی چگونه کار می کند؟

این مراحل اصلی است که در پشت صحنه در یک پخش زنده انجام می شود:

  • ضبط ویدیو
  • فشرده سازی
  • رمزگذاری
  • تقسیم بندی
  • توزیع شبکه تحویل محتوا (CDN)
  • CDN caching
  • رمزگشایی
  • پخش ویدیو

فیلمبرداری

لایو استریم با داده های ویدئویی خام شروع می شود یعنی اطلاعات بصری ضبط شده توسط دوربین. در دستگاه محاسباتی که دوربین به آن متصل است، این اطلاعات بصری به صورت داده های دیجیتالی نمایش داده می شود – به عبارت دیگر، 1s و 0s در عمیق ترین سطح.

فشرده سازی و رمزگذاری

در مرحله بعد، داده های ویدئویی تقسیم بندی شده، فشرده و کدگذاری می شوند. داده ها با حذف اطلاعات بصری اضافی فشرده می شوند. به عنوان مثال، اگر در فریم اول ویدیو، فردی را در حال صحبت با بک گراند خاکستری نشان می دهد، در صورتی که بک گراند در فریم های بعدی یکسان باشد پس زمینه خاکستری برای فریم های بعدی نیازی به رندر ندارد.

فشرده سازی ویدیو را مانند افزودن یک مبلمان جدید به اتاق نشیمن در نظر بگیرید. هر بار که یک صندلی یا میز جدید اضافه می شود، لازم نیست مبلمان کاملاً جدید بخرید. درعوض، می‌ توان چیدمان اتاق را تقریباً یکسان نگه داشت و هر بار فقط یک قطعه را تغییر داد و گاهی اوقات در صورت لزوم، تغییرات بزرگتری انجام داد. به طور مشابه، لازم نیست هر فریم از استریم ویدئو به طور کامل رندر شود، بلکه فقط قسمت هایی که فریم به فریم تغییر می کنند، مانند حرکت دهان یک فرد رندر شود کافی است.

رمزگذاری” به فرآیند تبدیل داده ها به فرمت جدید اشاره دارد. داده‌ های ویدئویی لایو استریم در فرمت دیجیتال کدگذاری می‌ شوند که دستگاه‌های مختلف آن را تشخیص می‌دهند. استاندارد های رایج رمزگذاری ویدیو عبارتند از:

  • H.264
  • H.265
  • VP9
  • AV1


تقسیم بندی

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

توزیع و ذخیره CDN

هنگامی که پخش زنده تقسیم بندی، فشرده و رمزگذاری شد (همه این ها فقط چند ثانیه طول می کشد)، باید در دسترس ده ها یا میلیون ها بیننده ای قرار گیرد که می خواهند آن را تماشا کنند. به منظور حفظ کیفیت بالا با حداقل تأخیر در حین ارائه استریم به چندین بیننده در مکان‌ های مختلف، یک CDN باید آن را توزیع کند.

CDN یک شبکه توزیع شده از سرور ها است که محتوا را از طرف یک سرور اصلی ذخیره و ارائه می کند. استفاده از CDN منجر به عملکرد سریع‌ تر می‌ شود، زیرا کوئری های کاربر دیگر نیازی نیست تمام راه را به سمت سرور اصلی طی کنند، بلکه می‌ توانند توسط یک CDN در نزدیکی کاربر رسیدگی شوند. رسیدگی به درخواست‌ ها و ارائه محتوا به این روش، بار کاری سرور مبدا را کاهش می‌دهد. در نهایت، CDN ها ارائه کارآمد محتوا به کاربران در سراسر جهان را ممکن می کنند، زیرا سرور ها در سراسر جهان به جای یک منطقه جغرافیایی واحد قرار دارند.

یک CDN همچنین هر بخش از لایو استریم را در کش خود به طور موقت ذخیره می کند، بنابراین بیشتر بینندگان لایو استریم را به جای اینکه از سرور مبدأ دریافت کنند، از حافظه پنهان CDN دریافت می کنند. این در واقع لایو استریم را به زمان واقعی نزدیک‌ تر می‌ کند، حتی اگر داده‌ های ذخیره‌شده در کش چند ثانیه عقب باشند، زیرا زمان رفت و برگشت (RTT) -به و از- سرور مبدا را کاهش می‌دهد.

رمزگشایی و پخش ویدئو

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

رمزگذاری ویدئو

یک مثال

فرض کنید آلیس با گوشی هوشمند خود قصد دارد با باب که در آن سوی کشور زندگی می کند، همراه با چند ده نفر دیگر از دوستانش، یک لایو برگزار کند. آلیس این کار را با چرخاندن دوربین گوشی روی صورت خود و گفتن “سلام!” آغاز می کند، اما چه اتفاقی باید بیفتد تا آن بخش «سلام» ویدیو به باب در آن سوی کشور و سایر افرادی که او را تماشا می کنند، برسد؟

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

اکنون برنامه‌ ای که آلیس استفاده می‌ کند، نسخه فشرده‌ شده و رمزگذاری‌ شده او را با گفتن «سلام» به CDN برنامه ارسال می‌ کند. خوشبختانه برای باب، یکی از سرور های CDN تنها چند مایل با خانه او فاصله دارد، بنابراین درخواست گوشی او برای اولین بخش از لایو استریم تقریباً بلافاصله پاسخ داده می شود. سایر بینندگان ممکن است بسته به موقعیت جغرافیایی خود تأخیر بیشتر یا کمتری نسبت به باب داشته باشند.

تلفن باب بخش ویدیو را رمزگشایی می کند و داده های فشرده شده را بازسازی می کند، به طوری که دیوار آشپزخانه آلیس در هر فریم ظاهر می شود و در نهایت، تنها چند ثانیه پس از گفتن “سلام” چهره آلیس در آشپزخانه اش در آن سوی کشور، روی گوشی باب ظاهر می شود و باب احوالپرسی او را می بیند و می شنود.

چرا CDN برای لایو استریم مهم است؟

پهنای باند: هر نقطه در یک شبکه تنها می‌تواند مقدار تعیین شده ای از داده‌ ها را در یک زمان ارسال کند. این اندازه گیری به عنوان “پهنای باند” شناخته می شود. اگر جریانی از داده ها به نقطه ای از شبکه برسد که در آن مقدار داده از ظرفیت آن بیشتر باشد، به این نقطه “choke point” می گویند، زیرا تحویل داده ها قطع می شود و سرعت آن کاهش می یابد. این شبیه به روشی است که ممکن است زمانی که اتومبیل های زیادی سعی می کنند از یک جاده تک لاین استفاده کنند، کاهش سرعت ترافیک رخ می دهد.

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

تحویل جهانی محتوا: از آنجایی که CDN ها در سراسر جهان توزیع می شوند، می توانند محتوا را به مخاطبان جهانی ارائه دهند. یک سرور اصلی در نیویورک نمی تواند به طور مؤثر محتوا را به مخاطبان در میلان ارائه دهد و این امر به ویژه در مورد محتوا های سنگین مانند ویدیو صادق است. با این حال، یک CDN می‌تواند محتوا را از هر نقطه‌ای در شبکه خود ارسال کند، به طوری که شخصی در میلان که یک لایو استریم از نیویورک را تماشا می‌کند، می‌تواند استریم را از سروری در میلان دریافت کند به‌ جای اینکه منتظر بماند تا تمام مسیر از نیویورک بارگیری شود.

تأخیر و کاهش RTT: ارائه جهانی محتوا با CDN با کاهش RTT (زمان رفت و برگشت) تأخیر را برای بینندگان لایو استریم کاهش می دهد. مسیر رفت و برگشت درخواست-پاسخ هم از نظر مسافت و هم از نظر زمان کوتاه‌ تر است، زیرا درخواست بیننده برای لایو استریم دیگر نباید به منبع اصلی استریم ارسال شود و داده‌ های استریم دیگر نیازی نیست از مبدا برگردد، این امر تأخیر ها را کاهش می‌دهد و کمک می‌کند لایو استریم به «لایو» نزدیک‌ تر شود.

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

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

ممکن است ارائه یک لایو استریم از کش مانند یک تناقض به نظر می رسد! اگر لایو استریم است، چگونه می توان آن را ذخیره کرد و چند ثانیه بعد تحویل داد؟ در حالی که درست است که یک لایو استریم ذخیره‌سازی شده در زمان واقعی از آن عقب می‌ ماند، اما باز هم سریع‌ تر از رفتن به سرور اصلی قابل دسترسی است. رفت و برگشت به سرور مبدا به قدری طول می کشد که استریم حتی بیشتر از حالت ذخیره شده تاخیر دارد. با ذخیره CDN، کاربران حداقل زمان تاخیر را تجربه می کنند.

چگونه Cloudflare لایو استریم را تسریع می کند؟

Cloudflare CDN از تکنیکی به نام شتاب استریم همزمان برای سرعت بخشیدن به پخش لایو استریم استفاده می کند. برخی از CDN ها نمی توانند یک قسمت ویدیویی را به بیش از یک کاربر ارائه دهند تا زمانی که بخش به طور کامل در کش ذخیره شود. با این حال، Cloudflare CDN می‌تواند این بخش‌ ها را به طور مستقیم به چندین بیننده در یک زمان در حال بارگذاری ارائه دهد و ثانیه‌های ارزشمندی از زمان انتظار را برای کاربران کاهش دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا