O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

Cyfathrebu fideo yw'r brif ffordd o gyfathrebu rhwng athro a myfyriwr ar lwyfan Vimbox. Fe wnaethon ni roi'r gorau i Skype amser maith yn ôl, rhoi cynnig ar sawl datrysiad trydydd parti ac yn y pen draw setlo ar y cyfuniad WebRTC - Janus-porth. Am beth amser roeddem yn hapus gyda phopeth, ond roedd rhai agweddau negyddol yn parhau i ddod i'r amlwg. O ganlyniad, crëwyd cyfeiriad fideo ar wahân.

Gofynnais i Kirill Rogovoy, pennaeth y cyfeiriad newydd, i siarad am esblygiad cyfathrebu fideo yn Skyeng, y problemau a ddarganfuwyd, atebion a baglau a ddefnyddiwyd gennym yn y pen draw. Gobeithiwn y bydd yr erthygl yn ddefnyddiol i gwmnïau sydd hefyd yn creu fideo ar eu pen eu hunain trwy raglen we.

Tipyn o hanes

Yn ystod haf 2017, siaradodd pennaeth datblygiad Skyeng, Sergey Safonov, yn Backend Conf gyda stori am sut y gwnaethom “gadael Skype a gweithredu WebRTC.” Gall y rhai sydd â diddordeb wylio'r recordiad o'r araith yn cyswllt (~45 mun), ac yma byddaf yn amlinellu ei hanfod yn fyr.

Ar gyfer Ysgol Skyeng, mae cyfathrebu fideo bob amser wedi bod yn ffordd flaenoriaeth o gyfathrebu athro-myfyriwr. Ar y dechrau, defnyddiwyd Skype, ond yn bendant nid oedd yn foddhaol am nifer o resymau, yn bennaf oherwydd diffyg logiau ac amhosibilrwydd integreiddio'n uniongyrchol i'r rhaglen we. Felly, fe wnaethom gynnal pob math o arbrofion.

Mewn gwirionedd, roedd ein gofynion ar gyfer cyfathrebu fideo yn fras fel a ganlyn:
— sefydlogrwydd;
— pris isel y wers;
— cofnodi gwersi;
— olrhain pwy sy'n siarad faint (mae'n bwysig i ni fod myfyrwyr yn siarad mwy na'r athro yn ystod gwersi);
— graddio llinellol;
- y gallu i ddefnyddio CDU a TCP.

Y cyntaf i geisio oedd gweithredu Tokbox yn 2013. Roedd popeth yn dda, ond roedd yn ddrud iawn - 113 rubles y wers - a bwyta'r elw.

Yna yn 2015, integreiddiwyd Voximplant. Dyma'r swyddogaeth yr oedd ei hangen arnom i olrhain pwy siaradodd faint, ac ar yr un pryd roedd yr ateb yn llawer rhatach: pe bai sain yn unig yn cael ei recordio, roedd yn costio 20 rubles y wers. Fodd bynnag, dim ond trwy CDU yr oedd yn gweithio ac ni allai newid i TCP. Fodd bynnag, roedd tua 40% o fyfyrwyr yn ei ddefnyddio yn y pen draw.

Flwyddyn yn ddiweddarach, dechreuom gael cleientiaid corfforaethol gyda'u gofynion penodol eu hunain. Er enghraifft, dylai popeth weithio trwy borwr; dim ond http a https y mae'r cwmni'n ei agor; h.y. dim Skype na CDU. Cleientiaid corfforaethol = arian, felly fe wnaethant ddychwelyd i Tokbox, ond ni aeth problem pris i ffwrdd.

Ateb - WebRTC a Janus

Penderfynwyd defnyddio platfform porwr ar gyfer cyfathrebu fideo cyfoedion-i-gymar WebRTC. Mae'n gyfrifol am sefydlu cysylltiad, amgodio a datgodio ffrydiau, cydamseru traciau a rheoli ansawdd â thrin glitches rhwydwaith. O'n rhan ni, rhaid inni sicrhau ffrydiau darllen o'r camera a'r meicroffon, tynnu fideo, rheoli'r cysylltiad, sefydlu cysylltiad WebRTC a throsglwyddo ffrydiau iddo, yn ogystal â throsglwyddo negeseuon signalau rhwng cleientiaid i sefydlu cysylltiad (mae WebRTC ei hun yn disgrifio dim ond y fformat data, ond nid ei drosglwyddiadau mecanwaith). Os yw cleientiaid y tu ôl i NAT, mae WebRTC yn cysylltu gweinyddwyr STUN; os nad yw hyn yn helpu, gweinyddwyr TURN.

Nid yw cysylltiad p2p rheolaidd yn ddigon i ni, oherwydd rydym am gofnodi gwersi i'w dadansoddi ymhellach rhag ofn y bydd cwynion. Felly rydym yn anfon ffrydiau WebRTC trwy ras gyfnewid Porth Janus gan Meetecho. O ganlyniad, nid yw cleientiaid yn gwybod cyfeiriadau ei gilydd, gan weld cyfeiriad gweinydd Janus yn unig; mae hefyd yn cyflawni swyddogaethau gweinydd signal. Mae gan Janus lawer o'r nodweddion sydd eu hangen arnom: mae'n newid yn awtomatig i TCP os yw'r cleient wedi blocio'r CDU; yn gallu cofnodi ffrydiau CDU a TCP; graddadwy; Mae hyd yn oed ategyn adeiledig ar gyfer profion adlais. Os oes angen, mae gweinyddion STUN a TURN o Twilio wedi'u cysylltu'n awtomatig.

Yn ystod haf 2017, roedd gennym ddau weinydd Janus yn rhedeg, ynghyd â gweinydd ychwanegol ar gyfer prosesu ffeiliau sain a fideo amrwd wedi'u recordio, er mwyn peidio â meddiannu proseswyr y prif rai. Wrth gysylltu, dewiswyd gweinyddwyr Janus ar sail eilrif (rhif cysylltiad). Ar y pryd, roedd hyn yn ddigon, yn ôl ein teimladau, rhoddodd tua phedwarplyg ymyl diogelwch, y ganran gweithredu oedd tua 80. Ar yr un pryd, gostyngwyd y pris i ~ 2 rubles y wers, ynghyd â datblygiad a chefnogaeth.

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

Dychwelyd at y pwnc cyfathrebu fideo

Rydym yn monitro adborth gan fyfyrwyr ac athrawon yn gyson er mwyn nodi a chywiro problemau mewn modd amserol. Erbyn haf 2018, roedd ansawdd galwadau yn gadarn yn y lle cyntaf ymhlith cwynion. Ar y naill law, roedd hyn yn golygu ein bod wedi goresgyn diffygion eraill yn llwyddiannus. Ar y llaw arall, roedd angen gwneud rhywbeth ar frys: os amharir ar y wers, rydym mewn perygl o golli ei gwerth, weithiau ynghyd â chost prynu'r pecyn nesaf, ac os amharir ar y wers ragarweiniol, rydym mewn perygl o golli cleient posibl. yn gyfan gwbl.

Ar y pryd, roedd ein cyfathrebu fideo yn dal i fod yn y modd MVP. Yn syml, fe wnaethon nhw ei lansio, fe weithiodd, fe wnaethon nhw ei raddio unwaith, roedden nhw'n deall sut i'w wneud - wel, gwych. Os yw'n gweithio, peidiwch â'i drwsio. Nid oedd neb yn mynd i'r afael yn fwriadol â mater ansawdd cyfathrebu. Erbyn mis Awst, daeth yn amlwg na allai hyn barhau, a lansiwyd cyfeiriad ar wahân gennym i ddarganfod beth oedd yn bod ar WebRTC a Janus.

Yn y mewnbwn, derbyniodd y cyfeiriad hwn: datrysiad MVP, dim metrigau, dim nodau, dim prosesau ar gyfer gwella, tra bod 7% o athrawon yn cwyno am ansawdd y cyfathrebu (nid oedd data ar fyfyrwyr ychwaith).

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

Mae cyfeiriad newydd ar y gweill

Mae'r gorchymyn yn edrych fel hyn:

  • Pennaeth yr adran, sydd hefyd yn brif ddatblygwr.
  • Mae SA yn helpu i brofi newidiadau, yn chwilio am ffyrdd newydd o greu amodau cyfathrebu ansefydlog, ac yn adrodd am broblemau o'r rheng flaen.
  • Mae'r dadansoddwr yn gyson yn chwilio am gydberthynas amrywiol mewn data technegol, yn gwella'r dadansoddiad o adborth defnyddwyr, ac yn gwirio canlyniadau arbrofion.
  • Mae'r rheolwr cynnyrch yn helpu gyda'r cyfeiriad cyffredinol a dyraniad adnoddau ar gyfer arbrofion.
  • Mae ail ddatblygwr yn aml yn helpu gyda rhaglennu a thasgau cysylltiedig.

I ddechrau, fe wnaethom sefydlu metrig cymharol ddibynadwy a oedd yn olrhain newidiadau mewn asesiadau ansawdd cyfathrebu (cyfartaledd dros ddyddiau, wythnosau, misoedd). Bryd hynny, graddau gan athrawon oedd y rhain; ychwanegwyd graddau diweddarach gan fyfyrwyr atynt. Yna dechreuon nhw adeiladu damcaniaethau am yr hyn oedd yn gweithio o'i le, ei gywiro, ac edrych ar newidiadau mewn dynameg. Aethon ni am y ffrwythau crog isel: er enghraifft, fe wnaethom ddisodli'r codec vp8 gyda vp9, gwellodd y perfformiad. Fe wnaethon ni geisio chwarae gyda gosodiadau Janus a chynnal arbrofion eraill - yn y rhan fwyaf o achosion nid oeddent yn arwain at unrhyw beth.

Yn yr ail gam, daeth rhagdybiaeth i'r amlwg: Mae WebRTC yn ddatrysiad rhwng cymheiriaid, ac rydym yn defnyddio gweinydd yn y canol. Efallai fod y broblem yma? Dechreuon ni gloddio a chanfod y gwelliant mwyaf arwyddocaol hyd yn hyn.

Ar y foment honno, dewiswyd gweinydd o'r pwll gan ddefnyddio algorithm braidd yn wirion: roedd gan bob un ei “bwysau” ei hun, yn dibynnu ar y sianel a'r pŵer, a cheisiwyd anfon y defnyddiwr at yr un â'r “pwysau” mwyaf, hebddo. talu sylw i leoliad daearyddol y defnyddiwr . O ganlyniad, gallai athro o St Petersburg gyfathrebu â myfyriwr o Siberia trwy Moscow, ac nid trwy ein gweinydd Janus yn St Petersburg.

Mae'r algorithm wedi'i ail-wneud: nawr, pan fydd defnyddiwr yn agor ein platfform, rydyn ni'n casglu pings ganddo i bob gweinydd sy'n defnyddio Ajax. Wrth sefydlu cysylltiad, rydym yn dewis pâr o pings (athro-gweinydd a myfyriwr-gweinydd) gyda'r swm lleiaf. Mae llai o ping yn golygu llai o bellter rhwydwaith i'r gweinydd; mae pellter byrrach yn golygu llai o debygolrwydd o golli pecynnau; Colli pecyn yw'r ffactor negyddol mwyaf mewn cyfathrebu fideo. Gostyngodd y gyfran o negyddiaeth hanner mewn tri mis (a bod yn deg, cynhaliwyd arbrofion eraill ar hyn o bryd, ond mae bron yn sicr mai dyma'r un a gafodd yr effaith fwyaf).

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

Yn ddiweddar fe wnaethon ni ddarganfod peth arall nad yw'n amlwg, ond sy'n ymddangos yn bwysig: yn lle un gweinydd pwerus Janus ar sianel drwchus, mae'n well cael dau un symlach gyda lled band teneuach. Daeth hyn yn amlwg ar ôl i ni brynu peiriannau pwerus yn y gobaith o lenwi cymaint o ystafelloedd (sesiynau cyfathrebu) i mewn iddynt ar yr un pryd. Mae gan weinyddion derfyn lled band, y gallwn ei drosi'n gywir i nifer yr ystafelloedd - rydym yn gwybod faint y gellir eu hagor, er enghraifft, ar 300 Mbit yr eiliad. Cyn gynted ag y bydd gormod o ystafelloedd ar agor ar weinydd, rydyn ni'n rhoi'r gorau i'w ddewis ar gyfer gweithgareddau newydd nes bod y llwyth yn lleihau. Y syniad oedd, ar ôl prynu peiriant pwerus, y byddem yn llwytho'r sianel iddo i'r eithaf, fel y byddai'n cael ei gyfyngu yn y diwedd gan y prosesydd a'r cof, ac nid gan lled band. Ond mae'n troi allan bod ar ôl nifer penodol o ystafelloedd agored (420), er gwaethaf y ffaith bod y llwyth ar y prosesydd, cof a disg yn dal yn bell iawn o'r terfynau, negyddoldeb yn dechrau cyrraedd cymorth technegol. Yn ôl pob tebyg, mae rhywbeth yn gwaethygu y tu mewn i Janus, efallai bod rhai cyfyngiadau yno hefyd. Dechreuon ni arbrofi, gostwng y terfyn lled band o 300 i 200 Mbit yr eiliad, ac aeth y problemau i ffwrdd. Nawr rydym wedi prynu tri gweinydd newydd ar unwaith gyda chyfyngiadau a nodweddion isel, credwn y bydd hyn yn arwain at welliant sefydlog yn ansawdd y cyfathrebu. Wrth gwrs, ni wnaethom geisio darganfod beth oedd yn digwydd yno; ein baglau yw popeth. Yn ein hamddiffyniad, gadewch i ni ddweud bod angen datrys y broblem enbyd cyn gynted â phosibl ar y pryd, a pheidio â'i wneud yn hyfryd; heblaw, mae Janus i ni yn flwch du wedi ei ysgrifennu yn C, mae'n ddrud iawn tincer ag ef.

O Skype i WebRTC: sut y gwnaethom drefnu cyfathrebu fideo trwy'r we

Wel, yn y broses rydym yn:

  • diweddaru'r holl ddibyniaethau y gellid eu diweddaru, ar y gweinydd ac ar y cleient (roedd y rhain hefyd yn arbrofion, fe wnaethom fonitro'r canlyniadau);
  • trwsio'r holl fygiau a nodwyd yn ymwneud ag achosion penodol, er enghraifft, pan ddisgynnodd y cysylltiad ac na chafodd ei adfer yn awtomatig;
  • Fe wnaethom gynnal llawer o gyfarfodydd gyda chwmnïau sy'n gweithio ym maes cyfathrebu fideo ac yn gyfarwydd â'n problemau: ffrydio gemau, trefnu gweminarau; ceisiasom bob peth a ymddangosai yn ddefnyddiol i ni ;
  • Cynnal adolygiad technegol o ansawdd caledwedd a chyfathrebu athrawon, gan y daeth y nifer fwyaf o gwynion.

Roedd yr arbrofion a’r newidiadau dilynol yn ei gwneud hi’n bosibl lleihau anfodlonrwydd â chyfathrebu ymhlith athrawon o 7,1% ym mis Ionawr 2018 i 2,5% ym mis Ionawr 2019.

Beth sydd nesaf

Mae sefydlogi ein platfform Vimbox yn un o brif brosiectau'r cwmni ar gyfer 2019. Mae gennym obeithion mawr y byddwn yn gallu cynnal y momentwm ac na fyddwn bellach yn gweld cyfathrebu fideo yn y prif gwynion. Rydym yn deall bod rhan sylweddol o'r cwynion hyn yn ymwneud ag oedi yng nghyfrifiaduron defnyddwyr a'r Rhyngrwyd, ond rhaid inni benderfynu ar y rhan hon a datrys y gweddill. Mae popeth arall yn broblem dechnegol, mae'n ymddangos y dylem allu ymdopi ag ef.

Y prif anhawster yw nad ydym yn gwybod i ba lefel y mae'n bosibl gwella ansawdd mewn gwirionedd. Darganfod y nenfwd hwn yw'r brif dasg. Felly, cynlluniwyd dau arbrawf:

  1. cymharu fideo trwy Janus â p2p rheolaidd mewn amodau ymladd. Mae'r arbrawf hwn eisoes wedi'i wneud, ni chanfuwyd unrhyw wahaniaeth ystadegol arwyddocaol rhwng ein datrysiad a p2p;
  2. Gadewch i ni gyflenwi gwasanaethau (drud) gan gwmnïau sy'n gwneud arian yn gyfan gwbl ar atebion cyfathrebu fideo, a chymharu faint o negyddoldeb oddi wrthynt â'r un presennol.

Bydd y ddau arbrawf hyn yn ein galluogi i nodi nod cyraeddadwy a chanolbwyntio arno.

Yn ogystal, mae yna nifer o dasgau y gellir eu datrys yn rheolaidd:

  • Rydym yn creu metrig technegol o ansawdd cyfathrebu yn lle adolygiadau goddrychol;
  • Rydym yn gwneud cofnodion sesiwn manylach er mwyn dadansoddi'n fwy cywir y methiannau sy'n digwydd, deall pryd a ble yn union y digwyddodd y rhain, a pha ddigwyddiadau nad ydynt yn gysylltiedig i bob golwg a ddigwyddodd ar y foment honno;
  • Rydym yn paratoi prawf ansawdd cysylltiad awtomatig cyn y wers, a hefyd yn rhoi cyfle i'r cleient brofi'r cysylltiad â llaw er mwyn lleihau faint o negyddoldeb a achosir gan ei galedwedd a'i sianel;
  • byddwn yn datblygu ac yn cynnal mwy o brofion llwyth cyfathrebu fideo mewn amodau gwael, gyda cholled pecyn amrywiol, ac ati;
  • rydym yn newid ymddygiad gweinyddion rhag ofn y bydd problemau i gynyddu goddefgarwch namau;
  • Byddwn yn rhybuddio'r defnyddiwr os oes rhywbeth o'i le ar ei gysylltiad o gwbl, fel y mae Skype yn ei wneud, fel ei fod yn deall bod y broblem ar ei ochr.

Ers mis Ebrill, mae'r cyfeiriad cyfathrebu fideo wedi dod yn brosiect ar wahân llawn o fewn Skyeng, sy'n delio â'i gynnyrch ei hun, nid yn rhan o Vimbox yn unig. Mae hyn yn golygu ein bod yn dechrau chwilio am bobl ar gweithio gyda fideo yn y modd amser llawn. Wel, fel bob amser Rydym yn chwilio am lawer o bobl dda.

Ac, wrth gwrs, rydym yn parhau i gyfathrebu'n weithredol â phobl a chwmnïau sy'n gweithio gyda chyfathrebiadau fideo. Os ydych chi eisiau cyfnewid profiad gyda ni, byddwn yn falch! Sylwch, cysylltwch - byddwn yn ateb pawb.

Ffynhonnell: hab.com