Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Il-komunikazzjoni bil-vidjo hija l-mod ewlieni ta’ komunikazzjoni bejn għalliem u student fuq il-pjattaforma Vimbox. Aħna rrinunzjaw Skype żmien twil ilu, ippruvajna diversi soluzzjonijiet ta 'partijiet terzi u eventwalment issetiljaw fuq il-kombinazzjoni WebRTC - Janus-gateway. Għal xi żmien konna kuntenti b’kollox, iżda xorta waħda komplew joħorġu xi aspetti negattivi. Bħala riżultat, inħolqot direzzjoni separata tal-vidjo.

Staqsejt lil Kirill Rogovoy, il-kap tad-direzzjoni l-ġdida, biex jitkellem dwar l-evoluzzjoni tal-komunikazzjoni bil-vidjo fi Skyeng, il-problemi skoperti, is-soluzzjonijiet u l-krozzi li fl-aħħar użajna. Nittamaw li l-artiklu jkun utli għall-kumpaniji li wkoll joħolqu vidjow waħedhom permezz ta 'applikazzjoni tal-web.

Ftit storja

Fis-sajf tal-2017, il-kap tal-iżvilupp ta 'Skyeng, Sergey Safonov, tkellem f'Backend Conf bi storja dwar kif aħna "abbandunajna Skype u implimentajna WebRTC." Dawk interessati jistgħu jaraw ir-recording tad-diskors fuq rabta (~ 45 min), u hawnhekk ser niddeskrivi fil-qosor l-essenza tagħha.

Għall-Iskola Skyeng, il-komunikazzjoni bil-vidjo minn dejjem kienet mod prijoritarju ta 'komunikazzjoni għalliema-studenti. Għall-ewwel, Skype kien użat, iżda kategorikament ma kienx sodisfaċenti għal numru ta 'raġunijiet, primarjament minħabba n-nuqqas ta' zkuk u l-impossibbiltà ta 'integrazzjoni direttament fl-applikazzjoni tal-web. Għalhekk, wettaqna kull xorta ta 'esperimenti.

Fil-fatt, ir-rekwiżiti tagħna għall-komunikazzjoni bil-vidjo kienu bejn wieħed u ieħor dawn li ġejjin:
— stabbiltà;
— prezz baxx għal kull lezzjoni;
— ir-reġistrazzjoni tal-lezzjonijiet;
— traċċar ta’ min jitkellem kemm (huwa importanti għalina li l-istudenti jitkellmu aktar mill-għalliem waqt il-lezzjonijiet);
— skalar lineari;
- kapaċità li tuża kemm UDP kif ukoll TCP.

L-ewwel li pprova kien li jimplimenta Tokbox fl-2013. Kollox kien tajjeb, iżda rriżulta li kien għali ħafna - 113 rublu għal kull lezzjoni - u ate l-profitt.

Imbagħad fl-2015, Voximplant ġie integrat. Hawnhekk kienet il-funzjoni li kellna bżonn biex insegwu min tkellem kemm, u fl-istess ħin is-soluzzjoni kienet ferm irħas: jekk l-awdjo kien irreġistrat biss, jiswa 20 rublu għal kull lezzjoni. Madankollu, ħadem biss permezz tal-UDP u ma setax jaqleb għal TCP. Madankollu, madwar 40% tal-istudenti spiċċaw użawh.

Sena wara, bdejna jkollna klijenti korporattivi bir-rekwiżiti speċifiċi tagħhom stess. Per eżempju, kollox għandu jaħdem permezz ta 'browser; il-kumpanija tiftaħ biss http u https; jiġifieri l-ebda Skype jew UDP. Klijenti korporattivi = flus, għalhekk irritornaw lejn Tokbox, iżda l-problema tal-prezz ma spiċċatx.

Soluzzjoni - WebRTC u Janus

Iddeċieda li juża pjattaforma tal-brawżer għall-komunikazzjoni bil-vidjo peer-to-peer WebRTC. Huwa responsabbli biex jistabbilixxi konnessjoni, kodifikazzjoni u dekodifikazzjoni ta 'flussi, sinkronizzazzjoni tal-binarji u kontroll tal-kwalità bl-immaniġġjar ta' glitches tan-netwerk. Min-naħa tagħna, irridu niżguraw li naqraw flussi mill-kamera u mill-mikrofonu, niġbdu l-vidjow, niġġestixxu l-konnessjoni, nistabbilixxu konnessjoni WebRTC u nittrasmettu flussi lilha, kif ukoll nittrasmettu messaġġi ta 'sinjalazzjoni bejn il-klijenti biex tiġi stabbilita konnessjoni (WebRTC innifsu jiddeskrivi biss il- format tad-data, iżda mhux it-trasferimenti tal-mekkaniżmu tagħha). Jekk il-klijenti jkunu wara n-NAT, WebRTC jgħaqqad is-servers STUN; jekk dan ma jgħinx, DWAR is-servers.

Konnessjoni p2p regolari mhix biżżejjed għalina, għaliex irridu nirreġistraw lezzjonijiet għal aktar analiżi f'każ ta 'ilmenti. Għalhekk aħna nibagħtu WebRTC streams permezz ta 'relay Janus Gateway minn Meetecho. Bħala riżultat, il-klijenti ma jafux l-indirizzi ta 'xulxin, jaraw biss l-indirizz tas-server Janus; iwettaq ukoll il-funzjonijiet ta 'server tas-sinjali. Janus għandu ħafna mill-karatteristiċi li neħtieġu: jaqleb awtomatikament għal TCP jekk il-klijent ikollu UDP imblukkat; jista 'jirreġistra kemm flussi UDP kif ukoll TCP; skalabbli; Hemm anki plugin integrat għal testijiet tal-eku. Jekk meħtieġ, is-servers STUN u TURN minn Twilio huma konnessi awtomatikament.

Fis-sajf tal-2017, kellna żewġ servers Janus jaħdmu, flimkien ma 'server addizzjonali għall-ipproċessar ta' fajls awdjo u vidjo mhux maħduma rreġistrati, sabiex ma nokkupawx il-proċessuri ta 'dawk ewlenin. Waqt il-konnessjoni, is-servers Janus intgħażlu fuq bażi fard-even (numru tal-konnessjoni). F'dak iż-żmien, dan kien biżżejjed, skond is-sentimenti tagħna, ta madwar erba 'darbiet marġini ta' sigurtà, il-perċentwal ta 'implimentazzjoni kien ta' madwar 80. Fl-istess ħin, il-prezz tnaqqas għal ~ 2 rubles għal kull lezzjoni, flimkien ma 'żvilupp u appoġġ.

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Возвращение к теме видеосвязи

Aħna nissorveljaw kontinwament ir-rispons mill-istudenti u l-għalliema sabiex nidentifikaw u nikkoreġu l-problemi fil-ħin. Sas-sajf tal-2018, il-kwalità tas-sejħa kienet sod fl-ewwel post fost l-ilmenti. Min-naħa waħda, dan kien ifisser li konna għelbu b’suċċess nuqqasijiet oħra. Min-naħa l-oħra, kien meħtieġ li tagħmel xi ħaġa b'mod urġenti: jekk il-lezzjoni tiġi mfixkla, nirriskjaw li nitilfu l-valur tagħha, xi drabi flimkien mal-ispiża tax-xiri tal-pakkett li jmiss, u jekk il-lezzjoni introduttorja tiġi mfixkla, nirriskjaw li nitilfu klijent potenzjali għal kollox.

Dak iż-żmien, il-komunikazzjoni bil-vidjo tagħna kienet għadha fil-mod MVP. Fi kliem sempliċi, nedewha, ħadmet, qasmuha darba, fehmu kif jagħmluha - tajjeb, kbir. Jekk taħdem, ma tiffissahx. Ħadd ma indirizza deliberatament il-kwistjoni tal-kwalità tal-komunikazzjoni. Sa Awwissu, deher ċar li dan ma setax ikompli, u nedejna direzzjoni separata biex insemmu x'kien ħażin ma' WebRTC u Janus.

Fl-input, din id-direzzjoni rċeviet: soluzzjoni MVP, l-ebda metrika, l-ebda għanijiet, l-ebda proċessi għal titjib, filwaqt li 7% tal-għalliema jilmentaw dwar il-kwalità tal-komunikazzjoni (ma kien hemm l-ebda data dwar l-istudenti lanqas).

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Direzzjoni ġdida għaddejja

Il-kmand jidher xi ħaġa bħal din:

  • Il-kap tad-dipartiment, li huwa wkoll l-iżviluppatur ewlieni.
  • QA jgħin biex jittestja l-bidliet, ifittex modi ġodda biex joħloq kundizzjonijiet ta 'komunikazzjoni instabbli, u jirrapporta problemi mill-ewwel linja.
  • L-analista kontinwament ifittex diversi korrelazzjonijiet fid-dejta teknika, itejjeb l-analiżi tar-rispons tal-utent, u jiċċekkja r-riżultati tal-esperimenti.
  • Il-maniġer tal-prodott jgħin fid-direzzjoni ġenerali u l-allokazzjoni tar-riżorsi għall-esperimenti.
  • It-tieni żviluppatur spiss jgħin fl-ipprogrammar u ħidmiet relatati.

Biex tibda, waqqafna metrika relattivament affidabbli li ssegwi l-bidliet fil-valutazzjonijiet tal-kwalità tal-komunikazzjoni (medja fuq ġranet, ġimgħat, xhur). Dak iż-żmien, dawn kienu gradi mill-għalliema; aktar tard ġew miżjuda magħhom gradi mill-istudenti. Imbagħad bdew jibnu ipoteżi dwar dak li kien qed jaħdem ħażin, jikkoreġuh, u jħarsu lejn il-bidliet fid-dinamika. Morna għall-frott baxx li jiddendlu: pereżempju, biddel il-codec vp8 b'vp9, il-prestazzjoni tjiebet. Ippruvajna nilagħbu bis-settings ta 'Janus u nwettqu esperimenti oħra - fil-biċċa l-kbira tal-każijiet ma wasslu għal xejn.

Fit-tieni stadju, ħarġet ipoteżi: WebRTC hija soluzzjoni peer-to-peer, u nużaw server fin-nofs. Forsi l-problema tinsab hawn? Bdejna nħaffru u sibna l-aktar titjib sinifikanti s'issa.

F'dak il-mument, server mill-pool intgħażel bl-użu ta 'algoritmu pjuttost stupidu: kull wieħed kellu l-"piż tiegħu", skond il-kanal u l-qawwa, u ppruvajna nibagħtu lill-utent lil dak bl-akbar "piż", mingħajr tagħti attenzjoni għal fejn l-utent kien jinsab ġeografikament. Bħala riżultat, għalliem minn San Pietruburgu jista 'jikkomunika ma' student mis-Siberja permezz ta 'Moska, u mhux permezz tas-server Janus tagħna f'San Pietruburgu.

L-algoritmu sar mill-ġdid: issa, meta utent jiftaħ il-pjattaforma tagħna, aħna niġbru pings mingħandu għas-servers kollha li jużaw Ajax. Meta nistabbilixxu konnessjoni, nagħżlu par pings (għalliem-server u student-server) bl-iżgħar ammont. Inqas ping ifisser inqas distanza tan-netwerk għas-server; distanza iqsar tfisser probabbiltà aktar baxxa li jintilfu l-pakketti; It-telf tal-pakkett huwa l-akbar fattur negattiv fil-komunikazzjoni bil-vidjo. Is-sehem tan-negattività naqas bin-nofs fi tliet xhur (biex inkunu ġusti, f'dan iż-żmien saru esperimenti oħra, iżda dan kważi ċertament kellu l-aktar impatt).

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Riċentement skoprejna ħaġa oħra mhux ovvja, iżda apparentement importanti: minflok server Janus qawwi wieħed fuq kanal oħxon, huwa aħjar li jkollok żewġ oħrajn aktar sempliċi b'bandwidth irqaq. Dan deher ċar wara li xtrajna magni b'saħħithom bit-tama li ndaħħlu fihom daqstant kmamar (sessjonijiet ta 'komunikazzjoni) fl-istess ħin. Is-servers għandhom limitu tal-bandwidth, li nistgħu nittraduċu b'mod preċiż fin-numru ta 'kmamar - nafu kemm jistgħu jinfetħu, pereżempju, bi 300 Mbit/s. Hekk kif ikun hemm wisq kmamar miftuħa fuq server, nieqfu nagħżluh għal attivitajiet ġodda sakemm tonqos it-tagħbija. L-idea kienet li, wara li xtrajt magna b'saħħitha, aħna ngħabbew il-kanal sa l-massimu, sabiex fl-aħħar ikun limitat mill-proċessur u l-memorja, u mhux mill-bandwidth. Iżda rriżulta li wara ċertu numru ta 'kmamar miftuħa (420), minkejja l-fatt li t-tagħbija fuq il-proċessur, il-memorja u d-disk għadha 'l bogħod ħafna mil-limiti, in-negattività tibda tasal għall-appoġġ tekniku. Apparentement, xi ħaġa qed tmur għall-agħar ġewwa Janus, forsi hemm xi restrizzjonijiet hemm ukoll. Bdejna nesperimentaw, naqqas il-limitu tal-bandwidth minn 300 għal 200 Mbit/s, u l-problemi marru. Issa xtrajna tliet servers ġodda f'daqqa b'limiti u karatteristiċi baxxi, naħsbu li dan iwassal għal titjib stabbli fil-kwalità tal-komunikazzjoni. Ovvjament, ma ppruvajniex nifhmu x’kien qed jiġri hemmhekk; il-krozzi tagħna huma kollox. Fid-difiża tagħna, ejja ngħidu li f'dak il-mument kien meħtieġ li tissolva l-problema ta 'l-ippressar malajr kemm jista' jkun, u mhux li tagħmel dan sabiħ; barra minn hekk, Janus għalina hija kaxxa sewda miktuba b'Ċ, hija għalja ħafna li tinker magħha.

Minn Skype għal WebRTC: kif organizzajna komunikazzjoni bil-vidjo permezz tal-web

Ukoll, fil-proċess aħna:

  • aġġorna d-dipendenzi kollha li jistgħu jiġu aġġornati, kemm fuq is-server kif ukoll fuq il-klijent (dawn kienu wkoll esperimenti, aħna mmonitorjajna r-riżultati);
  • irranġa l-bugs identifikati kollha relatati ma' każijiet speċifiċi, pereżempju, meta l-konnessjoni waqgħet u ma ġietx restawrata awtomatikament;
  • Għamilna ħafna laqgħat ma’ kumpaniji li jaħdmu fil-qasam tal-komunikazzjoni bil-vidjo u familjari mal-problemi tagħna: logħob streaming, organizzazzjoni ta’ webinars; ippruvajna dak kollu li deher utli lilna;
  • Mexxa reviżjoni teknika tal-ħardwer u l-kwalità tal-komunikazzjoni tal-għalliema, li minnhom ġew l-aktar ilmenti.

L-esperimenti u l-bidliet sussegwenti għamlu possibbli li jitnaqqas in-nuqqas ta 'sodisfazzjon bil-komunikazzjoni fost l-għalliema minn 7,1% f'Jannar 2018 għal 2,5% f'Jannar 2019.

X'hemm Li jmiss

L-istabbilizzazzjoni tal-pjattaforma Vimbox tagħna hija waħda mill-proġetti ewlenin tal-kumpanija għall-2019. Għandna tama kbira li nkunu nistgħu nżommu l-momentum u ma narawx aktar komunikazzjoni bil-vidjo fl-ilmenti ewlenin. Aħna nifhmu li parti sinifikanti ta 'dawn l-ilmenti huma relatati ma' dewmien fil-kompjuters tal-utenti u l-Internet, iżda rridu niddeterminaw din il-parti u nsolvu l-bqija. Kull ħaġa oħra hija problema teknika, jidher li għandna nkunu kapaċi nlaħqu magħha.

Id-diffikultà ewlenija hija li ma nafux sa liema livell huwa fil-fatt possibbli li tittejjeb il-kwalità. Tiskopri dan il-limitu huwa l-kompitu ewlieni. Għalhekk, ġew ippjanati żewġ esperimenti:

  1. qabbel il-vidjo permezz ta' Janus ma' p2p regolari f'kundizzjonijiet ta' ġlieda. Dan l-esperiment diġà sar, ma nstabet l-ebda differenza statistikament sinifikanti bejn is-soluzzjoni tagħna u p2p;
  2. Ejja nipprovdu servizzi (għaljin) minn kumpaniji li jagħmlu l-flus esklussivament fuq soluzzjonijiet ta 'komunikazzjoni bil-vidjo, u nqabblu l-ammont ta' negattività minnhom ma 'dik eżistenti.

Dawn iż-żewġ esperimenti se jippermettulna nidentifikaw għan li jista 'jinkiseb u niffukaw fuqu.

Barra minn hekk, hemm numru ta 'kompiti li jistgħu jiġu solvuti b'mod regolari:

  • Noħolqu metrika teknika tal-kwalità tal-komunikazzjoni minflok reviżjonijiet suġġettivi;
  • Nagħmlu reġistri tas-sessjoni aktar dettaljati sabiex nanalizzaw b'mod aktar preċiż il-fallimenti li jseħħu, nifhmu meta u fejn seħħew eżattament, u x'avvenimenti apparentement mhux relatati seħħew f'dak il-mument;
  • Aħna nippreparaw test tal-kwalità tal-konnessjoni awtomatika qabel il-lezzjoni, u nagħtu wkoll lill-klijent l-opportunità li jittestja manwalment il-konnessjoni sabiex inaqqas l-ammont ta 'negattività kkawżata mill-hardware u l-kanal tiegħu;
  • aħna se niżviluppaw u nwettqu aktar testijiet tat-tagħbija tal-komunikazzjoni bil-vidjo f'kundizzjonijiet ħżiena, b'telf ta 'pakketti varjabbli, eċċ.;
  • aħna nibdlu l-imġieba tas-servers f'każ ta 'problemi biex tiżdied it-tolleranza tal-ħsarat;
  • Aħna se nwissu lill-utent jekk ikun hemm xi ħaġa ħażina fil-konnessjoni tiegħu, bħalma jagħmel Skype, sabiex jifhem li l-problema hija min-naħa tiegħu.

Minn April, id-direzzjoni tal-komunikazzjoni bil-vidjo saret proġett separat sħiħ fi ħdan Skyeng, li jittratta l-prodott tiegħu stess, mhux biss parti minn Vimbox. Dan ifisser li qed nibdew infittxu nies fuq taħdem bil-vidjo fil-modalità full-time. Ukoll, bħal dejjem Qegħdin infittxu ħafna nies tajbin.

U, ovvjament, inkomplu nikkomunikaw b'mod attiv ma 'nies u kumpaniji li jaħdmu b'komunikazzjonijiet bil-vidjo. Jekk trid tiskambja l-esperjenza magħna, aħna nkunu ferħanin! Ikkummenta, ikkuntattja - aħna nwieġbu lil kulħadd.

Sors: www.habr.com