Съдържание[Крия][Покажи]
Има доста прилична възможност да сте предавали нещо, ако сте прекарали известно време онлайн.
Стриймингът е една от най-честите употреби на най-известните приложения в интернет, независимо дали става дума за YouTube, Spotify, Netflix или стотици други.
Въпреки това, като се има предвид колко обичайно е стриймингът, лесно е да го приемете за даденост. Например: Какво точно е стрийминг?
Всеки медиен материал, независимо дали на живо или на запис, който се изпраща по интернет до компютри и мобилни устройства и се възпроизвежда в реално време, се нарича стрийминг.
Често срещаните видове стрийминг материали включват подкасти, уебкастове, филми, телевизионни предавания и музикални видеоклипове.
Мултимедийни елементи като музика, видео и други видове се планират и прехвърлят в последователни пакети данни, така че да могат да бъдат предавани незабавно.
Подходящо устройство, достъп до услуга или приложение за стрийминг и бърза, надеждна високоскоростна интернет връзка са всичко, от което се нуждаете, за да стриймвате.
Забележка: Ще използваме услуга за поточно видео като наш пример.
Тази публикация ще разгледа задълбочено системния дизайн на услугата за стрийминг и ключовите фактори, които трябва да се вземат предвид при разработването на приложения за стрийминг на видео.
Системни изисквания
Сред най-популярните услуги за видео стрийминг в света са YouTube и Netflix. За да подобрят потребителското изживяване, тяхната архитектура включва редица елементи.
Такава услуга включва популярни филми, фактуриране, базирани на AI системи за препоръки и функция за гледане по-късно, но ние ще се концентрираме върху основните елементи.
Основни качества
Включихме следните възможности в нашата концепция за a видео стрийминг обслужване:
- Създателите на съдържание могат да публикуват видеоклипове.
- Зрителите могат да използват много устройства за гледане на видеоклипове (мобилни устройства, телевизори и др.).
- Във видеоклипове потребителите могат да отбелязват, харесват или не харесват.
- Заглавията на видеоклиповете могат да се използват за тяхното търсене.
- За да покаже тази статистика на потребителите, системата може да съхранява гледания, харесвания и нехаресвания.
Системни цели
- Не трябва да има никакво буфериране, така че зрителите да могат да гледат видеоклипове в реално време.
- Съхранението за видео трябва да е надеждно. Не трябва да губите видеоклиповете, които сте качили.
- С увеличаване на потребителите системата трябва да бъде мащабируема.
- Ниската латентност и високата достъпност трябва да бъдат характеристики на системата. В тази ситуация последователността не е толкова важна, защото е добре потребителят да изчака известно време, преди да види прясно изпратен филм.
Един сървър не може да се справи с обема данни, тъй като системата трябва редовно да управлява силен трафик. За обслужване на системата ще се използва група сървъри.
Не трябва да има забележими въздействия върху скоростта за клиентите, дори ако един сървър се срине.
Архитектура на високо ниво
Програмата за поточно видео може да приеме един от три различни вида заявки:
- Качи (пиши)
- Търсене (четене)
- Преглед (четене)
Тъй като заявките за четене (търсене и преглед) често са няколко пъти по-чести от заявките за писане (качване), всяка от тях се обработва от отделен клъстер от сървъри.
Тъй като програмата изисква интензивно четене, ще трябва да настроите повече сървъри, които да обработват заявки за четене, отколкото качвания.
Всяка заявка, направена от клиент, се насочва към правилната микроуслуга от балансиране на натоварването когато се получи.
Услуга за качване
Услугата за качване, която обработва видеоклипа, качва го на Open Connect сървъри и го прави достъпен за всички потребители, изпълнява заявка за качване.
Услуга за търсене
Балансиращият натоварване изпраща заявката за търсене до микроуслугата за търсене, която след това я изпраща до еластичното търсене на Netflix. Клиентът получава отговора на еластичното търсене.
Еластичното търсене, невероятно мащабируема търсачка с отворен код с пълен текст, се използва от Netflix за търсене в милиони видеоклипове.
Еластичното търсене се използва от Netflix за анализ на операциите за обслужване на клиенти.
Преглед на услугата
По-голямата част от заявките за преглед няма да бъдат изпратени до балансиращото натоварване или сървърите на Netflix. Вместо това потребителите ще се свързват с местни интернет доставчици и ще се захранват директно от най-близкия Open Connect сървър.
Ако обаче заявеното видео не е достъпно, то ще бъде изпратено до балансиращото натоварване и микроуслугата за изглед.
След това видеото се търси в базата данни с метаданни, извлича се от пътя, посочен в метаданните, и се предава на клиента.
Разбира се, тази техника включва латентност, поради което практически всички заявки за преглед се предоставят чрез Open Connect.
Качете видеоклипове
Основната цел на YouTube е да качи филм или видеоклип. Услугата за стрийминг на видео трябва да преодолее редица пречки, преди да направи видеоклип достъпен за своите потребители.
Поддържане на части
Всеки изпратен видеоклип ще бъде разделен на множество по-малки файлове, вместо да се съхранява като един огромен файл.
Това е от съществено значение, тъй като производителите на съдържание могат да изпращат огромни видеоклипове. Единичен голям файл може да отнеме известно време за обработка или поточно предаване.
Зрителят няма да трябва да изтегля цялото видео, за да го възпроизведе, ако е запазено и му е предоставено на части.
За да се гарантира, че има малко забавяне между частите и че потребителят има гладко изживяване при гледане, клиентът първо ще поиска първата част от сървъра и след това ще поиска следващата част, докато тази част се възпроизвежда.
Обработка на опашка
Всеки видеоклип има многобройни части и Netflix ще използва няколко едновременни работници, за да ги анализира, поради което е необходима опашка за обработка. Чрез добавянето им към опашката това става по-лесно.
Задачите ще бъдат събрани от работниците (или енкодерите, които ще разгледаме по-нататък), кодирани в различни формати и след това съхранени в разпределеното файлово хранилище.
Video Encoding
От решаващо значение е да конвертирате и запазвате видео частите в няколко формата, така че зрителите да имат достъп до тях, използвайки технологията и интернет връзката, които работят най-добре за тях.
Видеото може да се гледа на лаптоп, телефон, телевизор или други джаджи от зрителите. Оптималните формати за различните устройства се различават един от друг.
По подобен начин различни зрители могат да използват различни честотни ленти за достъп до интернет.
Някои зрители биха могли да предават поточно филми с висока разделителна способност с лекота в зависимост от скоростта на тяхната интернет връзка или честотна лента, докато тези с по-малка честотна лента ще могат да предават поточно нискокачествени видеоклипове много по-лесно.
Отворете Connect
Когато използвате браузъра си, за да поискате Netflix.com, вашият ISP (доставчик на интернет услуги) наистина е помолен да установи връзка между вашия компютър и сървъра на Netflix.
Вашият интернет доставчик се свързва с IP адреса на Netflix от ваше име и ви връща резултата. Публиката в отдалечена нация като Токио ще изпита значителни забавяния при предаване и получаване на сигнали поради концентрацията на тези сървъри в САЩ.
При видеоклиповете закъсненията са много по-притеснителни, тъй като много данни трябва да бъдат предадени на зрителя и ако е така, стриймингът ще се забави и потребителското изживяване ще пострада.
Netflix използва хитра техника за отстраняване на проблема. Известен е като Open Connect (OC). Open Connect е CDN, който Netflix използва (мрежа за доставка на съдържание).
За да кешира онлайн информация и да я достави бързо на потребителите чрез намаляване на физическото разстояние между потребителя и материала, CDN е мрежа от разпръснати сървъри и свързани центрове за данни.
Балансиране на натоварването
A еднократно приложение сървърът не може да се справи с обема заявки (включително заявки за качване, търсене и преглед), които пристигат всяка секунда.
Трябва да има балансиращо натоварване, за да се разпредели ефективно натоварването между многобройните сървъри, тъй като има няколко включени сървъра.
Netflix използва постоянно хеширане, за да разпредели натоварванията между сървърите, тъй като може да се справи със сървърни повреди и да поеме инсталирането на допълнителни сървъри с лекота.
Тъй като популярността на всеки видеоклип варира, действителните сървъри, които хостват тези филми, могат да изпитат неравномерно натоварване. Използвайки динамични HTTP пренасочвания, които позволяват на зает сървър да пренасочи нова заявка към отворен сървър, можем да коригираме този проблем.
Съображения при разработването на приложение за видео стрийминг
Намерете и развийте своята ниша
С толкова много различни видове налични материали, от забавление до образование до фитнес, е изключително важно да се изгради диференциатор със специализирана специалност. Можете да създадете платформа за документални или независими филми.
Монетизация на приложението
Нарушаването на традиционните модели на монетизация може да доведе до иновации и растеж. Плановете винаги трябва да бъдат съобразени с целевата аудитория.
Тъй като действащите компании вече са монополизирали пазара, можете да опитате да монетизирате безплатни членства с реклами или позициониране на продукти.
Заедно с това, ако искате да изградите глобална платформа за стрийминг услуга, трябва да имате предвид нуждите от няколко валути.
По-добро преживяване
Ефективността на програмата трябва да бъде подобрена при крайни обстоятелства като бавен интернет или потребители с ограничен достъп.
Стрийминг на видеоклипове
Netflix не само излъчва съдържание, но също така използва техники за проектиране на потребителите и персонализирани предложения, за да държи потребителите пристрастени към услугата.
Планирайте да създадете услуга за стрийминг, подобна на Netflix, с акцент върху анализа на данни и потребителското персонализиране.
Управление на многото роли на приложението
В приложението Netflix потребителският изглед е просто една от няколко потребителски роли. Планирането е необходимо за различни потребители и техния достъп, включително администратор, собственик на видео, партньори, модератори и др.
Заключение
В заключение, това е начинът, по който услугите за стрийминг на видео като Netflix, YouTube и други вградени видеоклипове ги следят и показват на милиони потребители.
Въпреки че всяко от тези приложения може да има няколко допълнителни функции, които ги отличават, основната функционалност се основава на същите алгоритми.
Направих всичко възможно, за да ви дам общ преглед на системната архитектура на услугата за стрийминг, но на заден план се случват още много неща.
Искрено се надявам, че ще намерите това знание за ценно и ще се възползвате от него.
Оставете коментар