Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Ang komunikasyon sa video mao ang panguna nga paagi sa komunikasyon tali sa magtutudlo ug estudyante sa plataporma sa Vimbox. Gibiyaan namon ang Skype sa dugay na nga panahon, gisulayan ang daghang mga solusyon sa ikatulo nga partido ug sa katapusan nahusay ang kombinasyon sa WebRTC - Janus-gateway. Sulod sa pipila ka mga panahon malipayon kami sa tanan, apan sa gihapon pipila ka negatibo nga mga aspeto nagpadayon sa pagtungha. Ingon usa ka sangputanan, usa ka lahi nga direksyon sa video ang gihimo.

Gipangutana nako si Kirill Rogovoy, ang pinuno sa bag-ong direksyon, aron hisgutan ang ebolusyon sa komunikasyon sa video sa Skyeng, ang mga problema nga nadiskubre, mga solusyon ug crutches nga sa katapusan among gigamit. Kami nanghinaut nga ang artikulo mahimong mapuslanon alang sa mga kompanya nga naghimo usab og video sa ilang kaugalingon pinaagi sa usa ka web application.

Usa ka gamay nga kasaysayan

Sa ting-init sa 2017, ang pangulo sa Skyeng development, Sergey Safonov, namulong sa Backend Conf uban ang usa ka istorya kon giunsa namo "gibiyaan ang Skype ug gipatuman ang WebRTC." Kadtong interesado mahimong motan-aw sa pagrekord sa pakigpulong sa link (~ 45 min), ug dinhi akong lakbit nga gilatid ang diwa niini.

Alang sa Skyeng School, ang komunikasyon sa video kanunay nga usa ka prayoridad nga paagi sa komunikasyon sa magtutudlo-estudyante. Sa sinugdan, ang Skype gigamit, apan kini dili igo nga katagbawan tungod sa daghang mga hinungdan, labi na tungod sa kakulang sa mga troso ug ang imposibilidad sa pag-integrate direkta sa aplikasyon sa web. Busa, gihimo namo ang tanang matang sa mga eksperimento.

Sa tinuud, ang among mga kinahanglanon alang sa komunikasyon sa video hapit sa mga musunud:
- kalig-on;
- ubos nga presyo kada leksyon;
- pagrekord sa mga leksyon;
β€” pagsubay kon kinsa ang mosulti kon unsa ka daghan (importante alang kanamo nga ang mga estudyante mosulti labaw pa sa magtutudlo sa panahon sa mga leksyon);
- linear scaling;
- abilidad sa paggamit sa UDP ug TCP.

Ang una nga gisulayan mao ang pagpatuman sa Tokbox kaniadtong 2013. Maayo ang tanan, apan kini nahimong mahal kaayo - 113 nga mga rubles matag leksyon - ug mikaon sa ganansya.

Unya sa 2015, ang Voximplant gisagol. Ania ang function nga kinahanglan namon aron masubay kung kinsa ang nagsulti kung unsa ka daghan, ug sa parehas nga oras ang solusyon labi ka barato: kung ang audio ra ang natala, nagkantidad kini og 20 nga mga rubles matag leksyon. Bisan pa, kini nagtrabaho lamang pinaagi sa UDP ug dili makabalhin sa TCP. Bisan pa, mga 40% sa mga estudyante ang mitapos sa paggamit niini.

Usa ka tuig ang milabay, nagsugod kami nga adunay mga kliyente sa korporasyon nga adunay ilang kaugalingon nga piho nga mga kinahanglanon. Pananglitan, ang tanan kinahanglan nga molihok pinaagi sa usa ka browser, ang kompanya nagbukas lamang sa http ug https; ie walay Skype o UDP. Mga kliyente sa korporasyon = kwarta, mao nga mibalik sila sa Tokbox, apan ang problema sa presyo wala mawala.

Solusyon - WebRTC ug Janus

Nakahukom nga gamiton browser platform alang sa peer-to-peer nga komunikasyon sa video WebRTC. Kini ang responsable sa pag-establisar og koneksyon, pag-encode ug pag-decode sa mga sapa, pag-synchronize sa mga track ug pagkontrol sa kalidad sa pagdumala sa mga glitches sa network. Sa among bahin, kinahanglan namon nga sigurohon ang pagbasa sa mga sapa gikan sa camera ug mikropono, pagdrowing og video, pagdumala sa koneksyon, pag-establisar sa koneksyon sa WebRTC ug pagpasa sa mga sapa niini, ingon man ang pagpadala sa mga mensahe sa pagsenyas tali sa mga kliyente aron makatukod usa ka koneksyon (WebRTC mismo naghulagway lamang sa format sa datos, apan dili ang mekanismo niini nga pagbalhin). Kung ang mga kliyente naa sa luyo sa NAT, ang WebRTC nagkonektar sa mga server sa STUN; kung dili kini makatabang, TURN ang mga server.

Ang usa ka regular nga koneksyon sa p2p dili igo alang kanamo, tungod kay gusto namon nga irekord ang mga leksyon alang sa dugang nga pag-analisar kung adunay mga reklamo. Busa nagpadala kami og mga sapa sa WebRTC pinaagi sa usa ka relay Janus Gateway ni Meetecho. Ingon usa ka sangputanan, ang mga kliyente wala makaila sa mga adres sa usag usa, nga makita lamang ang adres sa server sa Janus; kini usab naghimo sa mga gimbuhaton sa usa ka signal server. Si Janus adunay daghang mga bahin nga kinahanglan namon: awtomatiko nga mobalhin sa TCP kung ang kliyente adunay UDP nga gibabagan; makarekord sa UDP ug TCP nga mga sapa; scalable; Adunay bisan usa ka built-in nga plugin alang sa mga pagsulay sa echo. Kung gikinahanglan, ang mga server sa STUN ug TURN gikan sa Twilio awtomatikong konektado.

Sa ting-init sa 2017, kami adunay duha ka mga server sa Janus nga nagdagan, dugang usa ka dugang nga server alang sa pagproseso sa natala nga hilaw nga audio ug mga file sa video, aron dili ma-okupar ang mga nag-una nga mga processor. Kung nagkonektar, gipili ang mga server sa Janus sa usa ka odd-even nga basehan (numero sa koneksyon). Nianang panahona, igo na kini, sumala sa among mga pagbati, naghatag kini og gibana-bana nga upat ka pilo nga margin sa kaluwasan, ang porsyento sa pagpatuman mao ang mahitungod sa 80. Sa samang higayon, ang presyo gikunhoran ngadto sa ~ 2 ruble matag leksyon, dugang sa pagpalambo ug suporta.

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Pagbalik sa hilisgutan sa komunikasyon sa video

Kanunay namong gimonitor ang feedback gikan sa mga estudyante ug mga magtutudlo aron mailhan ug matul-id ang mga problema sa tukmang panahon. Sa ting-init sa 2018, ang kalidad sa tawag lig-on sa unang dapit taliwala sa mga reklamo. Sa usa ka bahin, nagpasabot kini nga malampuson namong nabuntog ang ubang mga kakulangan. Sa laing bahin, kinahanglan nga buhaton dayon ang usa ka butang: kung mabalda ang leksyon, peligro nga mawala ang kantidad niini, usahay kauban ang gasto sa pagpalit sa sunod nga pakete, ug kung mabalda ang pasiuna nga leksyon, peligro nga mawala ang potensyal nga kliyente. tanan.

Niadtong panahona, MVP mode pa ang among video communication. Sa yanong pagkasulti, gilusad nila kini, nagtrabaho kini, gi-scale nila kini kausa, nasabtan nila kung giunsa kini buhaton - maayo, maayo. Kon kini molihok, ayaw kini ayoha. Walay usa nga tinuyo nga nagtubag sa isyu sa kalidad sa komunikasyon. Pagka-Agosto, nahimong klaro nga dili na kini makapadayon, ug naglunsad kami og bulag nga direksyon aron mahibal-an kung unsa ang sayup sa WebRTC ug Janus.

Sa input, kini nga direksyon nakadawat: usa ka MVP nga solusyon, walay mga sukatan, walay mga tumong, walay mga proseso alang sa kalamboan, samtang 7% sa mga magtutudlo nagreklamo mahitungod sa kalidad sa komunikasyon (walay data sa mga estudyante usab).

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Usa ka bag-ong direksyon ang gisugdan

Ang sugo ingon niini:

  • Ang pangulo sa departamento, nga mao usab ang nag-unang developer.
  • Ang QA nagtabang sa pagsulay sa mga pagbag-o, pagpangita og bag-ong mga paagi sa paghimo og dili lig-on nga kondisyon sa komunikasyon, ug pagtaho sa mga problema gikan sa front line.
  • Ang analista kanunay nga nangita alang sa lainlaing mga correlation sa teknikal nga datos, nagpauswag sa pag-analisar sa feedback sa gumagamit, ug nagsusi sa mga resulta sa mga eksperimento.
  • Ang tagdumala sa produkto nagtabang sa kinatibuk-ang direksyon ug alokasyon sa mga kapanguhaan alang sa mga eksperimento.
  • Ang ikaduha nga developer kanunay nga makatabang sa pagprograma ug may kalabutan nga mga buluhaton.

Sa pagsugod, nagbutang kami usa ka medyo kasaligan nga sukatan nga nagsubay sa mga pagbag-o sa mga pagtasa sa kalidad sa komunikasyon (aberids sa mga adlaw, semana, bulan). Niadtong panahona, kini mga grado gikan sa mga magtutudlo; ang ulahi nga mga grado gikan sa mga estudyante gidugang ngadto kanila. Dayon nagsugod sila sa paghimo og mga pangagpas bahin sa kung unsa ang sayup nga nagtrabaho, gitul-id kini, ug gitan-aw ang mga pagbag-o sa dinamika. Giadto namo ang ubos nga nagbitay nga prutas: pananglitan, gipulihan namo ang vp8 codec sa vp9, ang performance milambo. Gisulayan namon nga magdula sa mga setting sa Janus ug magpahigayon sa uban pang mga eksperimento - sa kadaghanan nga mga kaso wala sila nagdala sa bisan unsang butang.

Sa ikaduhang yugto, mitumaw ang usa ka pangagpas: Ang WebRTC usa ka peer-to-peer nga solusyon, ug naggamit kami og server sa tunga. Tingali ang problema anaa dinhi? Nagsugod kami sa pagkalot ug nakit-an ang labing hinungdanon nga pag-uswag hangtod karon.

Nianang higayona, gipili ang usa ka server gikan sa pool gamit ang usa ka gamay nga algorithm: ang matag usa adunay kaugalingon nga "kabug-at", depende sa channel ug gahum, ug gisulayan namon nga ipadala ang tiggamit sa usa nga adunay labing kadaghan nga "timbang", nga wala paghatag ug pagtagad sa diin ang user nahimutang sa geograpiya . Ingon nga resulta, ang usa ka magtutudlo gikan sa St. Petersburg mahimong makigkomunikar sa usa ka estudyante gikan sa Siberia pinaagi sa Moscow, ug dili pinaagi sa among Janus server sa St.

Gibag-o na ang algorithm: karon, kung giablihan sa usa ka tiggamit ang among plataporma, gikolekta namon ang mga ping gikan kaniya sa tanan nga mga server gamit ang Ajax. Kung magtukod usa ka koneksyon, nagpili kami usa ka pares nga ping (magtutudlo-server ug estudyante-server) nga adunay labing gamay nga kantidad. Ang gamay nga ping nagpasabut nga gamay nga distansya sa network sa server; mas mubo nga gilay-on nagpasabot sa ubos nga posibilidad sa pagkawala sa mga pakete; Ang pagkawala sa pakete mao ang pinakadako nga negatibo nga hinungdan sa komunikasyon sa video. Ang bahin sa negatibo mikunhod sa katunga sa tulo ka bulan (aron patas, ang ubang mga eksperimento gihimo niining panahona, apan kini nga usa halos adunay labing epekto).

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Bag-ohay lang namong nadiskobrehan ang lain nga dili klaro, apan dayag nga importante nga butang: imbes nga usa ka gamhanan nga server sa Janus sa usa ka baga nga channel, mas maayo nga adunay duha ka mas simple nga adunay mas nipis nga bandwidth. Kini nahimong tin-aw human kami makapalit ug gamhanang mga makina sa paglaom nga mapuno ang daghang mga lawak (mga sesyon sa komunikasyon) niini sa samang higayon. Ang mga server adunay limitasyon sa bandwidth, nga tukma natong mahubad sa gidaghanon sa mga lawak - nahibal-an nato kung pila ang maablihan, pananglitan, sa 300 Mbit/s. Sa diha nga adunay daghan kaayo nga mga lawak nga bukas sa usa ka server, kami mohunong sa pagpili niini alang sa bag-ong mga kalihokan hangtud nga ang load mokunhod. Ang ideya mao nga, sa pagpalit sa usa ka kusgan nga makina, among i-load ang channel sa labing taas, aron sa katapusan kini limitado sa processor ug memorya, ug dili sa bandwidth. Apan kini nahimo nga human sa usa ka piho nga gidaghanon sa mga bukas nga mga lawak (420), bisan pa sa kamatuoran nga ang pagkarga sa processor, memorya ug disk layo pa kaayo sa mga limitasyon, ang negatibo nagsugod sa pag-abot sa teknikal nga suporta. Dayag, adunay nagkagrabe sa sulod ni Janus, tingali adunay pipila nga mga pagdili usab. Nagsugod kami sa pag-eksperimento, gipaubos ang limitasyon sa bandwidth gikan sa 300 hangtod 200 Mbit / s, ug nawala ang mga problema. Karon gipalit namon ang tulo ka bag-ong mga server nga dungan nga adunay mubu nga mga limitasyon ug mga kinaiya, gihunahuna namon nga kini modala sa usa ka lig-on nga pag-uswag sa kalidad sa komunikasyon. Siyempre, wala kami mosulay sa paghunahuna kung unsa ang nahitabo didto; ang among mga saklay mao ang tanan. Sa atong depensa, ingnon ta nga nianang higayuna gikinahanglan nga sulbaron ang dinalian nga problema sa labing madali nga panahon, ug dili kini himoong nindot; besides, si Janus para namo kay black box nga nasulat sa C, mahal kaayo ang pag-ukay niini.

Gikan sa Skype hangtod sa WebRTC: giunsa namo pag-organisar ang komunikasyon sa video pinaagi sa web

Aw, sa proseso kita:

  • gi-update ang tanan nga mga dependency nga mahimong ma-update, sa server ug sa kliyente (kini usab mga eksperimento, among gibantayan ang mga resulta);
  • giayo ang tanan nga giila nga mga bug nga may kalabutan sa piho nga mga kaso, pananglitan, kung ang koneksyon nahulog ug wala awtomatiko nga gipahiuli;
  • Naghimo kami daghang mga miting sa mga kompanya nga nagtrabaho sa natad sa komunikasyon sa video ug pamilyar sa among mga problema: streaming nga mga dula, pag-organisar sa mga webinar; among gisulayan ang tanan nga daw mapuslanon kanamo;
  • Naghimo ug teknikal nga pagrepaso sa kalidad sa hardware ug komunikasyon sa mga magtutudlo, diin naggikan ang kadaghanang reklamo.

Ang mga eksperimento ug misunod nga mga pagbag-o nagpaposible nga makunhuran ang pagkadiskontento sa komunikasyon sa mga magtutudlo gikan sa 7,1% sa Enero 2018 hangtod sa 2,5% sa Enero 2019.

Unsa ang sunod

Ang pagpalig-on sa among Vimbox nga plataporma usa sa mga nag-unang proyekto sa kompanya alang sa 2019. Kami adunay taas nga paglaum nga kami makahimo sa pagpadayon sa momentum ug dili na makita ang komunikasyon sa video sa mga nanguna nga mga reklamo. Among nasabtan nga ang usa ka mahinungdanong bahin niini nga mga reklamo may kalabutan sa mga lags sa mga kompyuter ug Internet sa mga tiggamit, apan kinahanglan natong determinahon kini nga bahin ug sulbaron ang uban. Ang tanan usa ka teknikal nga problema, ingon og kinahanglan naton nga masagubang kini.

Ang panguna nga kalisud mao nga wala kita mahibal-an kung unsang lebel ang posible nga mapauswag ang kalidad. Ang pagpangita niini nga kisame mao ang nag-unang buluhaton. Busa, duha ka eksperimento ang giplano:

  1. itandi ang video pinaagi sa Janus nga adunay regular nga p2p sa mga kondisyon sa kombat. Kini nga eksperimento nahimo na, walay istatistikal nga mahinungdanong kalainan ang nakit-an tali sa among solusyon ug p2p;
  2. Maghatag kita (mahal) nga mga serbisyo gikan sa mga kompanya nga eksklusibo nga nakakuha salapi sa mga solusyon sa komunikasyon sa video, ug itandi ang kantidad sa negatibo gikan kanila sa naa na.

Kining duha ka mga eksperimento magtugot kanato sa pag-ila sa usa ka makab-ot nga tumong ug pagtutok niini.

Dugang pa, adunay daghang mga buluhaton nga mahimong masulbad kanunay:

  • Naghimo kami usa ka teknikal nga sukatan sa kalidad sa komunikasyon imbes nga suhetibo nga mga pagsusi;
  • Naghimo kami og mas detalyado nga mga log sa sesyon aron mas tukma nga pag-analisar ang mga kapakyasan nga nahitabo, masabtan kung kanus-a ug asa eksakto kini nahitabo, ug kung unsa ang daw wala'y kalabutan nga mga panghitabo nga nahitabo nianang higayuna;
  • Nag-andam kami usa ka awtomatik nga pagsulay sa kalidad sa koneksyon sa wala pa ang leksyon, ug gihatagan usab ang kliyente nga higayon nga mano-mano ang pagsulay sa koneksyon aron makunhuran ang gidaghanon sa negatibo nga gipahinabo sa iyang hardware ug channel;
  • kita mopalambo ug magpahigayon og dugang nga mga pagsulay sa pagkarga sa komunikasyon sa video sa dili maayo nga mga kondisyon, nga adunay variable nga pagkawala sa packet, ug uban pa;
  • gibag-o namon ang pamatasan sa mga server kung adunay mga problema aron madugangan ang pagtugot sa sayup;
  • Atong pasidan-an ang tiggamit kung adunay bisan unsa nga sayup sa iyang koneksyon, sama sa gibuhat sa Skype, aron masabtan niya nga ang problema anaa sa iyang kiliran.

Sukad sa Abril, ang direksyon sa komunikasyon sa video nahimong usa ka hingpit nga bulag nga proyekto sa sulod sa Skyeng, nga nag-atubang sa kaugalingon nga produkto, dili usa ka bahin sa Vimbox. Kini nagpasabot nga kita nagsugod sa pagpangita sa mga tawo sa nagtrabaho uban sa video sa full time mode. Aw, sama sa kanunay Gipangita namo ang daghang maayong mga tawo.

Ug, siyempre, nagpadayon kami nga aktibo nga nakigsulti sa mga tawo ug kompanya nga nagtrabaho sa mga komunikasyon sa video. Kung gusto nimo magbayloay og kasinatian kanamo, malipay kami! Comment, kontaka - tubagon namo ang tanan.

Source: www.habr.com