{"id":30842,"date":"2019-10-31T21:37:44","date_gmt":"2019-10-31T18:37:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\/"},"modified":"2021-02-01T11:37:06","modified_gmt":"2021-02-01T09:37:06","slug":"ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","title":{"rendered":"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/92ea7848049d68c0b41b821bc8b83d54.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Videozvuk je hlavn\u00edm zp\u016fsobem komunikace u\u010ditele a studenta na platform\u011b Vimbox. D\u00e1vno jsme opustili Skype, vyzkou\u0161eli jsme n\u011bkolik extern\u00edch \u0159e\u0161en\u00ed a nakonec jsme se rozhodli pro kombinaci WebRTC a Janus-gateway. N\u011bjakou dobu jsme byli spokojeni, ale n\u011bkter\u00e9 negativn\u00ed momenty se st\u00e1le objevovaly. Nakonec bylo vytvo\u0159eno samostatn\u00e9 odd\u011blen\u00ed pro video.<\/p>\n<p>Po\u017e\u00e1dal jsem Kirilla Rogovsk\u00e9ho, vedouc\u00edho nov\u00e9ho odd\u011blen\u00ed, aby n\u00e1m vypr\u00e1v\u011bl o evoluci videozvuku v Skyeng, o zji\u0161t\u011bn\u00fdch probl\u00e9mech, \u0159e\u0161en\u00edch a improvizac\u00edch, kter\u00e9 jsme nakonec pou\u017eili. Douf\u00e1me, \u017ee \u010dl\u00e1nek bude u\u017eite\u010dn\u00fd tak\u00e9 pro firmy, kter\u00e9 se sna\u017e\u00ed zav\u00e9st video p\u0159es webovou aplikaci.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"nemnogo-istorii\">Trocha historie<\/h2>\n<p>V l\u00e9t\u011b 2017 se \u0161\u00e9f v\u00fdvoje Skyeng Sergey Safonov p\u0159edstavil na Backend Conf s prezentac\u00ed o tom, jak jsme \"opustili Skype a implementovali WebRTC\". Ti, kdo maj\u00ed z\u00e1jem, si mohou z\u00e1znam jeho vystoupen\u00ed prohl\u00e9dnout na <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0BiE1Rt-bak\">odkazu<\/a><\/noindex> (~45 min), a zde stru\u010dn\u011b shrnu jeho obsah.<\/p>\n<p>Pro \u0161kolu Skyeng byla videokomunikace v\u017edy prioritn\u00edm zp\u016fsobem komunikace u\u010ditel-\u017e\u00e1k. Zpo\u010d\u00e1tku jsme pou\u017e\u00edvali Skype, ale ten n\u00e1m z mnoha d\u016fvod\u016f zcela nevyhovoval, zejm\u00e9na kv\u016fli absenci log\u016f a nemo\u017enosti integrace p\u0159\u00edmo do webov\u00e9 aplikace. Proto jsme prov\u00e1d\u011bli r\u016fzn\u00e9 experimenty.<\/p>\n<p>Po\u017eadavky na videokomunikaci jsme m\u011bli p\u0159ibli\u017en\u011b n\u00e1sleduj\u00edc\u00ed:<br \/>\n\u2014 stabilita;<br \/>\n\u2014 n\u00edzk\u00e1 cena za lekci;<br \/>\n\u2014 nahr\u00e1v\u00e1n\u00ed lekc\u00ed;<br \/>\n\u2014 sledov\u00e1n\u00ed, kolik kdo mluv\u00ed (je pro n\u00e1s d\u016fle\u017eit\u00e9, aby studenti mluvili v\u00edc ne\u017e u\u010ditel b\u011bhem lekc\u00ed);<br \/>\n\u2014 line\u00e1rn\u00ed \u0161k\u00e1lovatelnost;<br \/>\n\u2014 mo\u017enost pou\u017e\u00edvat jak UDP, tak TCP.<\/p>\n<p>Prvn\u00edm krokem v roce 2013 bylo pokusit se implementovat Tokbox. V\u0161echno fungovalo dob\u0159e, ale bylo to velmi drah\u00e9 \u2013 113 rubl\u016f za lekci \u2013 a to v\u00fdrazn\u011b sni\u017eovalo zisk.<\/p>\n<p>Pak v roce 2015 jsme integrovali Voximplant. Toto \u0159e\u0161en\u00ed m\u011blo pot\u0159ebnou funkci sledov\u00e1n\u00ed, kdo kolik mluv\u00ed, a z\u00e1rove\u0148 bylo v\u00fdrazn\u011b levn\u011bj\u0161\u00ed: s podm\u00ednkou nahr\u00e1v\u00e1n\u00ed pouze zvuku to vy\u0161lo na 20 rubl\u016f za lekci. Fungovalo to v\u0161ak pouze p\u0159es UDP, p\u0159epnout na TCP to neum\u011blo. P\u0159esto ho nakonec pou\u017e\u00edvalo kolem 40 % student\u016f.<\/p>\n<p>Po roce jsme za\u010dali m\u00edt firemn\u00ed klienty se sv\u00fdmi specifick\u00fdmi po\u017eadavky. Nap\u0159\u00edklad v\u0161e mus\u00ed fungovat p\u0159es prohl\u00ed\u017ee\u010d, v spole\u010dnosti jsou otev\u0159eny pouze http a https; t. j. \u017e\u00e1dn\u00e9 \u201eSkype\u201c a UDP. Firemn\u00ed klienti = pen\u00edze, proto jsme se vr\u00e1tili k Tokboxu, ale probl\u00e9m s cenou nezmizel.<\/p>\n<h2 id=\"reshenie----webrtc-i-janus\">\u0158e\u0161en\u00ed \u2014 WebRTC a Janus<\/h2>\n<p>Rozhodli jsme se pou\u017e\u00edt <noindex><a rel=\"nofollow\" href=\"https:\/\/webrtc.org\/\">prohl\u00ed\u017ee\u010dovou platformu pro peer-to-peer videohovory WebRTC<\/a><\/noindex>. Ta zaji\u0161\u0165uje nav\u00e1z\u00e1n\u00ed spojen\u00ed, k\u00f3dov\u00e1n\u00ed a dek\u00f3dov\u00e1n\u00ed tok\u016f, synchronizaci stop a kontrolu kvality s \u0159e\u0161en\u00edm s\u00ed\u0165ov\u00fdch probl\u00e9m\u016f. Na na\u0161\u00ed stran\u011b mus\u00edme zajistit na\u010d\u00edt\u00e1n\u00ed tok\u016f z kamery a mikrofonu, vykreslov\u00e1n\u00ed videa, spr\u00e1vu spojen\u00ed, nastaven\u00ed WebRTC p\u0159ipojen\u00ed a p\u0159ed\u00e1v\u00e1n\u00ed mu tok\u016f, stejn\u011b jako p\u0159ed\u00e1v\u00e1n\u00ed sign\u00e1ln\u00edch zpr\u00e1v mezi klienty pro nav\u00e1z\u00e1n\u00ed spojen\u00ed (s\u00e1m WebRTC popisuje pouze form\u00e1t dat, nikoli mechanismus jejich p\u0159enosu). V p\u0159\u00edpad\u011b, \u017ee se klienti nach\u00e1zej\u00ed za NAT, WebRTC p\u0159ipojuje STUN servery, pokud to nepom\u00e1h\u00e1, pak TURN servery.<\/p>\n<p>Obvykl\u00e9 p2p spojen\u00ed n\u00e1m nesta\u010d\u00ed, proto\u017ee chceme nahr\u00e1vat lekce pro dal\u0161\u00ed anal\u00fdzu v p\u0159\u00edpad\u011b st\u00ed\u017enost\u00ed. Proto pos\u00edl\u00e1me toky WebRTC p\u0159es retransl\u00e1tor <noindex><a rel=\"nofollow\" href=\"https:\/\/janus.conf.meetecho.com\/\">Janus Gateway od Meetecho<\/a><\/noindex>. V d\u016fsledku toho klienti neznaj\u00ed adresy jeden druh\u00e9ho, vid\u00ed pouze adresu serveru Janus; ten z\u00e1rove\u0148 pln\u00ed funkce sign\u00e1ln\u00edho serveru. Janus m\u00e1 mnoho po\u017eadovan\u00fdch funkc\u00ed: automaticky p\u0159ech\u00e1z\u00ed do TCP, pokud je UDP u klienta blokov\u00e1no; um\u00ed nahr\u00e1vat toky jak UDP, tak TCP; je \u0161k\u00e1lovateln\u00fd; dokonce m\u00e1 vestav\u011bn\u00fd plugin pro echo testy. V p\u0159\u00edpad\u011b pot\u0159eby se automaticky p\u0159ipojuj\u00ed STUN a TURN servery od Twilio.<\/p>\n<p>V l\u00e9t\u011b roku 2017 jsme m\u011bli v provozu dva servery Janus plus dal\u0161\u00ed server pro zpracov\u00e1n\u00ed nahran\u00fdch surov\u00fdch soubor\u016f audio a video, abychom nezat\u011b\u017eovali procesory hlavn\u00edch. P\u0159i p\u0159ipojen\u00ed byly servery Janus vyb\u00edr\u00e1ny na z\u00e1klad\u011b principu sud\u00fd - lich\u00fd (\u010d\u00edslo spojen\u00ed). V t\u00e9 dob\u011b to sta\u010dilo, podle na\u0161ich pocit\u016f to poskytovalo p\u0159ibli\u017en\u011b \u010dty\u0159n\u00e1sobn\u00e9 rezervy, m\u00edra implementace byla kolem 80. Cena se p\u0159itom sn\u00ed\u017eila na ~2 rubly za lekci, plus v\u00fdvoj a \u00fadr\u017eba.<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/fd1cd47a6625f1ddaa20ed2a6067be60.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"vozvraschenie-k-teme-videosvyazi\">N\u00e1vrat k t\u00e9matu videohovoru<\/h2>\n<p>St\u00e1le monitorujeme zp\u011btnou vazbu od student\u016f a u\u010ditel\u016f, abychom v\u010das identifikovali a \u0159e\u0161ili probl\u00e9my. K l\u00e9tu 2018 se kvalitn\u00ed p\u0159ipojen\u00ed stalo nej\u010dast\u011bj\u0161\u00ed st\u00ed\u017enost\u00ed. Na jedn\u00e9 stran\u011b to znamenalo, \u017ee jsme \u00fasp\u011b\u0161n\u011b vy\u0159e\u0161ili jin\u00e9 nedostatky. Na stran\u011b druh\u00e9 bylo t\u0159eba okam\u017eit\u011b n\u011bco ud\u011blat: p\u0159i p\u0159eru\u0161en\u00ed lekce riskujeme ztr\u00e1tu jej\u00ed hodnoty, n\u011bkdy spolu se ztr\u00e1tou hodnoty n\u00e1kupu dal\u0161\u00edho bal\u00ed\u010dku a p\u0159i p\u0159eru\u0161en\u00ed \u00favodn\u00ed lekce dokonce ztr\u00e1tu potenci\u00e1ln\u00edho klienta.<\/p>\n<p>V t\u00e9 dob\u011b byla na\u0161e videokomunikace st\u00e1le v re\u017eimu MVP. Jin\u00fdmi slovy, spustili jsme to, fungovalo to, jednou jsme to roz\u0161\u00ed\u0159ili, pochopili jsme, jak to d\u011blat \u2013 a to je skv\u011bl\u00e9. If it works, don\u2019t fix it. Nikdo se c\u00edlen\u011b nezab\u00fdval ot\u00e1zkou kvality p\u0159ipojen\u00ed. V srpnu bylo jasn\u00e9, \u017ee to takhle nem\u016f\u017ee pokra\u010dovat, a spustili jsme samostatnou oblast, abychom zjistili, co vlastn\u011b nen\u00ed v po\u0159\u00e1dku s WebRTC a Janus.<\/p>\n<p>Na za\u010d\u00e1tku tato oblast dostala: \u0159e\u0161en\u00ed MVP, \u017e\u00e1dn\u00e9 metriky, \u017e\u00e1dn\u00e9 c\u00edle, \u017e\u00e1dn\u00e9 procesy pro zlep\u0161en\u00ed a p\u0159itom 7% u\u010ditel\u016f si st\u011b\u017eovalo na kvalitu p\u0159ipojen\u00ed (nebyly \u017e\u00e1dn\u00e9 \u00fadaje o studentech).<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/f8134229567f1187b00ec5c21a79800c.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"novoe-napravlenie-beretsya-za-rabotu\">Nov\u00e1 oblast se pustila do pr\u00e1ce<\/h2>\n<p>T\u00fdm vypad\u00e1 p\u0159ibli\u017en\u011b takto:<\/p>\n<ul>\n<li>Vedouc\u00ed oblasti, z\u00e1rove\u0148 hlavn\u00ed v\u00fdvoj\u00e1\u0159.<\/li>\n<li>QA pom\u00e1haj\u00ed testovat zm\u011bny, hledaj\u00ed nov\u00e9 zp\u016fsoby, jak vytv\u00e1\u0159et nestabiln\u00ed podm\u00ednky pro p\u0159ipojen\u00ed a hl\u00e1s\u00ed probl\u00e9my z fronty.<\/li>\n<li>Analytik neust\u00e1le hled\u00e1 r\u016fzn\u00e9 korelace v technick\u00fdch datech, zlep\u0161uje anal\u00fdzu zp\u011btn\u00e9 vazby u\u017eivatel\u016f a kontroluje v\u00fdsledky experiment\u016f.<\/li>\n<li>Produktov\u00fd mana\u017eer pom\u00e1h\u00e1 s celkov\u00fdm sm\u011brem a alokac\u00ed zdroj\u016f pro experimenty.<\/li>\n<li>S vlastn\u00edm programov\u00e1n\u00edm a souvisej\u00edc\u00edmi \u00fakoly \u010dasto pom\u00e1h\u00e1 druh\u00fd v\u00fdvoj\u00e1\u0159.<\/li>\n<\/ul>\n<p>Na za\u010d\u00e1tku jsme nastavili relativn\u011b spolehlivou metriku, kter\u00e1 sledovala zm\u011bny hodnocen\u00ed kvality p\u0159ipojen\u00ed (pr\u016fm\u011br p\u0159es dny, t\u00fddny, m\u011bs\u00edce). V t\u00e9 dob\u011b to byly hodnocen\u00ed od u\u010ditel\u016f, pozd\u011bji se k nim p\u0159idala hodnocen\u00ed od student\u016f. D\u00e1le jsme za\u010dali formulovat hypot\u00e9zy, co nefunguje, opravovat a sledovat zm\u011bny v dynamice. \u0160li jsme po snadn\u00fdch \u0159e\u0161en\u00edch: nap\u0159\u00edklad jsme vym\u011bnili kodek vp8 za vp9, ukazatele se zlep\u0161ily. Zkou\u0161eli jsme experimentovat s nastaven\u00edm Janus, prov\u00e1d\u011bli dal\u0161\u00ed experimenty, kter\u00e9 v\u011bt\u0161inou ni\u010demu nep\u0159ivedly.<\/p>\n<p>Ve druh\u00e9 f\u00e1zi se objevila hypot\u00e9za: WebRTC je peer-to-peer \u0159e\u0161en\u00ed, ale my pou\u017e\u00edv\u00e1me server uprost\u0159ed. Mo\u017en\u00e1 probl\u00e9m spo\u010d\u00edv\u00e1 pr\u00e1v\u011b zde? Za\u010dali jsme to zkoumat a na\u0161li jsme zat\u00edm nejv\u00fdznamn\u011bj\u0161\u00ed zlep\u0161en\u00ed.<\/p>\n<p>V t\u00e9 dob\u011b se server z poolu vyb\u00edral podle docela primitivn\u00edho algoritmu: ka\u017ed\u00fd server m\u011bl svou \u201ev\u00e1hu\u201c, kter\u00e1 z\u00e1visela na kan\u00e1lu a v\u00fdkonu, a my jsme se sna\u017eili poslat u\u017eivatele na ten, kde byla \u201ev\u00e1ha\u201c vy\u0161\u0161\u00ed, ani\u017e bychom brali v \u00favahu geografickou polohu u\u017eivatele. V\u00fdsledkem bylo, \u017ee u\u010ditel z Petrohradu mohl komunikovat se studentem ze Sibi\u0159e p\u0159es Moskvu, m\u00edsto aby pou\u017eil n\u00e1\u0161 Janus server v SPb.<\/p>\n<p>Algoritmus byl p\u0159epracov\u00e1n: nyn\u00ed, kdy\u017e u\u017eivatel otev\u0159e na\u0161i platformu, shroma\u017e\u010fujeme pomoc\u00ed Ajaxu pingi od n\u011bj do v\u0161ech server\u016f. P\u0159i navazov\u00e1n\u00ed spojen\u00ed vyb\u00edr\u00e1me dvojici ping\u016f (u\u010ditel-server a student-server) s nejmen\u0161\u00edm sou\u010dtem. Men\u0161\u00ed ping znamen\u00e1 men\u0161\u00ed s\u00ed\u0165ovou vzd\u00e1lenost k serveru; men\u0161\u00ed vzd\u00e1lenost \u2014 ni\u017e\u0161\u00ed pravd\u011bpodobnost ztr\u00e1ty paket\u016f; ztr\u00e1ta paket\u016f je nejv\u011bt\u0161\u00ed negativn\u00ed faktor ve videokonferenc\u00edch. Procento negativn\u00edch zku\u0161enost\u00ed za t\u0159i m\u011bs\u00edce kleslo na polovinu (pro objektivnost, v t\u00e9to dob\u011b prob\u00edhaly i dal\u0161\u00ed experimenty, ale tento m\u011bl t\u00e9m\u011b\u0159 jist\u011b nejv\u011bt\u0161\u00ed dopad).<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/a106f7701b34c03080251710adf2a7a0.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/2cd6782e5f4182004a0c0d9dd05dba5b.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Ned\u00e1vno jsme objevili je\u0161t\u011b jednu ne\u010dekanou, ale zjevn\u011b d\u016fle\u017eitou v\u011bc: m\u00edsto jednoho v\u00fdkonn\u00e9ho serveru Janus na siln\u00e9m kan\u00e1lu je lep\u0161\u00ed m\u00edt dva jednodu\u0161\u0161\u00ed s ni\u017e\u0161\u00ed propustnost\u00ed. K tomu jsme do\u0161li pot\u00e9, co jsme zakoupili pr\u00e1v\u011b v\u00fdkonn\u00e9 stroje s nad\u011bj\u00ed, \u017ee do nich nahrneme co nejv\u00edce m\u00edstnost\u00ed (komunikac\u00ed) najednou. Servery maj\u00ed limit propustnosti, kter\u00fd m\u016f\u017eeme p\u0159esn\u011b p\u0159ev\u00e9st na po\u010det m\u00edstnost\u00ed \u2013 v\u00edme, kolik jich m\u016f\u017eeme otev\u0159\u00edt nap\u0159\u00edklad na 300 mbits\/s. Jakmile je na serveru otev\u0159eno p\u0159\u00edli\u0161 mnoho m\u00edstnost\u00ed, p\u0159est\u00e1v\u00e1me ho vyb\u00edrat pro nov\u00e9 relace, dokud se zat\u00ed\u017een\u00ed nesn\u00ed\u017e\u00ed. My\u0161lenka byla v tom, \u017ee kdy\u017e koup\u00edme v\u00fdkonn\u00fd stroj, zat\u00ed\u017e\u00edme kan\u00e1l na maximum, abychom se dostali k procesoru a pam\u011bti, a ne k propustnosti. Ale uk\u00e1zalo se, \u017ee po ur\u010dit\u00e9m po\u010dtu otev\u0159en\u00fdch m\u00edstnost\u00ed (420), p\u0159esto\u017ee zat\u00ed\u017een\u00ed procesoru, pam\u011bti a disku je st\u00e1le daleko od limit\u016f, za\u010d\u00edn\u00e1 chodit negativn\u00ed zp\u011btn\u00e1 vazba na technickou podporu. Zjevn\u011b se n\u011bco zhor\u0161uje uvnit\u0159 Janus, mo\u017en\u00e1 tam tak\u00e9 existuj\u00ed n\u011bjak\u00e1 omezen\u00ed. Za\u010dali jsme experimentovat, sn\u00ed\u017eili jsme limit propustnosti z 300 na 200 mbits\/s a probl\u00e9my zmizely. Nyn\u00ed jsme zakoupili hned t\u0159i nov\u00e9 servery s n\u00edzk\u00fdmi limity a parametry, mysl\u00edme si, \u017ee to povede k stabiln\u00edmu zlep\u0161en\u00ed kvality spojen\u00ed. Rozpl\u00e9tat, co tam bylo \u0161patn\u011b, jsme samoz\u0159ejm\u011b necht\u011bli, improvizace je to na\u0161e. K obran\u011b \u0159\u00edk\u00e1me, \u017ee v tu chv\u00edli bylo pot\u0159eba co nejrychleji vy\u0159e\u0161it aktu\u00e1ln\u00ed probl\u00e9m, ne to ud\u011blat p\u011bkn\u011b; nav\u00edc Janus je pro n\u00e1s \u010dern\u00e1 sk\u0159\u00ed\u0148ka napsan\u00e1 v C, dosahovat v n\u00ed je velmi n\u00e1kladn\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype k WebRTC: jak jsme zorganizovali videohovor p\u0159es web\" src=\"\/wp-content\/uploads\/2019\/04\/21ad5290ed3e40bdf0b26dfb5c20cdf8.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>A b\u011bhem toho jsme:<\/p>\n<ul>\n<li>aktualizovali v\u0161echny z\u00e1vislosti, kter\u00e9 \u0161lo aktualizovat, jak na serveru, tak na klientovi (to byly tak\u00e9 experimenty, sledovali jsme v\u00fdsledky);<\/li>\n<li>opravili v\u0161echny objeven\u00e9 chyby t\u00fdkaj\u00edc\u00ed se konkr\u00e9tn\u00edch p\u0159\u00edpad\u016f, nap\u0159\u00edklad kdy\u017e spojen\u00ed spadlo a neobnovilo se automaticky;<\/li>\n<li>uskute\u010dnili jsme mno\u017estv\u00ed sch\u016fzek s firmami pracuj\u00edc\u00edmi v oblasti videokomunikace a obezn\u00e1men\u00fdmi s na\u0161imi probl\u00e9my: streamingov\u00fdmi hrami, organizuj\u00edc\u00edmi webin\u00e1\u0159e; vyzkou\u0161eli jsme v\u0161echno, co se n\u00e1m zd\u00e1lo u\u017eite\u010dn\u00e9;<\/li>\n<li>provedli jsme technickou revizi hardwaru a kvality spojen\u00ed u u\u010ditel\u016f, od kter\u00fdch p\u0159ich\u00e1zely nejv\u011bt\u0161\u00ed st\u00ed\u017enosti.<\/li>\n<\/ul>\n<p>Experimenty a n\u00e1sledn\u00e9 zm\u011bny umo\u017enily sn\u00ed\u017eit nespokojenost s komunikac\u00ed mezi u\u010diteli z 7,1 % v lednu 2018 na 2,5 % v lednu 2019.<\/p>\n<h2 id=\"chto-dalshe\">Co d\u00e1l<\/h2>\n<p>Stabilizace na\u0161\u00ed platformy Vimbox je jedn\u00edm z hlavn\u00edch projekt\u016f spole\u010dnosti na rok 2019. M\u00e1me velk\u00e1 o\u010dek\u00e1v\u00e1n\u00ed, \u017ee se n\u00e1m poda\u0159\u00ed udr\u017eet dynamiku a v\u00edce neuvid\u00edme videokomunikaci na vrcholu st\u00ed\u017enost\u00ed. Ch\u00e1peme, \u017ee v\u00fdznamn\u00e1 \u010d\u00e1st t\u011bchto st\u00ed\u017enost\u00ed souvis\u00ed se zpo\u017ed\u011bn\u00edm po\u010d\u00edta\u010d\u016f a internetu u\u017eivatel\u016f, ale mus\u00edme tuto \u010d\u00e1st ur\u010dit a vy\u0159e\u0161it v\u0161e ostatn\u00ed. V\u0161echno ostatn\u00ed je technick\u00fd probl\u00e9m, se kter\u00fdm bychom m\u011bli um\u011bt zach\u00e1zet.<\/p>\n<p>Hlavn\u00ed slo\u017eitost\u00ed je, \u017ee nev\u00edme, na jakou \u00farove\u0148 je v\u016fbec re\u00e1ln\u00e9 zv\u00fd\u0161it kvalitu. Zji\u0161t\u011bn\u00ed t\u00e9to hranice je hlavn\u00edm \u00fakolem. Proto byly napl\u00e1nov\u00e1ny dva experimenty:<\/p>\n<ol>\n<li>porovnat video p\u0159es Janus s b\u011b\u017en\u00fdm p2p v provozn\u00edch podm\u00ednk\u00e1ch. Tento experiment byl ji\u017e proveden, \u017e\u00e1dn\u00fd statisticky v\u00fdznamn\u00fd rozd\u00edl mezi na\u0161\u00edm \u0159e\u0161en\u00edm a p2p nebyl nalezen;<\/li>\n<li>nasad\u00edme (drah\u00e9) slu\u017eby od spole\u010dnost\u00ed, kter\u00e9 vyd\u011bl\u00e1vaj\u00ed v\u00fdhradn\u011b na \u0159e\u0161en\u00edch v oblasti videokomunikace, a porovn\u00e1me mno\u017estv\u00ed negativn\u00edch reakc\u00ed od nich s t\u011bmi, kter\u00e9 m\u00e1me.<\/li>\n<\/ol>\n<p>Tyto dva experimenty n\u00e1m umo\u017en\u00ed ur\u010dit dosa\u017eiteln\u00fd c\u00edl a soust\u0159edit se na n\u011bj.<\/p>\n<p>Krom\u011b toho existuje \u0159ada \u00fakol\u016f \u0159e\u0161en\u00fdch v pracovn\u00edm procesu:<\/p>\n<ul>\n<li>vytv\u00e1\u0159\u00edme technickou metrikou kvality spojen\u00ed m\u00edsto subjektivn\u00edch hodnocen\u00ed;<\/li>\n<li>vytv\u00e1\u0159\u00edme podrobn\u011bj\u0161\u00ed logy relac\u00ed, abychom p\u0159esn\u011bji analyzovali vznikl\u00e9 poruchy, ch\u00e1pali, kdy a kde p\u0159esn\u011b k nim do\u0161lo, a jak\u00e9 na prvn\u00ed pohled nesouvisej\u00edc\u00ed ud\u00e1losti se v tu chv\u00edli odehr\u00e1ly;<\/li>\n<li>p\u0159ipravujeme automatick\u00fd test kvality spojen\u00ed p\u0159ed lekc\u00ed a tak\u00e9 d\u00e1me mo\u017enost klientovi ru\u010dn\u011b otestovat spojen\u00ed, abychom sn\u00ed\u017eili mno\u017estv\u00ed negativity zp\u016fsoben\u00e9 jeho hardwarem a kan\u00e1lem;<\/li>\n<li>vyvineme a budeme prov\u00e1d\u011bt v\u00edce z\u00e1t\u011b\u017eov\u00fdch test\u016f videokomunikace v \u0161patn\u00fdch podm\u00ednk\u00e1ch, s prom\u011bnliv\u00fdm ztr\u00e1tou paket\u016f atd.;<\/li>\n<li>m\u011bn\u00edme chov\u00e1n\u00ed server\u016f v p\u0159\u00edpad\u011b probl\u00e9m\u016f pro zv\u00fd\u0161en\u00ed odolnosti;<\/li>\n<li>budeme varovat u\u017eivatele, pokud m\u00e1 n\u011bco \u0161patn\u011b se spojen\u00ed, jak to d\u011bl\u00e1 nap\u0159\u00edklad 'Skype', aby ch\u00e1pal, \u017ee probl\u00e9m je na jeho stran\u011b.<\/li>\n<\/ul>\n<p>Od dubna se oblast videokonferenc\u00ed st\u00e1v\u00e1 plnohodnotn\u00fdm samostatn\u00fdm projektem v r\u00e1mci Skyeng, kter\u00fd se zab\u00fdv\u00e1 vlastn\u00edm produktem, nikoli pouze sou\u010d\u00e1st\u00ed Vimboxu. To znamen\u00e1, \u017ee za\u010d\u00edn\u00e1me hledat lidi na <noindex><a rel=\"nofollow\" href=\"https:\/\/spb.hh.ru\/vacancy\/30766332\">pr\u00e1ci s videem na pln\u00fd \u00favazek<\/a><\/noindex>. A jako obvykle <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">hled\u00e1me spoustu skv\u011bl\u00fdch lid\u00ed<\/a><\/noindex>.<\/p>\n<p>. A samoz\u0159ejm\u011b, nad\u00e1le aktivn\u011b komunikujeme s lidmi a firmami, kter\u00e9 se zab\u00fdvaj\u00ed videokonferencemi. Pokud chcete vym\u011bnit zku\u0161enosti s n\u00e1mi \u2014 r\u00e1di v\u00e1s usly\u0161\u00edme! Komentujte, kontaktujte n\u00e1s \u2014 odpov\u00edme v\u0161em.<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Vimbox. \u041c\u044b \u0434\u0430\u0432\u043d\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 Skype, \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0435 WebRTC \u2014 Janus-gateway. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441 \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0438 \u0432\u044b\u043b\u0435\u0437\u0430\u0442\u044c. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0438\u0434\u0435\u043e. \u042f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u041a\u0438\u0440\u0438\u043b\u043b\u0430 \u0420\u043e\u0433\u043e\u0432\u043e\u0433\u043e, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22826,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0442 Skype \u0434\u043e WebRTC: \u043a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-01T09:37:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Od Skype po WebRTC: jak jsme organizovali videokonference p\u0159es web | ProHoster","description":"Videokonference jsou hlavn\u00edm zp\u016fsobem komunikace.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0442 Skype \u0434\u043e WebRTC: \u043a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431 | ProHoster","og:description":"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:44+00:00","article:modified_time":"2021-02-01T09:37:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30842","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 03:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:28:46","updated":"2026-01-21 03:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=30842"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/22826"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=30842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=30842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=30842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}