Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Ragihandina vîdyoyê riya sereke ya ragihandinê di navbera mamoste û xwendekar de li ser platforma Vimbox e. Me demek dirêj berê dev ji Skype berda, çend çareseriyên partiya sêyemîn ceriband û di dawiyê de li ser WebRTC - kombînasyona Janus-dergeyê rûnişt. Demek em bi her tiştî kêfxweş bûn, lê dîsa jî hin aliyên neyînî derketin holê. Wekî encamek, rêgezek vîdyoyek cûda hate afirandin.

Min ji Kirill Rogovoy, serokê rêgeza nû pirsî, ku li ser pêşveçûna pêwendiya vîdyoyê li Skyeng, pirsgirêkên ku hatine vedîtin, çareserî û kêşeyên ku me di dawiyê de bikar anîn biaxive. Em hêvî dikin ku gotar dê ji bo pargîdaniyên ku di heman demê de bi serîlêdanek malperê vîdyoyê bi xwe jî diafirînin kêrhatî be.

Hinek dîrok

Di havîna 2017-an de, serokê pêşveçûna Skyeng, Sergey Safonov, li Backend Conf bi çîrokek di derbarê ka me çawa "Skype terikand û WebRTC" kir peyivî. Kesên ku dixwazin dikarin li qeyda axaftinê temaşe bikin link (~ 45 deqe), û li vir ez ê bi kurtî naveroka wê diyar bikim.

Ji bo Dibistana Skyeng, ragihandina vîdyoyê her gav rêyek pêşîn a pêwendiya mamoste-xwendekar bû. Di destpêkê de, Skype hate bikar anîn, lê ew ji ber çend sedeman bi kategorî ne têrker bû, di serî de ji ber nebûna têketin û ne gengaziya entegrasyonê rasterast di serîlêdana malperê de. Ji ber vê yekê me her cure ceribandin pêk anî.

Bi rastî, pêdiviyên me yên ji bo ragihandina vîdyoyê bi qasî jêrîn bûn:
- aramî;
- bihayê kêm per dersê;
- tomarkirina dersan;
- şopandina kî çiqas diaxive (ji bo me girîng e ku xwendekar di dema dersan de ji mamoste bêtir biaxivin);
- pîvana xêzikî;
- şiyana karanîna hem UDP û hem jî TCP.

Ya yekem ku hewl da ku di sala 2013-an de Tokbox bicîh bîne. Her tişt baş bû, lê ew pir biha bû - 113 ruble ji bo her dersê - û qezencê xwar.

Dûv re di sala 2015-an de, Voximplant hate yek kirin. Li vir fonksiyona me hewce bû ku em bişopînin ka kî çiqas diaxive, û di heman demê de çareserî pir erzantir bû: heke tenê deng bihata tomarkirin, wê ji bo her dersê 20 ruble lêçû. Lêbelê, ew tenê bi navgîniya UDP-ê dixebitî û nikaribû TCP-ê veguherîne. Lêbelê, ji sedî 40% xwendekaran wê bikar anîn.

Salek şûnda, me dest pê kir ku xerîdarên pargîdanî yên bi daxwazên xwe yên taybetî hene. Mînakî, divê her tişt bi gerokek bixebite; pargîdanî tenê http û https vedike; ango Skype an UDP tune. Xerîdarên pargîdanî = drav, ji ber vê yekê ew vegeriyan Tokbox, lê pirsgirêka bihayê neçû.

Çareserî - WebRTC û Janus

Biryar da ku bikar bînin platforma gerokê ji bo peer-to-peer ragihandina vîdyoyê WebRTC. Ew berpirsiyar e ji bo sazkirina pêwendiyek, şîfrekirin û dekodkirina çeman, hevdengkirina şopan û kontrolkirina kalîteyê digel birêvebirina xeletiyên torê. Ji aliyê xwe ve, divê em piştrast bikin ku em ji kamera û mîkrofonê xwendina çîmentoyan, xêzkirina vîdyoyê, birêvebirina pêwendiyê, pêwendiyek WebRTC saz bikin û jê re veguhezînin, û her weha peyamên îşaretkirinê di navbera xerîdaran de veguhezînin da ku têkiliyek saz bikin (WebRTC bixwe tenê formata daneyê, lê ne veguheztina mekanîzmaya wê). Ger xerîdar li pişt NAT bin, WebRTC serverên STUN bi hev ve girêdide; heke ev alîkarî neke, pêşkêşkeran bizivirîne.

Têkiliyek p2p ya birêkûpêk ji me re ne bes e, ji ber ku em dixwazin di doza gilî de dersên ji bo analîzên din tomar bikin. Ji ber vê yekê em bi rêgezek veguhên WebRTC dişînin Janus Gateway ji hêla Meetecho ve. Wekî encamek, xerîdar navnîşanên hevûdu nizanin, tenê navnîşana servera Janus dibînin; di heman demê de ew fonksiyonên serverek sînyalê jî pêk tîne. Janus gelek taybetmendiyên ku em hewce ne hene: heke xerîdar UDP asteng kiribe bixweber diguhere TCP; dikare hem herikên UDP û TCP tomar bike; scalable; Ji bo ceribandinên echo jî pêvekek çêkirî heye. Ger hewce be, serverên STUN û TURN ji Twilio bixweber têne girêdan.

Di havîna 2017-an de, me du serverên Janus xebitîn, plus serverek pêvek ji bo hilanîna pelên dengî û vîdyoyê yên xav ên tomarkirî, da ku neyên ku pêvajoyên sereke dagîr bikin. Dema girêdanê, pêşkêşkerên Janus li ser bingehek çu-cuda (hejmara pêwendiyê) hatin hilbijartin. Di wê demê de, ev bes bû, li gorî hestên me, ew hema hema çar qat marjînalek ewlehiyê da, rêjeya pêkanînê bi qasî 80 bû. Di heman demê de, bihayê her dersê daket ~ 2 rubleyan, plus pêşveçûn û piştgirî.

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Vegere ser mijara ragihandina vîdyoyê

Em bi berdewamî çavdêriya nerînên xwendekar û mamosteyan dikin da ku di wextê xwe de pirsgirêkan nas bikin û rast bikin. Di havîna 2018-an de, kalîteya bangê di nav giliyan de di rêza yekem de zexm bû. Ji aliyekî ve ev dihat wateya ku me kêmasiyên din bi serkeftî derbas kir. Ji hêla din ve, pêdivî bû ku bi lezgînî tiştek were kirin: heke ders were asteng kirin, em xetera windakirina nirxa wê dikin, carinan digel lêçûna kirîna pakêta din, û heke dersa destpêkê were asteng kirin, em xetera windakirina xerîdarek potansiyel dikin. giştî.

Wê demê, pêwendiya vîdyoya me hîn jî di moda MVP de bû. Bi tenê gotin, wan ew da destpêkirin, ew xebitî, wan ew yek carî pîvan kir, wan fêm kir ku meriv çawa wiya bike - baş e, mezin. Ger ew kar dike, wê rast nekin. Kesî bi qestî meseleya qalîteya ragihandinê nekiriye. Heya Tebaxê, eşkere bû ku ev nekare bidome, û me rêgezek cûda da destpêkirin da ku em fam bikin ka WebRTC û Janus çi xelet e.

Di têketinê de, ev rêgez wergirt: çareseriyek MVP, bê metrîk, bê armanc, ne pêvajoyên ji bo başbûnê, dema ku 7% mamosteyan ji qalîteya ragihandinê gilî dikin (li ser xwendekaran jî dane tune).

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Rêgezek nû tê meşandin

Ferman tiştek bi vî rengî xuya dike:

  • Serokê beşê, ku di heman demê de pêşdebirê sereke ye.
  • QA ji guhertinên ceribandinê re dibe alîkar, li rêyên nû digere da ku şert û mercên pêwendiya ne aram biafirîne, û pirsgirêkan ji rêza pêşîn rapor dike.
  • Analîst bi domdarî li têkiliyên cûrbecûr di daneyên teknîkî de digere, analîzkirina nerînên bikarhêner çêtir dike, û encamên ceribandinan kontrol dike.
  • Rêvebirê hilberê bi rêberiya giştî û veqetandina çavkaniyan ji bo ceribandinan re dibe alîkar.
  • Pêşvebirek duyemîn bi gelemperî bi bernamekirin û karên têkildar re dibe alîkar.

Ji bo destpêkê, me metrîkek pêbawer saz kir ku guheztinên di nirxandinên qalîteya ragihandinê de (navîn bi roj, hefte, mehan) dişopîne. Wê demê ev notên mamosteyan bûn, paşê notên xwendekaran li wan zêde kirin. Dûv re wan dest bi avakirina hîpotezan kir ka çi xelet dixebitî, wê rast bikin, û li guhertinên dînamîkan mêze bikin. Em çûn fêkiya kêm-daleqandî: Mînakî, me kodek vp8 bi vp9 ve guhezand, performans çêtir bû. Me hewl da ku bi mîhengên Janus re bilîzin û ceribandinên din bikin - di pir rewşan de ew nebûn rê.

Di qonaxa duyemîn de, hîpotezek derket holê: WebRTC çareseriyek peer-to-peer e, û em serverek di navîn de bikar tînin. Dibe ku pirsgirêk li vir e? Me dest bi kolandinê kir û heta niha başbûna herî girîng dît.

Di wê gavê de, serverek ji hewzê bi karanîna algorîtmayek pir ehmeq hate hilbijartin: her yekê li gorî kanal û hêza xwe "giraniya xwe" hebû, û me hewl da ku bikarhêner bişîne ya ku xwedan "giraniya" herî mezin e, bêyî bala xwe didin cihê ku bikarhêner ji hêla erdnîgarî ve lê ye. Di encamê de, mamosteyek ji St.

Algorîtma ji nû ve hatî çêkirin: naha, gava ku bikarhênerek platforma me vedike, em ji wî ping ji hemî serverên ku Ajax bikar tînin berhev dikin. Dema ku têkiliyek saz dike, em cotek ping (mamoste-server û xwendekar-server) bi mîqdara herî piçûk hilbijêrin. Kêm ping tê wateya kêm dûrahiya torê ya ji serverê re; mesafeya kurt tê wateya kêmbûna îhtîmala windakirina pakêtan; Windakirina pakêtê di ragihandina vîdyoyê de faktora neyînî ya herî mezin e. Parçeya neyînî di sê mehan de nîvî ket (ji bo ku rast be, ceribandinên din di vê demê de hatin kirin, lê ev yek hema bê guman herî zêde bandor kir).

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Me di van demên dawî de tiştek din a ne-eşkere, lê xuya girîng kifş kir: Li şûna serverek hêzdar Janus li ser kanalek stûr, çêtir e ku meriv du yên sadetir bi firehiya bandê ziravtir hebin. Ev eşkere bû piştî ku me makîneyên hêzdar kirîn bi hêviya ku em di heman demê de bi qasî jûreyan (danişînên danûstendinê) li wan bixin. Server sînorek firehiya bandê heye, ku em dikarin bi duristî veguhezînin hejmara jûreyan - em dizanin ka çend dikarin werin vekirin, mînakî, bi 300 Mbit/s. Mîna ku li ser serverek pir jûreyên vekirî hene, em hilbijartina wê ji bo çalakiyên nû rawestînin heya ku bar kêm bibe. Fikir ev bû ku, piştî kirîna makîneyek hêzdar, em ê kanalê herî zêde li ser wê bar bikin, da ku di dawiyê de ew ji hêla pêvajo û bîranînê ve, û ne ji hêla berfê ve were sînordar kirin. Lê derket holê ku piştî hejmarek jûreyên vekirî (420), tevî vê yekê ku barkirina li ser pêvajoyê, bîranîn û dîskê hîn jî ji sînoran pir dûr e, neyînî dest pê dike ku digihîje piştgiriya teknîkî. Xuya ye, tiştek di hundurê Janus de xirab dibe, dibe ku li wir jî hin qedexe hene. Me dest bi ceribandinê kir, sînorê bandê ji 300 daxist 200 Mbit/s, û pirsgirêk derketin. Naha me sê serverên nû bi yekcarî bi sînor û taybetmendiyên kêm kirî, em difikirin ku ev ê bibe sedema pêşkeftinek domdar di qalîteya ragihandinê de. Bê guman, me hewl neda ku em fêhm bikin ka li wir çi diqewime; kêzikên me her tişt in. Di parêznameya me de, em bibêjin ku di wê gavê de hewce bû ku bi zûtirîn dem pirsgirêka zextê were çareser kirin û ne bi rengek xweşik; ji bilî vê, Janus ji bo me qutiyek reş e ku bi C-yê hatî nivîsandin e, lêdana wê pir biha ye.

Ji Skype berbi WebRTC: me çawa pêwendiya vîdyoyê bi riya webê organîze kir

Welê, di pêvajoyê de em:

  • Hemî girêdanên ku dikarin werin nûve kirin, hem li ser server û hem jî li ser xerîdar nûve kirin (ev jî ceribandin bûn, me encaman şopand);
  • hemî xeletiyên naskirî yên ku bi dozên taybetî ve girêdayî ne, rast kirin, mînakî, dema ku pêwendî daket û bixweber nehat sererast kirin;
  • Me gelek civîn bi pargîdaniyên ku di warê ragihandina vîdyoyê de dixebitin û pirsgirêkên xwe nas kirin re pêk anîn: lîstikên weşana, organîzekirina webinar; me her tiştê ku ji me re kêrhatî xuya dikir ceriband;
  • Vekolînek teknîkî li ser kalîteya hardware û ragihandinê ya mamosteyan kir, ku ji wan herî zêde gilî hatin.

Ceribandin û guhertinên paşerojê îmkan da ku nerazîbûna ji ragihandinê di nav mamosteyan de ji %7,1 di Çileyê 2018 de dakeve %2,5 di Çileyê 2019 de.

Çi ye?

Stabilîzekirina platforma meya Vimbox yek ji projeyên sereke yên pargîdaniyê ji bo 2019-an e. Hêviyên me yên mezin hene ku em ê nikaribin gavê bidomînin û êdî pêwendiya vîdyoyê di giliyên jorîn de nebînin. Em têdigihin ku beşeke girîng a van giliyan bi kêmbûna komputer û înternetê ya bikarhêneran ve girêdayî ne, lê divê em vê beşê diyar bikin û yên mayî çareser bikin. Her tiştê din pirsgirêkek teknîkî ye, wusa dixuye ku divê em karibin pê re mijûl bibin.

Zehmetiya sereke ev e ku em nizanin ka bi rastî çêtirkirina kalîteyê heya kîjan astê gengaz e. Dîtina vê tawanê karê sereke ye. Ji ber vê yekê, du ceribandin hatin plan kirin:

  1. Vîdyoyê bi riya Janus bi p2p-ya birêkûpêk di şert û mercên şer de bidin hev. Ev ceribandin jixwe hatî kirin, di navbera çareseriya me û p2p de cûdahiyek girîng a îstatîstîkî nehat dîtin;
  2. Werin em karûbarên (biha) ji pargîdaniyên ku bi taybetî li ser çareseriyên pêwendiya vîdyoyê drav didin peyda bikin, û mîqdara negatîfiya wan bi ya heyî re bidin ber hev.

Ev her du ceribandin dê rê bidin me ku em armancek gihîştî nas bikin û li ser bisekinin.

Digel vê yekê, hejmarek kar hene ku dikarin bi rêkûpêk bêne çareser kirin:

  • Em li şûna nirxandinên subjektîf metrîka teknîkî ya kalîteya ragihandinê diafirînin;
  • Em têketinên danişînê yên berfirehtir çêdikin da ku em têkçûnên ku diqewimin rasttir analîz bikin, fêm bikin ka ew tam kengî û li ku qewimîne, û çi bûyerên ku xuya ne girêdayî wê gavê bûne;
  • Em berî dersê ceribandinek kalîteya pêwendiya otomatîkî amade dikin, û di heman demê de fersendê didin xerîdar ku bi destan girêdanê biceribîne da ku mîqdara negatîfiya ku ji hêla hardware û kanala wî ve hatî çêkirin kêm bike;
  • em ê bêtir ceribandinên barkirina pêwendiya vîdyoyê di şert û mercên xirab de, bi windabûna pakêtê ya guhêrbar, û hwd. pêşve bibin û bikin;
  • em di bûyera pirsgirêkan de tevgera serveran diguhezînin da ku tolerasyona xeletiyê zêde bikin;
  • Em ê bikarhêner hişyar bikin ku heke di pêwendiya wî de tiştek xelet hebe, wekî Skype dike, da ku ew fêm bike ku pirsgirêk li aliyê wî ye.

Ji Nîsanê ve, rêwerziya ragihandina vîdyoyê di hundurê Skyeng de bûye projeyek cihêreng a bêkêmasî, ku bi hilbera xwe ve mijûl dibe, ne tenê beşek Vimbox. Ev tê wê wateyê ku em dest bi lêgerîna li mirovan dikin bi vîdyoyê re di moda tev-time de dixebitin. Erê, wekî her dem Em li gelek mirovên baş digerin.

Û, bê guman, em berdewam dikin ku bi çalakî bi kes û pargîdaniyên ku bi ragihandina vîdyoyê re dixebitin re têkilî daynin. Heke hûn dixwazin bi me re ezmûnê biguhezînin, em ê kêfxweş bibin! Şîrove bikin, bikevin têkiliyê - em ê bersiva her kesî bidin.

Source: www.habr.com