Çawa me şîfrekirina vîdyoyê bi heşt carî bilez kir

Çawa me şîfrekirina vîdyoyê bi heşt carî bilez kir

Her roj bi mîlyonan temaşevan li ser înternetê vîdyoyan temaşe dikin. Lê ji bo ku vîdyoyê peyda bibe, divê ew ne tenê li serverê were barkirin, lê di heman demê de were hilanîn. Zûtir ev diqewime, ji bo karûbar û bikarhênerên wê çêtir e.

Navê min Askar Kamalov e, salek berê ez beşdarî tîmê teknolojiya vîdyoyê ya Yandex bûm. Îro ez ê bi kurtasî ji xwendevanên Habr re vebêjim ka çawa, bi paralelkirina pêvajoya şîfrekirinê, me karî bi girîngî gihandina vîdyoyê ji bikarhêner re bileztir bike.

Ev post dê di serî de ji wan re balkêş be ku berê nefikirîne ka di binê kavilê karûbarên vîdyoyê de çi diqewime. Di şîroveyan de hûn dikarin pirsan bipirsin û mijarên ji bo peyamên pêşerojê pêşniyar bikin.

Çend gotin li ser peywirê bixwe. Yandex ne tenê ji we re dibe alîkar ku hûn li vîdyoyên li ser malperên din bigerin, lê di heman demê de vîdyoyan ji bo karûbarên xwe jî hilîne. Ka ew bernameyek orîjînal be an maçek werzîşê ya li ser hewayê be, fîlimek li ser KinoPoisk an vîdyoyên li ser Zen û News - ev hemî li ser serverên me têne barkirin. Ji bo ku bikarhêner vîdyoyê temaşe bikin, pêdivî ye ku ew were amade kirin: li forma hewce were veguheztin, pêşdîtinek çêkir, an jî di nav teknolojiyê de rêve bibe. DeepHD. Pelek neamadekirî tenê cîh digire. Wekî din, em ne tenê li ser karanîna çêtirîn a hardware, lê di heman demê de li ser leza radestkirina naverokê ji bikarhêneran re jî diaxivin. Mînak: tomarek dema diyarker a maçeke hokeyê dikare di nav deqeyek piştî bûyerê bixwe de were lêgerîn.

Kodkirina rêzî

Ji ber vê yekê, bextewariya bikarhêner bi piranî bi wê yekê ve girêdayî ye ku vîdyoyê çiqas zû peyda dibe. Û ev bi piranî ji hêla leza veguherînê ve tê destnîşankirin. Gava ku ji bo leza barkirina vîdyoyê hewcedariyên hişk tune, wê hingê pirsgirêk tune. Hûn pelek yekane, nayê dabeş kirin, vediguherînin û bar dikin. Di destpêka rêwîtiya me de, em bi vî rengî dixebitin:

Çawa me şîfrekirina vîdyoyê bi heşt carî bilez kir

Xerîdar vîdyoyê li hilanînê bar dike, pêkhateya Analyzer agahdariya meta berhev dike û vîdyoyê ji bo veguheztinê vediguhezîne beşa Karker. Hemî qonax bi rêz têne kirin. Di vê rewşê de, dibe ku gelek serverên kodkirinê hebin, lê tenê yek bi pêvajoyek vîdyoyek taybetî mijûl e. Diagrama hêsan, zelal. Li vir avantajên wê bi dawî dibin. Ev nexşe tenê dikare bi rengek vertîkal were pîvandin (ji ber kirîna serverên bihêztir).

Kodkirina rêzdar bi encama navîn

Ji bo ku bi rengekî bendewariya bi êş sivik bibe, pîşesaziyê vebijarkek kodkirina bilez peyda kir. Nav xapandin e, ji ber ku di rastiyê de, kodkirina tam bi rêz pêk tê û bi qasî ku dirêj dibe. Lê bi encamek navber. Fikir ev e: bi lez û bez guhertoyek bi rezîliya kêm a vîdyoyê amade bikin û biweşînin, û tenê wê hingê guhertoyên rezîliya bilindtir.

Ji aliyekî ve, vîdyoyek zûtir peyda dibe. Û ji bo bûyerên girîng bikêr e. Lê ji aliyê din ve, wêne xira dibe, û ev yek temaşevanan aciz dike.

Derket holê ku hûn ne tenê hewce ne ku vîdyoyê zû bişopînin, lê di heman demê de kalîteya wê jî biparêzin. Ya ku bikarhêner niha ji karûbarek vîdyoyê hêvî dikin ev e. Dibe ku xuya bibe ku bes e ku meriv serverên herî hilber bikire (û bi rêkûpêk wan hemî yekcar nûve bike). Lê ev qonaxek mirî ye, ji ber ku her gav vîdyoyek heye ku dê hardware ya herî hêzdar jî hêdî bike.

Kodkirina paralel

Pir bikêrhatîtir e ku meriv pirsgirêkek tevlihev li gelek yên kêmtir tevlihev dabeş bike û wan bi paralelî li ser serverên cihêreng çareser bike. Ev MapReduce ji bo vîdyoyê ye. Di vê rewşê de, em ji hêla performansa yek serverê ve ne tixûbdar in û dikarin horîzontal (bi lêzêdekirina makîneyên nû) pîvandin.

Bi awayê, ramana dabeşkirina vîdyoyan li perçeyên piçûk, pêvajokirina wan bi paralelî û zeliqandina wan ne veşartî ye. Hûn dikarin gelek referansên vê nêzîkbûnê bibînin (mînak, li ser Habré ez postek li ser projeyê pêşniyar dikim DistVIDc). Lê ev bi tevahî wê hêsantir nake, ji ber ku hûn nekarin çareseriyek amade bistînin û wê di mala xwe de ava bikin. Pêdiviya me bi adaptasyona binesaziya xwe, vîdyoya me û tewra barê me heye. Bi gelemperî, nivîsandina xweya xwe hêsantir e.

Ji ber vê yekê, di mîmariya nû de, me bloka Karker a monolîtîk bi kodkirina rêzdar li mîkroxizmetên Segmenter, Tcoder, Combiner dabeş kir.

Çawa me şîfrekirina vîdyoyê bi heşt carî bilez kir

  1. Segmenter vîdyoyê li perçeyên bi qasî 10 saniyeyan vediqetîne. Parçe ji yek an çend GOP pêk tên (koma wêneyan). Her GOP serbixwe ye û ji hev veqetandî ye, da ku ew bêyî referansa çarçoveyên ji GOP-ên din were deşîfre kirin. Ango perçe dikarin ji hev serbixwe werin lîstin. Ev şilbûn derengmayînê kêm dike, dihêle ku pêvajo zû dest pê bike.
  2. Tcoder her parçeyek pêvajoyê dike. Ew peywirek ji rêzê digire, perçeyek ji hilanînê dadixe, wê di nav çareseriyên cihêreng de şîfre dike (ji bîr mekin ku lîstikvan dikare guhertoyek li gorî leza girêdanê hilbijêrin), dûv re encamê vedigerîne hilanînê û perçeyê wekî pêvajoyî nîşan dide di databasê de. Piştî ku hemî perçeyan hilberandin, Tcoder peywirê dişîne da ku encaman ji bo pêkhateya din çêbike.
  3. Combiner encaman bi hev re berhev dike: hemî perçeyên ku ji hêla Tcoder ve hatî çêkirin dakêşîne, ji bo çareseriyên cihêreng tîrêjan çêdike.

Çend gotin li ser deng. Kodeka dengî ya herî populer a AAC xwedan taybetmendiyek ne xweş e. Ger hûn perçeyan ji hev cuda şîfre bikin, wê hingê hûn ê nikaribin wan bi rengek bêkêmasî bi hev re bixin. Veguhertin dê berbiçav bibin. Kodekên vîdyoyê vê pirsgirêkê tune. Ji hêla teorîkî ve, hûn dikarin li çareseriyek teknîkî ya tevlihev bigerin, lê ev lîstik hêj ne hêjayî mûmê ye (giraniya deng ji vîdyoyê pir kêmtir e). Ji ber vê yekê, tenê vîdyoyê bi paralelî kodkirî ye, û tevahiya şopa dengî tê pêvajo kirin.

Encam

Bi saya pêvajokirina vîdyoya paralel, me derengiya di navbera vîdyoyek ku ji me re tê barkirin û peydabûna bikarhêneran de bi girîngî kêm kiriye. Mînakî, berê ji bo fîlimek FullHD ya ku saet û nîvek dirêj dike du demjimêran çêdibe ku çend guhertoyên bêkêmasî yên qalîteya cûda were afirandin. Naha ev hemî 15 hûrdeman digire. Digel vê yekê, bi pêvajoyek paralel re, em bi nêzîkatiya encamên navîn ên kevn ve guhertoyek rezberek bilind ji guhertoyek kêm-çareseriyê jî zûtir diafirînin.

Û tiştek din. Bi nêzîkatiya kevn, an serverek têr nebû, an jî ew bê kar bêkar bûn. Kodkirina paralel dihêle hûn para vezîvirandina hesin zêde bikin. Naha koma me ya ji hezarî zêdetir serveran her gav bi tiştek re mijûl e.

Di rastiyê de, ji bo baştirkirinê hîna jî heye. Mînakî, heke em dest bi hilberandina perçeyên vîdyoyê bikin berî ku ew bi tevahî bigihîje me, em dikarin demek girîng xilas bikin. Wekî ku ew dibêjin, bêtir bê.

Di şîroveyan de binivîsin ka hûn dixwazin li ser kîjan karan di warê xebata bi vîdyoyê re bixwînin.

Girêdanên bikêr bi ezmûna hevkarên pîşesaziyê re

Source: www.habr.com

Add a comment