Kif għaġġejna l-kodifikazzjoni tal-vidjo bi tmien darbiet

Kif għaġġejna l-kodifikazzjoni tal-vidjo bi tmien darbiet

Kuljum, miljuni ta’ telespettaturi jaraw vidjows fuq l-Internet. Iżda biex il-vidjo jsir disponibbli, għandu mhux biss jittella fuq is-server, iżda wkoll ipproċessat. Aktar ma jiġri malajr, aħjar għas-servizz u l-utenti tiegħu.

Jisimni Askar Kamalov, sena ilu ngħaqadt mat-tim tat-teknoloġija tal-vidjo Yandex. Illum se ngħid fil-qosor lill-qarrejja ta’ Habr dwar kif, billi nipparallelizzaw il-proċess tal-kodifikazzjoni, irnexxielna nħaffu b’mod sinifikanti l-kunsinna tal-vidjo lill-utent.

Din il-kariga se tkun primarjament ta 'interess għal dawk li qabel ma ħasbux dwar x'jiġri taħt il-kappa tas-servizzi tal-vidjo. Fil-kummenti tista’ tistaqsi mistoqsijiet u tissuġġerixxi suġġetti għal postijiet futuri.

Ftit kelmiet dwar il-kompitu innifsu. Yandex mhux biss jgħinek tfittex vidjows fuq siti oħra, iżda wkoll taħżen vidjows għas-servizzi tagħha stess. Kemm jekk hu programm oriġinali jew partita sportiva fuq l-ajru, film fuq KinoPoisk jew vidjows fuq Zen u News - dan kollu jittella’ fuq is-servers tagħna. Sabiex l-utenti jaraw il-vidjo, jeħtieġ li jkun ippreparat: ikkonvertit għall-format meħtieġ, ħolqot preview, jew saħansitra tmexxi permezz tat-teknoloġija DeepHD. Fajl mhux ippreparat biss jieħu spazju. Barra minn hekk, qed nitkellmu mhux biss dwar l-aħjar użu tal-ħardwer, iżda wkoll dwar il-veloċità tal-kunsinna tal-kontenut lill-utenti. Eżempju: reġistrazzjoni tal-mument deċiżiv ta' partita tal-hockey tista' tiġi mfittxija fi żmien minuta wara l-avveniment innifsu.

Kodifikazzjoni sekwenzjali

Għalhekk, il-kuntentizza tal-utent tiddependi ħafna fuq kemm il-vidjo jsir disponibbli malajr. U dan huwa ddeterminat prinċipalment mill-veloċità tat-transcoding. Meta ma jkunx hemm rekwiżiti stretti għall-veloċità tal-upload tal-vidjo, allura ma jkun hemm l-ebda problemi. Inti tieħu fajl wieħed, indiviżibbli, jaqilbu, u ittellah. Fil-bidu tal-vjaġġ tagħna, hekk ħdimna:

Kif għaġġejna l-kodifikazzjoni tal-vidjo bi tmien darbiet

Il-klijent itella 'l-vidjo fil-ħażna, il-komponent tal-Analizzatur jiġbor meta informazzjoni u jittrasferixxi l-vidjo lill-komponent tal-Ħaddiem għall-konverżjoni. L-istadji kollha jsiru sekwenzjali. F'dan il-każ, jista 'jkun hemm ħafna servers ta' kodifikazzjoni, iżda wieħed biss huwa okkupat jipproċessa vidjo speċifiku. Dijagramma sempliċi u trasparenti. Dan huwa fejn jispiċċaw il-vantaġġi tagħha. Din l-iskema tista 'tiġi skalata biss vertikalment (minħabba x-xiri ta' servers aktar b'saħħithom).

Kodifikazzjoni sekwenzjali b'riżultat intermedju

Biex b'xi mod itaffi l-istennija bl-uġigħ, l-industrija ħarġet b'għażla ta 'kodifikazzjoni mgħaġġla. L-isem huwa qarrieqi, għax fil-fatt, il-kodifikazzjoni sħiħa sseħħ b'mod sekwenzjali u tieħu daqstant twil. Iżda b'riżultat intermedju. L-idea hija din: ipprepara u tippubblika verżjoni b'riżoluzzjoni baxxa tal-vidjo malajr kemm jista 'jkun, u mbagħad biss verżjonijiet b'riżoluzzjoni ogħla.

Min-naħa waħda, il-vidjo jsir disponibbli aktar malajr. U huwa utli għal avvenimenti importanti. Iżda min-naħa l-oħra, l-istampa tirriżulta mċajpra, u dan iddejjaq lit-telespettaturi.

Jirriżulta li għandek bżonn mhux biss malajr tipproċessa l-vidjo, iżda wkoll iżżomm il-kwalità tiegħu. Dan huwa dak li l-utenti jistennew minn servizz tal-vidjo issa. Jista 'jidher li huwa biżżejjed li tixtri l-aktar servers produttivi (u jaġġornahom regolarment f'daqqa). Iżda dan huwa tmiem mejta, għaliex dejjem hemm vidjo li se jagħmel anke l-aktar ħardwer b'saħħtu jonqos.

Kodifikazzjoni parallela

Huwa ħafna aktar effiċjenti li taqsam problema kumplessa f'ħafna inqas kumplessi u ssolvihom b'mod parallel fuq servers differenti. Dan huwa MapReduce għall-vidjo. F'dan il-każ, m'aħniex limitati mill-prestazzjoni ta 'server wieħed u nistgħu niskala orizzontalment (billi nżidu magni ġodda).

Mill-mod, l-idea li taqsam vidjows f'biċċiet żgħar, tipproċessahom b'mod parallel u twaħħalhom flimkien mhix xi sigriet. Tista' ssib ħafna referenzi għal dan l-approċċ (per eżempju, fuq Habré nirrakkomanda post dwar il-proġett DistVIDc). Iżda dan ma jagħmilha aktar faċli b'mod ġenerali, għaliex ma tistax sempliċement tieħu soluzzjoni lesta u tibniha fid-dar tiegħek. Għandna bżonn adattament għall-infrastruttura tagħna, il-vidjo tagħna u anke t-tagħbija tagħna. B'mod ġenerali, huwa aktar faċli li tikteb tiegħek.

Allura, fl-arkitettura l-ġdida, qsamna l-blokk monolitiku tal-Ħaddiem b'kodifikazzjoni sekwenzjali f'mikroservizzi Segmenter, Tcoder, Combiner.

Kif għaġġejna l-kodifikazzjoni tal-vidjo bi tmien darbiet

  1. Segmenter ikisser il-video fi frammenti ta' madwar 10 sekondi. Frammenti jikkonsistu minn GOP wieħed jew aktar (grupp ta’ stampi). Kull GOP huwa indipendenti u kodifikat separatament sabiex ikun jista' jiġi dekodifikat mingħajr referenza għal frames minn GOPs oħra. Jiġifieri, frammenti jistgħu jintlagħbu indipendentement minn xulxin. Dan it-tqattigħ inaqqas il-latenza, u jippermetti li l-ipproċessar jibda qabel.
  2. Tcoder jipproċessa kull framment. Huwa jieħu biċċa xogħol mill-kju, tniżżel framment mill-ħażna, tikkodifikah f'riżoluzzjonijiet differenti (ftakar li l-plejer jista 'jagħżel verżjoni bbażata fuq il-veloċità tal-konnessjoni), imbagħad ipoġġi r-riżultat lura fil-ħażna u jimmarka l-framment bħala pproċessat fid-database. Wara li pproċessa l-frammenti kollha, Tcoder jibgħat il-kompitu biex jiġġenera riżultati għall-komponent li jmiss.
  3. Combiner jiġbor ir-riżultati flimkien: tniżżel il-frammenti kollha magħmula minn Tcoder, jiġġenera flussi għal riżoluzzjonijiet differenti.

Ftit kliem dwar il-ħoss. L-aktar popolari codec awdjo AAC għandu karatteristika spjaċevoli. Jekk tikkodifika frammenti separatament, allura sempliċement ma tkunx tista 'twaħħalhom flimkien bla xkiel. It-tranżizzjonijiet se jkunu notevoli. Il-codecs tal-vidjo m'għandhomx din il-problema. Teoretikament, tista 'tfittex soluzzjoni teknika kumplessa, iżda din il-logħba sempliċement għadha ma tiswax ix-xemgħa (l-awdjo jiżen ferm inqas mill-vidjo). Għalhekk, il-vidjo biss huwa kodifikat b'mod parallel, u l-korsa awdjo kollha hija pproċessata.

Sejbiet

Grazzi għall-ipproċessar parallel tal-vidjo, aħna naqqasna b'mod sinifikanti d-dewmien bejn vidjo li jittella 'lna u jkun disponibbli għall-utenti. Pereżempju, qabel tista' tieħu sagħtejn biex toħloq diversi verżjonijiet sħaħ ta' kwalità differenti għal film FullHD li jdum siegħa u nofs. Issa dan kollu jieħu 15-il minuta. Barra minn hekk, bi proċessar parallel, noħolqu verżjoni b'riżoluzzjoni għolja saħansitra aktar mgħaġġla minn verżjoni b'riżoluzzjoni baxxa bl-approċċ antik tar-riżultat intermedju.

U ħaġa oħra. Bl-approċċ l-antik, jew ma kienx hemm biżżejjed servers, jew kienu inattivi mingħajr kompiti. Kodifikazzjoni parallela tippermettilek li żżid is-sehem tar-riċiklaġġ tal-ħadid. Issa l-cluster tagħna ta 'aktar minn elf server huwa dejjem okkupat b'xi ħaġa.

Fil-fatt, għad hemm lok għal titjib. Pereżempju, nistgħu niffrankaw ħin sinifikanti jekk nibdew nipproċessaw frammenti tal-vidjo qabel ma jasal għandna fl-intier tiegħu. Kif jgħidu, aktar ġejjin.

Ikteb fil-kummenti liema kompiti fil-qasam tax-xogħol bil-vidjow tixtieq taqra dwarhom.

Links utli għall-esperjenza tal-kollegi tal-industrija

Sors: www.habr.com

Żid kumment