Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Mawasiliano ya video ndio njia kuu ya mawasiliano kati ya mwalimu na mwanafunzi kwenye jukwaa la Vimbox. Tuliacha Skype muda mrefu uliopita, tulijaribu ufumbuzi kadhaa wa tatu na hatimaye kukaa kwenye mchanganyiko wa WebRTC - Janus-gateway. Kwa muda tulikuwa na furaha na kila kitu, lakini bado baadhi ya vipengele hasi viliendelea kujitokeza. Matokeo yake, mwelekeo tofauti wa video uliundwa.

Nilimwomba Kirill Rogovoy, mkuu wa mwelekeo mpya, azungumze kuhusu mabadiliko ya mawasiliano ya video huko Skyeng, matatizo yaliyogunduliwa, ufumbuzi na magongo ambayo hatimaye tulitumia. Tunatumahi kuwa nakala hiyo itakuwa muhimu kwa kampuni ambazo pia huunda video peke yao kupitia programu ya wavuti.

kidogo ya historia

Katika majira ya joto ya 2017, mkuu wa Maendeleo ya Skyeng, Sergey Safonov, alizungumza kwenye Backend Conf na hadithi kuhusu jinsi "tuliacha Skype na kutekeleza WebRTC." Wale wanaovutiwa wanaweza kutazama rekodi ya hotuba hiyo kiungo (~45 min), na hapa nitaelezea kwa ufupi kiini chake.

Kwa Shule ya Skyeng, mawasiliano ya video yamekuwa njia ya kipaumbele ya mawasiliano kati ya mwalimu na mwanafunzi. Mwanzoni, Skype ilitumiwa, lakini kimsingi haikuwa ya kuridhisha kwa sababu kadhaa, haswa kwa sababu ya ukosefu wa kumbukumbu na kutowezekana kwa kuunganishwa moja kwa moja kwenye programu ya wavuti. Kwa hivyo, tulifanya majaribio ya kila aina.

Kwa kweli, mahitaji yetu ya mawasiliano ya video yalikuwa takriban yafuatayo:
- utulivu;
- bei ya chini kwa kila somo;
- masomo ya kurekodi;
- kufuatilia ni nani anazungumza kwa kiasi gani (ni muhimu kwetu kwamba wanafunzi wazungumze zaidi kuliko mwalimu wakati wa masomo);
- kuongeza mstari;
- uwezo wa kutumia UDP na TCP.

Ya kwanza kujaribu ilikuwa kutekeleza Tokbox mnamo 2013. Kila kitu kilikuwa kizuri, lakini kiligeuka kuwa ghali sana - rubles 113 kwa somo - na kula faida.

Kisha mnamo 2015, Voximplant iliunganishwa. Hapa ndio kazi tuliyohitaji kufuatilia ni nani aliyezungumza kiasi gani, na wakati huo huo suluhisho lilikuwa nafuu zaidi: ikiwa sauti tu ilirekodi, iligharimu rubles 20 kwa somo. Hata hivyo, ilifanya kazi kupitia UDP pekee na haikuweza kubadili hadi TCP. Walakini, karibu 40% ya wanafunzi waliishia kuitumia.

Mwaka mmoja baadaye, tulianza kuwa na wateja wa kampuni na mahitaji yao maalum. Kwa mfano, kila kitu kinapaswa kufanya kazi kupitia kivinjari; kampuni inafungua tu http na https; yaani hakuna Skype au UDP. Wateja wa kampuni = pesa, kwa hivyo walirudi Tokbox, lakini shida ya bei haikuondoka.

Suluhisho - WebRTC na Janus

Imeamua kutumia jukwaa la kivinjari la mawasiliano ya video kati ya rika-kwa-rika WebRTC. Ina jukumu la kuanzisha muunganisho, usimbaji na usimbaji mitiririko, kusawazisha nyimbo na udhibiti wa ubora kwa kushughulikia hitilafu za mtandao. Kwa upande wetu, lazima tuhakikishe kusoma mitiririko kutoka kwa kamera na kipaza sauti, kuchora video, kudhibiti unganisho, kuanzisha muunganisho wa WebRTC na kupitisha mitiririko kwake, na pia kusambaza ujumbe wa kuashiria kati ya wateja ili kuanzisha muunganisho (WebRTC yenyewe inaelezea tu muundo wa data, lakini sio uhamishaji wa utaratibu wake). Ikiwa wateja wako nyuma ya NAT, WebRTC huunganisha seva za STUN; ikiwa hii haisaidii, GEUZA seva.

Muunganisho wa kawaida wa p2p haututoshi, kwa sababu tunataka kurekodi masomo kwa uchambuzi zaidi ikiwa kuna malalamiko. Kwa hivyo tunatuma mitiririko ya WebRTC kupitia relay Janus Gateway na Meetecho. Matokeo yake, wateja hawajui anwani za kila mmoja, wakiona tu anwani ya seva ya Janus; pia hufanya kazi za seva ya ishara. Janus ana vipengele vingi tunavyohitaji: hubadilisha kiotomatiki hadi TCP ikiwa mteja amezuiwa UDP; inaweza kurekodi mito yote ya UDP na TCP; scalable; Kuna hata programu-jalizi iliyojengewa ndani ya majaribio ya mwangwi. Ikihitajika, seva za STUN na TURN kutoka Twilio huunganishwa kiotomatiki.

Katika msimu wa joto wa 2017, tulikuwa na seva mbili za Janus zinazoendesha, pamoja na seva ya ziada ya usindikaji wa faili mbichi za sauti na video, ili usichukue wasindikaji wa zile kuu. Wakati wa kuunganisha, seva za Janus zilichaguliwa kwa misingi isiyo ya kawaida (nambari ya muunganisho). Wakati huo, hii ilikuwa ya kutosha, kwa mujibu wa hisia zetu, ilitoa takriban mara nne ya usalama, asilimia ya utekelezaji ilikuwa karibu 80. Wakati huo huo, bei ilipungua hadi ~ 2 rubles kwa somo, pamoja na maendeleo na usaidizi.

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Kurudi kwenye mada ya mawasiliano ya video

Tunafuatilia kila mara maoni kutoka kwa wanafunzi na walimu ili kutambua na kurekebisha matatizo kwa wakati ufaao. Kufikia msimu wa joto wa 2018, ubora wa simu ulikuwa mahali pa kwanza kati ya malalamiko. Kwa upande mmoja, hii ilimaanisha kwamba tumefanikiwa kushinda mapungufu mengine. Kwa upande mwingine, ilikuwa ni lazima kufanya jambo haraka: ikiwa somo limevurugika, tunahatarisha kupoteza thamani yake, wakati mwingine pamoja na gharama ya ununuzi wa kifurushi kinachofuata, na ikiwa somo la utangulizi limetatizwa, tuna hatari ya kupoteza mteja anayeweza. kabisa.

Wakati huo, mawasiliano yetu ya video yalikuwa bado katika hali ya MVP. Kwa ufupi, waliizindua, ilifanya kazi, waliipunguza mara moja, walielewa jinsi ya kuifanya - vizuri, kubwa. Ikiwa inafanya kazi, usiirekebishe. Hakuna aliyeshughulikia kwa makusudi suala la ubora wa mawasiliano. Kufikia Agosti, ikawa wazi kuwa hii haiwezi kuendelea, na tukazindua mwelekeo tofauti ili kujua ni nini kibaya na WebRTC na Janus.

Katika pembejeo, mwelekeo huu ulipokea: suluhisho la MVP, hakuna metrics, hakuna malengo, hakuna michakato ya kuboresha, wakati 7% ya walimu wanalalamika kuhusu ubora wa mawasiliano (hakukuwa na data kwa wanafunzi pia).

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Mwelekeo mpya unaendelea

Amri inaonekana kitu kama hiki:

  • Mkuu wa idara, ambaye pia ndiye msanidi mkuu.
  • QA husaidia kujaribu mabadiliko, hutafuta njia mpya za kuunda hali zisizo thabiti za mawasiliano, na huripoti matatizo kutoka mstari wa mbele.
  • Mchambuzi hutafuta mara kwa mara uwiano mbalimbali katika data ya kiufundi, huboresha uchanganuzi wa maoni ya watumiaji, na hukagua matokeo ya majaribio.
  • Kidhibiti cha bidhaa husaidia na mwelekeo wa jumla na ugawaji wa rasilimali kwa majaribio.
  • Msanidi wa pili mara nyingi husaidia na programu na kazi zinazohusiana.

Kuanza, tuliweka kipimo cha kuaminika ambacho kilifuatilia mabadiliko katika ukadiriaji wa ubora wa mawasiliano (wastani wa siku, wiki, miezi). Wakati huo, haya yalikuwa alama kutoka kwa walimu; baadaye alama kutoka kwa wanafunzi ziliongezwa kwao. Kisha wakaanza kujenga dhana juu ya kile kinachofanya kazi vibaya, kusahihisha, na kuangalia mabadiliko katika mienendo. Tulikwenda kwa matunda ya chini ya kunyongwa: kwa mfano, tulibadilisha codec ya vp8 na vp9, utendaji uliboreshwa. Tulijaribu kucheza na mipangilio ya Janus na kufanya majaribio mengine - katika hali nyingi hawakuongoza kwa chochote.

Katika hatua ya pili, dhana iliibuka: WebRTC ni suluhisho la rika-kwa-rika, na tunatumia seva katikati. Labda shida iko hapa? Tulianza kuchimba na kupata uboreshaji muhimu zaidi hadi sasa.

Wakati huo, seva kutoka kwa dimbwi ilichaguliwa kwa kutumia algorithm ya kijinga: kila moja ilikuwa na "uzito" wake, kulingana na chaneli na nguvu, na tulijaribu kutuma mtumiaji kwa yule aliye na "uzito" mkubwa zaidi, bila kuzingatia mahali ambapo mtumiaji alikuwa kijiografia. Kwa hiyo, mwalimu kutoka St. Petersburg angeweza kuwasiliana na mwanafunzi kutoka Siberia kupitia Moscow, na si kupitia seva yetu ya Janus huko St.

Algorithm imefanywa upya: sasa, wakati mtumiaji anafungua jukwaa letu, tunakusanya pings kutoka kwake hadi kwa seva zote kwa kutumia Ajax. Wakati wa kuanzisha uunganisho, tunachagua jozi ya pings (mwalimu-server na mwanafunzi-server) na kiasi kidogo zaidi. Ping kidogo inamaanisha umbali mdogo wa mtandao kwa seva; umbali mfupi unamaanisha uwezekano mdogo wa kupoteza pakiti; Upotezaji wa pakiti ndio sababu kuu mbaya katika mawasiliano ya video. Sehemu ya hasi ilipungua kwa nusu katika miezi mitatu (kuwa sawa, majaribio mengine yalifanywa kwa wakati huu, lakini hii karibu hakika ilikuwa na athari zaidi).

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Hivi majuzi tuligundua jambo lingine lisilo wazi, lakini dhahiri ni muhimu: badala ya seva moja yenye nguvu ya Janus kwenye chaneli nene, ni bora kuwa na mbili rahisi na bandwidth nyembamba. Hili lilidhihirika baada ya kununua mashine zenye nguvu kwa matumaini ya kubana vyumba vingi (vipindi vya mawasiliano) ndani yake kwa wakati mmoja. Seva zina kikomo cha bandwidth, ambacho tunaweza kutafsiri kwa usahihi katika idadi ya vyumba - tunajua ngapi zinaweza kufunguliwa, kwa mfano, saa 300 Mbit / s. Mara tu kuna vyumba vingi vilivyofunguliwa kwenye seva, tunaacha kuichagua kwa shughuli mpya hadi mzigo utapungua. Wazo lilikuwa kwamba, baada ya kununuliwa mashine yenye nguvu, tutapakia chaneli kwa kiwango cha juu, ili mwishowe iweze kupunguzwa na processor na kumbukumbu, na sio kwa bandwidth. Lakini ikawa kwamba baada ya idadi fulani ya vyumba vya wazi (420), pamoja na ukweli kwamba mzigo kwenye processor, kumbukumbu na disk bado ni mbali sana na mipaka, hasi huanza kufika kwa msaada wa kiufundi. Inavyoonekana, kuna kitu kinazidi kuwa mbaya ndani ya Janus, labda kuna vikwazo huko pia. Tulianza kujaribu, tukapunguza kikomo cha bandwidth kutoka 300 hadi 200 Mbit / s, na matatizo yalikwenda. Sasa tulinunua seva tatu mpya mara moja na mipaka ya chini na sifa, tunadhani kwamba hii itasababisha uboreshaji imara katika ubora wa mawasiliano. Kwa kweli, hatukujaribu kujua ni nini kilikuwa kikiendelea huko; magongo yetu ndio kila kitu. Katika utetezi wetu, hebu sema kwamba wakati huo ilikuwa ni lazima kutatua tatizo la kushinikiza haraka iwezekanavyo, na si kuifanya kwa uzuri; Mbali na hilo, Janus kwetu ni kisanduku cheusi kilichoandikwa kwa C, ni ghali sana kukichezea.

Kutoka Skype hadi WebRTC: jinsi tulivyopanga mawasiliano ya video kupitia wavuti

Kweli, katika mchakato sisi:

  • kusasisha utegemezi wote ambao unaweza kusasishwa, kwenye seva na kwa mteja (haya pia yalikuwa majaribio, tulifuatilia matokeo);
  • fasta mende zote zilizotambuliwa zinazohusiana na kesi maalum, kwa mfano, wakati uunganisho umeshuka na haukurejeshwa moja kwa moja;
  • Tulifanya mikutano mingi na kampuni zinazofanya kazi katika uwanja wa mawasiliano ya video na tunajua shida zetu: michezo ya utiririshaji, kuandaa wavuti; tulijaribu kila kitu ambacho kilionekana kuwa na manufaa kwetu;
  • Ilifanya ukaguzi wa kiufundi wa vifaa na ubora wa mawasiliano ya walimu, ambao malalamiko mengi yalitoka kwao.

Majaribio na mabadiliko yaliyofuata yamewezesha kupunguza hali ya kutoridhika na mawasiliano kati ya walimu kutoka 7,1% Januari 2018 hadi 2,5% Januari 2019.

Nini kifuatacho

Kuimarisha jukwaa letu la Vimbox ni moja wapo ya miradi kuu ya kampuni kwa 2019. Tuna matumaini makubwa kwamba tutaweza kudumisha kasi na kutoona tena mawasiliano ya video katika malalamiko makuu. Tunaelewa kuwa sehemu kubwa ya malalamiko haya yanahusiana na kuchelewa kwa kompyuta na Intaneti za watumiaji, lakini ni lazima tubaini sehemu hii na kutatua mengine. Kila kitu kingine ni tatizo la kiufundi, inaonekana tunapaswa kuwa na uwezo wa kukabiliana nalo.

Ugumu kuu ni kwamba hatujui ni kwa kiwango gani inawezekana kuboresha ubora. Kutafuta dari hii ni kazi kuu. Kwa hivyo, majaribio mawili yalipangwa:

  1. linganisha video kupitia Janus na p2p ya kawaida katika hali ya mapigano. Jaribio hili tayari limefanyika, hakuna tofauti kubwa ya kitakwimu iliyopatikana kati ya suluhisho letu na p2p;
  2. Wacha tutoe huduma (za gharama kubwa) kutoka kwa kampuni zinazopata pesa pekee kwenye suluhisho la mawasiliano ya video, na tulinganishe kiwango cha uhasi kutoka kwao na ile iliyopo.

Majaribio haya mawili yataturuhusu kutambua lengo linaloweza kufikiwa na kuzingatia.

Kwa kuongeza, kuna idadi ya kazi ambazo zinaweza kutatuliwa mara kwa mara:

  • Tunaunda kipimo cha kiufundi cha ubora wa mawasiliano badala ya hakiki za kibinafsi;
  • Tunatengeneza kumbukumbu za kikao za kina zaidi ili kuchambua kwa usahihi zaidi mapungufu yanayotokea, kuelewa ni lini na wapi hasa yalitokea, na ni matukio gani yanayoonekana kuwa hayahusiani yalifanyika wakati huo;
  • Tunatayarisha mtihani wa ubora wa uunganisho wa kiotomatiki kabla ya somo, na pia tunampa mteja fursa ya kupima uunganisho kwa mikono ili kupunguza kiasi cha uzembe unaosababishwa na maunzi na chaneli yake;
  • tutakuza na kufanya majaribio zaidi ya mzigo wa mawasiliano ya video katika hali mbaya, na upotezaji wa pakiti tofauti, nk;
  • tunabadilisha tabia ya seva katika kesi ya matatizo ili kuongeza uvumilivu wa makosa;
  • Tutaonya mtumiaji ikiwa kuna kitu kibaya na unganisho lake hata kidogo, kama Skype inavyofanya, ili aelewe kuwa shida iko upande wake.

Tangu Aprili, mwelekeo wa mawasiliano ya video umekuwa mradi kamili tofauti ndani ya Skyeng, unaohusika na bidhaa yake mwenyewe, sio tu sehemu ya Vimbox. Hii ina maana kwamba tunaanza kutafuta watu kufanya kazi na video katika hali ya wakati wote. Naam, kama kawaida Tunatafuta watu wengi wazuri.

Na, bila shaka, tunaendelea kuwasiliana kikamilifu na watu na makampuni yanayofanya kazi na mawasiliano ya video. Ikiwa unataka kubadilishana uzoefu na sisi, tutafurahi! Maoni, wasiliana - tutajibu kila mtu.

Chanzo: mapenzi.com