Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

Is e conaltradh bhidio am prìomh dhòigh conaltraidh eadar tidsear agus oileanach air àrd-ùrlar Vimbox. Thug sinn seachad Skype o chionn fhada, dh’ fheuch sinn grunn fhuasglaidhean treas-phàrtaidh agus mu dheireadh shocraich sinn air an WebRTC - measgachadh Janus-gateway. Airson ùine bha sinn toilichte leis a h-uile càil, ach lean cuid de nithean àicheil a’ nochdadh. Mar thoradh air an sin, chaidh stiùireadh bhidio air leth a chruthachadh.

Dh’ iarr mi air Kirill Rogovoy, ceannard an stiùiridh ùir, bruidhinn air mar a dh’atharraich conaltradh bhidio aig Skyeng, na duilgheadasan a chaidh a lorg, na fuasglaidhean agus na bagannan a chleachd sinn aig a’ cheann thall. Tha sinn an dòchas gum bi an artaigil feumail do chompanaidhean a bhios cuideachd a’ cruthachadh bhidio leotha fhèin tro thagradh lìn.

Pàirt de dh'eachdraidh

As t-samhradh 2017, bhruidhinn ceannard leasachaidh Skyeng, Sergey Safonov, aig Backend Conf le sgeulachd mu mar a thrèig sinn Skype agus mar a chuir sinn WebRTC an gnìomh. Faodaidh an fheadhainn aig a bheil ùidh coimhead air clàradh na h-òraid aig cheangal (~ 45 min), agus an seo bheir mi cunntas goirid air a bhrìgh.

Airson Sgoil Skyeng, tha conaltradh bhidio air a bhith na phrìomh dhòigh air conaltradh tidsear-oileanach a-riamh. An toiseach, chaidh Skype a chleachdadh, ach gu dearbh cha robh e riarachail airson grunn adhbharan, gu h-àraidh air sgàth gainnead chlàran agus neo-chomasachd amalachadh dìreach a-steach don tagradh lìn. Mar sin, rinn sinn a h-uile seòrsa de dheuchainnean.

Gu fìrinneach, bha na riatanasan againn airson conaltradh bhidio timcheall air na leanas:
- seasmhachd;
- prìs ìosal airson gach leasan;
- a 'clàradh leasanan;
- a’ cumail sùil air cò tha a’ bruidhinn na tha (tha e cudromach dhuinne gum bi oileanaich a’ bruidhinn barrachd na an tidsear rè leasanan);
- sgèile sreathach;
- comas an dà chuid UDP agus TCP a chleachdadh.

B’ e a’ chiad fhear a dh’ fheuch ri Tokbox a chuir an gnìomh ann an 2013. H-uile rud a bha math, ach thionndaidh e a-mach a bhith gu math daor - 113 rubles gach leasan - agus dh'ith suas an prothaid.

An uairsin ann an 2015, chaidh Voximplant fhilleadh a-steach. Seo an gnìomh a dh'fheumadh sinn a bhith a 'lorg cò a bhruidhinn dè an ìre, agus aig an aon àm bha am fuasgladh tòrr na bu shaoire: mura biodh ach fuaim air a chlàradh, chosgadh e 20 rubles gach leasan. Ach, cha do dh'obraich e ach tro UDP agus cha b' urrainn dha atharrachadh gu TCP. Ach, chrìochnaich mu 40% de dh'oileanaich a chleachdadh.

Bliadhna às deidh sin, thòisich sinn air teachdaichean corporra a bhith againn leis na riatanasan sònraichte aca fhèin. Mar eisimpleir, bu chòir a h-uile càil obrachadh tro bhrobhsair; chan eil a’ chompanaidh a’ fosgladh ach http agus https; i.e. chan eil Skype no UDP ann. Luchd-dèiligidh corporra = airgead, agus mar sin thill iad gu Tokbox, ach cha do dh'fhalbh an duilgheadas prìse.

Fuasgladh - WebRTC agus Janus

Co-dhùnadh a chleachdadh àrd-ùrlar brabhsair airson conaltradh bhidio co-aoisean WebRTC. Tha e an urra ri ceangal a stèidheachadh, sruthan còdachadh agus còdachadh, slighean sioncronaich agus smachd càileachd le bhith a’ làimhseachadh glitches lìonra. Airson ar pàirt, feumaidh sinn dèanamh cinnteach gum bi sruthan leughaidh bhon chamara agus am micreofon, a ’tarraing bhidio, a’ riaghladh a ’cheangail, a’ stèidheachadh ceangal WebRTC agus a ’cur sruthan thuige, a bharrachd air a bhith a’ sgaoileadh teachdaireachdan comharran eadar teachdaichean gus ceangal a stèidheachadh (chan eil WebRTC fhèin a ’toirt cunntas ach air na cruth dàta, ach chan e an uidheamachd aige a’ gluasad). Ma tha teachdaichean air cùl NAT, bidh WebRTC a’ ceangal frithealaichean STUN; mura cuidich seo, frithealaichean TURN.

Chan eil ceangal p2p cunbhalach gu leòr dhuinne, oir tha sinn airson leasanan a chlàradh airson tuilleadh sgrùdaidh gun fhios nach bi gearanan ann. Mar sin bidh sinn a’ cur sruthan WebRTC tro shealaidheachd Geata Janus le Meetecho. Mar thoradh air an sin, chan eil luchd-dèiligidh eòlach air seòlaidhean a chèile, a 'faicinn dìreach seòladh an fhrithealaiche Janus; bidh e cuideachd a’ coileanadh gnìomhan frithealaiche comharran. Tha mòran de na feartan aig Janus a dh’ fheumas sinn: bidh e ag atharrachadh gu fèin-ghluasadach gu TCP ma tha an neach-dèiligidh air bacadh a chuir air UDP; comasach air sruthan UDP agus TCP a chlàradh; scalable; Tha eadhon plugan togte ann airson deuchainnean mac-talla. Ma tha feum air, tha frithealaichean STUN agus TURN bho Twilio ceangailte gu fèin-ghluasadach.

As t-samhradh 2017, bha dà sheirbheisiche Janus againn a’ ruith, a bharrachd air frithealaiche a bharrachd airson a bhith a’ giullachd fhaidhlichean claisneachd is bhidio amh clàraichte, gus nach biodh iad a’ fuireach ann am pròiseasairean nam prìomh fheadhainn. Nuair a bha iad a’ ceangal, chaidh frithealaichean Janus a thaghadh air stèidh neo-chothromach (àireamh ceangail). Aig an àm sin, bha seo gu leòr, a rèir ar faireachdainnean, thug e timcheall air ceithir uiread de shàbhailteachd, bha an àireamh sa cheud de bhuileachadh mu 80. Aig an aon àm, chaidh a 'phrìs a lùghdachadh gu ~ 2 rubles gach leasan, a bharrachd air leasachadh agus taic.

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

A 'tilleadh gu cuspair conaltraidh bhidio

Bidh sinn an-còmhnaidh a’ cumail sùil air fios air ais bho oileanaich is tidsearan gus duilgheadasan aithneachadh agus a cheartachadh ann an deagh àm. Ron t-samhradh 2018, bha càileachd gairm gu daingeann sa chiad àite am measg ghearanan. Air an aon làimh, bha seo a 'ciallachadh gun robh sinn air faighinn seachad air easbhaidhean eile gu soirbheachail. Air an làimh eile, bha e riatanach rudeigin a dhèanamh gu h-èiginneach: ma thèid an leasan a bhriseadh, tha cunnart ann gun caill sinn a luach, uaireannan còmhla ri cosgais an ath phacaid a cheannach, agus ma thèid dragh a chuir air an leasan tòiseachaidh, tha cunnart ann gun caill sinn neach-dèiligidh a dh’ fhaodadh a bhith ann. gu h-iomlan.

Aig an àm sin, bha ar conaltradh bhidio fhathast ann am modh MVP. Gu sìmplidh, chuir iad air bhog e, dh’ obraich e, rinn iad sgèile aon uair, thuig iad mar a dhèanadh iad e - uill, sgoinneil. Ma dh'obraicheas e, na cuir ceart e. Cha do dhèilig duine a dh’aona ghnothach ri cùis càileachd conaltraidh. Ron Lùnastal, thàinig e am follais nach b’ urrainn seo cumail a’ dol, agus chuir sinn air bhog stiùireadh air leth gus faighinn a-mach dè bha ceàrr air WebRTC agus Janus.

Aig a’ chuir a-steach, fhuair an stiùireadh seo: fuasgladh MVP, gun mheatairean, gun amasan, gun phròiseasan airson leasachadh, agus tha 7% de thidsearan a’ gearain mu chàileachd a’ chonaltraidh (cha robh dàta ann air oileanaich an dàrna cuid).

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

Tha stiùireadh ùr a’ dol air adhart

Tha an àithne a’ coimhead rudeigin mar seo:

  • Tha ceannard na roinne, a tha cuideachd na phrìomh leasaiche.
  • Bidh QA a’ cuideachadh le bhith a’ dèanamh deuchainn air atharrachaidhean, a’ coimhead airson dòighean ùra air suidheachaidhean conaltraidh neo-sheasmhach a chruthachadh, agus ag aithris air duilgheadasan bhon loidhne aghaidh.
  • Bidh an anailis an-còmhnaidh a’ coimhead airson diofar cho-dhàimhean ann an dàta teignigeach, a’ leasachadh mion-sgrùdadh air fios air ais bho luchd-cleachdaidh, agus a’ sgrùdadh toraidhean dheuchainnean.
  • Bidh am manaidsear toraidh a’ cuideachadh le stiùireadh iomlan agus riarachadh ghoireasan airson deuchainnean.
  • Bidh dàrna leasaiche gu tric a’ cuideachadh le prògramadh agus gnìomhan co-cheangailte riutha.

An toiseach, stèidhich sinn meatrach an ìre mhath earbsach a bha a’ cumail sùil air atharrachaidhean ann am measaidhean càileachd conaltraidh (cuibheasach thar làithean, seachdainean, mìosan). Aig an àm sin, b’ e ìrean bho thidsearan a bha seo; chaidh ìrean nas fhaide air adhart bho oileanaich a chur riutha. An uairsin thòisich iad air barailean a thogail mu na bha ag obair ceàrr, a cheartachadh, agus coimhead air atharrachaidhean ann an dinamics. Chaidh sinn airson na measan crochte ìosal: mar eisimpleir, chuir sinn vp8 an àite codec vp9, thàinig piseach air coileanadh. Dh'fheuch sinn ri cluich le suidheachaidhean Janus agus deuchainnean eile a dhèanamh - sa mhòr-chuid de chùisean cha do lean iad gu rud sam bith.

Aig an dàrna ìre, nochd beachd-bharail: tha WebRTC na fhuasgladh co-aoisean, agus bidh sinn a’ cleachdadh frithealaiche sa mheadhan. Is dòcha gu bheil an duilgheadas an seo? Thòisich sinn a 'cladhach agus lorg sinn an leasachadh as cudromaiche gu ruige seo.

Aig an àm sin, chaidh frithealaiche bhon amar a thaghadh a’ cleachdadh algorithm caran gòrach: bha a “cuideam” fhèin aig gach fear a rèir an t-seanail agus an cumhachd, agus dh’ fheuch sinn ris an neach-cleachdaidh a chuir chun fhear leis an “cuideam” as motha, às aonais. a’ toirt aire do far an robh an neach-cleachdaidh suidhichte gu cruinn-eòlasach. Mar thoradh air an sin, b 'urrainn do thidsear à St Petersburg conaltradh a dhèanamh le oileanach à Siberia tro Moscow, agus chan ann tron ​​​​fhrithealaiche Janus againn ann an St Petersburg.

Chaidh an algairim ath-nuadhachadh: a-nis, nuair a dh'fhosglas neach-cleachdaidh an àrd-ùrlar againn, bidh sinn a 'tional pings bhuaithe gu gach seirbheisiche a' cleachdadh Ajax. Nuair a bhios sinn a’ stèidheachadh ceangal, bidh sinn a’ taghadh paidhir pings (tidsear-frithealaidh agus oileanach-frithealaiche) leis an t-suim as lugha. Tha nas lugha de ping a 'ciallachadh nas lugha de astar lìonra chun an fhrithealaiche; tha astar nas giorra a 'ciallachadh nas lugha de choltas gun tèid pacaidean a chall; Is e call pacaid am feart àicheil as motha ann an conaltradh bhidio. Thuit a 'chuibhreann de àicheileachd le leth ann an trì mìosan (a bhith cothromach, chaidh deuchainnean eile a dhèanamh aig an àm seo, ach cha mhòr nach robh a' bhuaidh as motha aig an fhear seo).

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

O chionn ghoirid lorg sinn rud eile nach robh follaiseach, ach a rèir coltais cudromach: an àite aon fhrithealaiche cumhachdach Janus air seanal tiugh, tha e nas fheàrr dà fhear nas sìmplidh a bhith agad le leud-bann nas taine. Dh'fhàs seo soilleir às deidh dhuinn innealan cumhachdach a cheannach an dòchas na h-uimhir de sheòmraichean (seiseanan conaltraidh) a chuir a-steach annta aig an aon àm. Tha crìoch leud-bann aig frithealaichean, as urrainn dhuinn eadar-theangachadh gu ceart gu àireamh nan seòmraichean - tha fios againn cia mheud a ghabhas fhosgladh, mar eisimpleir, aig 300 Mbit/s. Cho luath ‘s a tha cus rumannan fosgailte air frithealaiche, stadaidh sinn ga thaghadh airson gnìomhachdan ùra gus an lughdaich an luchd. B ’e am beachd, às deidh dhuinn inneal cumhachdach a cheannach, gum biodh sinn a’ luchdachadh an t-sianal chun ìre as àirde, gus am biodh e aig a ’cheann thall air a chuingealachadh leis a’ phròiseasar agus a ’chuimhne, agus chan ann le leud-bann. Ach thionndaidh e a-mach, às deidh àireamh sònraichte de sheòmraichean fosgailte (420), a dh ’aindeoin gu bheil an luchd air a’ phròiseasar, cuimhne agus diosc fhathast fada bho na crìochan, tha àicheileachd a ’tòiseachadh a’ ruighinn taic theicnigeach. A rèir choltais, tha rudeigin a’ fàs nas miosa am broinn Janus, is dòcha gu bheil cuid de chuingealachaidhean an sin cuideachd. Thòisich sinn a’ feuchainn, lughdaich sinn a’ chrìoch leud-bann bho 300 gu 200 Mbit/s, agus dh’ fhalbh na duilgheadasan. A-nis cheannaich sinn trì frithealaichean ùra aig an aon àm le crìochan agus feartan ìosal, tha sinn den bheachd gun lean seo gu leasachadh seasmhach ann an càileachd conaltraidh. Gu dearbh, cha do dh'fheuch sinn ri faighinn a-mach dè a bha a 'dol an sin; tha na bagaichean againn a h-uile dad. Anns an dìon againn, canaidh sinn gu robh e riatanach aig an àm sin an duilgheadas èiginneach fhuasgladh cho luath ‘s a ghabhas, agus gun a bhith ga dhèanamh breagha; a bharrachd air an sin, tha bogsa dubh aig Janus dhuinne sgrìobhte ann an C, tha e gu math daor a bhith a’ tinker leis.

Bho Skype gu WebRTC: mar a chuir sinn air dòigh conaltradh bhidio tron ​​​​lìon

Uill, sa phròiseas tha sinn:

  • ùrachadh a h-uile eisimeileachd a dh’ fhaodadh a bhith air ùrachadh, an dà chuid air an fhrithealaiche agus air an neach-dèiligidh (b ’e deuchainnean a bha seo cuideachd, rinn sinn sùil air na toraidhean);
  • shuidhich a h-uile buga comharraichte co-cheangailte ri cùisean sònraichte, mar eisimpleir, nuair a thuit an ceangal agus nach deach ath-nuadhachadh gu fèin-ghluasadach;
  • Chùm sinn tòrr choinneamhan le companaidhean a tha ag obair ann an raon conaltradh bhidio agus eòlach air na duilgheadasan againn: sruthadh gheamannan, eagrachadh co-labhairtean-lìn; dh' fheuch sinn gach ni a bha feumail duinn ;
  • Rinn sinn lèirmheas teignigeach air càileachd bathar-cruaidh is conaltraidh luchd-teagaisg, bhon tàinig a’ mhòr-chuid de ghearanan.

Rinn na deuchainnean agus na h-atharrachaidhean às deidh sin e comasach mì-riarachas le conaltradh am measg thidsearan a lughdachadh bho 7,1% san Fhaoilleach 2018 gu 2,5% san Fhaoilleach 2019.

Dè tha ri thighinn

Is e a bhith a’ bunailteachadh an àrd-ùrlar Vimbox againn aon de phrìomh phròiseactan a’ chompanaidh airson 2019. Tha dòchasan mòra againn gun urrainn dhuinn an gluasad a chumail suas agus nach fhaic sinn conaltradh bhidio tuilleadh anns na prìomh ghearanan. Tha sinn a’ tuigsinn gu bheil pàirt chudromach de na gearanan sin co-cheangailte ri lagan ann an coimpiutairean luchd-cleachdaidh agus eadar-lìn, ach feumaidh sinn am pàirt seo a dhearbhadh agus an còrr fhuasgladh. Tha a h-uile càil eile na dhuilgheadas teignigeach, tha e coltach gum bu chòir dhuinn a bhith comasach air dèiligeadh ris.

Is e am prìomh dhuilgheadas nach eil fios againn gu dè an ìre as urrainn dha càileachd a leasachadh. Is e am prìomh obair a bhith a’ faighinn a-mach am mullach seo. Mar sin, chaidh dà dheuchainnean a dhealbhadh:

  1. dèan coimeas eadar bhidio tro Janus agus p2p cunbhalach ann an suidheachaidhean sabaid. Chaidh an deuchainn seo a dhèanamh mar-thà, cha deach eadar-dhealachadh mòr staitistigeil a lorg eadar ar fuasgladh agus p2p;
  2. Bheir sinn seachad seirbheisean (daor) bho chompanaidhean a bhios a ’dèanamh airgead a-mhàin air fuasglaidhean conaltraidh bhidio, agus dèan coimeas eadar an ìre de àicheileachd bhuapa leis an fhear a th’ ann.

Leigidh an dà dheuchainn seo leinn amas a ghabhas coileanadh a chomharrachadh agus fòcas a chuir air.

A bharrachd air an sin, tha grunn ghnìomhan ann a dh’ fhaodar fhuasgladh gu riaghailteach:

  • Bidh sinn a’ cruthachadh meatrach theicnigeach de chàileachd conaltraidh an àite lèirmheasan cuspaireil;
  • Bidh sinn a’ dèanamh logaichean seisean nas mionaidiche gus mion-sgrùdadh nas mionaidiche a dhèanamh air na fàilligidhean a tha a’ tachairt, tuigsinn cuin agus càite dìreach a thachair iad, agus dè na tachartasan a tha coltach gun cheangal a thachair aig an àm sin;
  • Bidh sinn ag ullachadh deuchainn càileachd ceangail fèin-ghluasadach ron leasan, agus cuideachd a’ toirt cothrom don neach-dèiligidh an ceangal a dhearbhadh le làimh gus an ìre de àicheileachd a dh’ adhbhraich am bathar-cruaidh is an t-sianal aige a lughdachadh;
  • leasaichidh sinn agus giùlainidh sinn barrachd dheuchainnean luchdan conaltraidh bhidio ann an droch shuidheachadh, le call pacaid caochlaideach, msaa;
  • bidh sinn ag atharrachadh giùlan luchd-frithealaidh gun fhios nach bi duilgheadasan ann gus fulangas sgàinidh a mheudachadh;
  • Bheir sinn rabhadh don neach-cleachdaidh ma tha rudeigin ceàrr air a’ cheangal aige idir, mar a nì Skype, gus an tuig e gu bheil an duilgheadas air a thaobh.

Bhon Ghiblean, tha an stiùireadh conaltraidh bhidio air a thighinn gu bhith na phròiseact làn-chuimseach air leth taobh a-staigh Skyeng, a’ dèiligeadh ris an toradh aige fhèin, chan e dìreach pàirt de Vimbox. Tha seo a’ ciallachadh gu bheil sinn a’ tòiseachadh a’ coimhead airson daoine air adhart ag obair le bhidio ann am modh làn-ùine. Uill, mar a bha e an-còmhnaidh Tha sinn a’ coimhead airson tòrr dhaoine math.

Agus, gu dearbh, tha sinn a 'cumail oirnn a' conaltradh gu gnìomhach le daoine agus companaidhean a tha ag obair le conaltradh bhidio. Ma tha thu airson eòlas iomlaid leinn, bidh sinn toilichte! Thoir beachd, cuir fios thugainn - freagraidh sinn a h-uile duine.

Source: www.habr.com