{"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\/pl\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","title":{"rendered":"Od Skype'a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/92ea7848049d68c0b41b821bc8b83d54.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Wideokomunikacja to g\u0142\u00f3wny spos\u00f3b komunikacji nauczyciela i studenta na platformie Vimbox. Od dawna zrezygnowali\u015bmy z Skype'a, przetestowali\u015bmy kilka zewn\u0119trznych rozwi\u0105za\u0144 i ostatecznie zatrzymali\u015bmy si\u0119 na po\u0142\u0105czeniu WebRTC - Janus-gateway. Przez jaki\u015b czas byli\u015bmy zadowoleni, ale pewne negatywne aspekty nadal si\u0119 pojawia\u0142y. W efekcie stworzono oddzia\u0142 zajmuj\u0105cy si\u0119 wideo.<\/p>\n<p>Poprosi\u0142em Kirilla Rogovogo, szefa nowego dzia\u0142u, o opowiedzenie o ewolucji wideokomunikacji w Skyeng, napotkanych problemach, rozwi\u0105zaniach oraz obej\u015bciach, kt\u00f3re ostatecznie zastosowali\u015bmy. Mamy nadziej\u0119, \u017ce artyku\u0142 b\u0119dzie pomocny dla firm, kt\u00f3re r\u00f3wnie\u017c wprowadzaj\u0105 wideokomunikacj\u0119 przez aplikacj\u0119 webow\u0105.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"nemnogo-istorii\">Historia<\/h2>\n<p>Latem 2017 roku szef dzia\u0142u rozwoju Skyeng, Siergiej Safonow, wyst\u0105pi\u0142 na Backend Conf z prezentacj\u0105 o tym, jak \"zrezygnowali\u015bmy z Skype'a i wdro\u017cyli\u015bmy WebRTC\". Ch\u0119tni mog\u0105 obejrze\u0107 nagranie wyst\u0105pienia pod <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0BiE1Rt-bak\">linkiem<\/a><\/noindex> (~45 min), a tutaj kr\u00f3tko przedstawiam jego istot\u0119.<\/p>\n<p>Dla szko\u0142y Skyeng wideokomunikacja zawsze by\u0142a priorytetowym sposobem komunikacji nauczyciel-ucze\u0144. Na pocz\u0105tku u\u017cywali\u015bmy \u201eSkype'a\u201d, ale z wielu powod\u00f3w by\u0142 on zupe\u0142nie nieadekwatny, przede wszystkim z powodu braku log\u00f3w i niemo\u017cno\u015bci integracji bezpo\u015brednio w aplikacji webowej. Dlatego przeprowadzali\u015bmy r\u00f3\u017cne eksperymenty.<\/p>\n<p>W\u0142a\u015bciwie, nasze wymagania dotycz\u0105ce wideokomunikacji by\u0142y mniej wi\u0119cej takie:<br \/>\n\u2014 stabilno\u015b\u0107;<br \/>\n\u2014 niska cena za lekcj\u0119;<br \/>\n\u2014 nagrywanie lekcji;<br \/>\n\u2014 \u015bledzenie, kto ile m\u00f3wi (wa\u017cne dla nas, aby uczniowie m\u00f3wili wi\u0119cej ni\u017c nauczyciele);<br \/>\n\u2014 liniowe skalowanie;<br \/>\n\u2014 mo\u017cliwo\u015b\u0107 u\u017cywania zar\u00f3wno UDP, jak i TCP.<\/p>\n<p>Pierwszym rozwi\u0105zaniem w 2013 roku, kt\u00f3re spr\u00f3bowali\u015bmy wdro\u017cy\u0107, by\u0142 Tokbox. Wszystko dzia\u0142a\u0142o dobrze, ale okaza\u0142o si\u0119 bardzo kosztowne \u2013 113 rubli za lekcj\u0119 \u2013 co zjada\u0142o zyski.<\/p>\n<p>Nast\u0119pnie w 2015 roku zintegrowali\u015bmy Voximplant. Tutaj by\u0142a potrzebna funkcja \u015bledzenia, kto ile m\u00f3wi, a jednocze\u015bnie rozwi\u0105zanie by\u0142o znacznie ta\u0144sze: w przypadku nagrywania tylko d\u017awi\u0119ku wynosi\u0142o 20 rubli za lekcj\u0119. Jednak dzia\u0142a\u0142o tylko przez UDP, nie potrafi\u0142o prze\u0142\u0105cza\u0107 si\u0119 na TCP. Mimo to, oko\u0142o 40% uczni\u00f3w korzysta\u0142o z tego rozwi\u0105zania.<\/p>\n<p>Po roku zacz\u0119li\u015bmy pozyskiwa\u0107 klient\u00f3w korporacyjnych z ich specyficznymi wymaganiami. Na przyk\u0142ad, wszystko musi dzia\u0142a\u0107 przez przegl\u0105dark\u0119, w firmie dozwolone s\u0105 tylko http i https; tzn. \u017cadnych \u201eSkype'\u00f3w\u201d i UDP. Klienci korporacyjni = pieni\u0105dze, wi\u0119c wr\u00f3cili\u015bmy do Tokbox, ale problem z cen\u0105 pozosta\u0142.<\/p>\n<h2 id=\"reshenie----webrtc-i-janus\">Rozwi\u0105zanie \u2014 WebRTC i Janus<\/h2>\n<p>Podj\u0119li\u015bmy decyzj\u0119 o u\u017cyciu <noindex><a rel=\"nofollow\" href=\"https:\/\/webrtc.org\/\">przegl\u0105darkowej platformy do po\u0142\u0105cze\u0144 wideo peer-to-peer WebRTC<\/a><\/noindex>. Jest odpowiedzialna za nawi\u0105zywanie po\u0142\u0105czenia, kodowanie i dekodowanie strumieni, synchronizacj\u0119 \u015bcie\u017cek i kontrol\u0119 jako\u015bci z obs\u0142ug\u0105 problem\u00f3w sieciowych. Z naszej strony musimy zapewni\u0107 odczyt strumieni z kamery i mikrofonu, wy\u015bwietlanie wideo, zarz\u0105dzanie po\u0142\u0105czeniem, nawi\u0105zywanie po\u0142\u0105cze\u0144 WebRTC i przesy\u0142anie do nich strumieni, a tak\u017ce przesy\u0142anie wiadomo\u015bci sygnalizacyjnych mi\u0119dzy klientami w celu nawi\u0105zania po\u0142\u0105czenia (WebRTC opisuje tylko format danych, a nie mechanizm ich przesy\u0142ania). W przypadku, gdy klienci s\u0105 za NAT, WebRTC \u0142\u0105czy si\u0119 z serwerami STUN, je\u015bli to nie pomaga, z serwerami TURN.<\/p>\n<p>Zwyk\u0142e po\u0142\u0105czenie p2p nie wystarcza, poniewa\u017c chcemy nagrywa\u0107 lekcje do dalszej analizy w przypadku skarg. Dlatego przesy\u0142amy strumienie WebRTC przez retransmiter <noindex><a rel=\"nofollow\" href=\"https:\/\/janus.conf.meetecho.com\/\">Janus Gateway od Meetecho<\/a><\/noindex>. W rezultacie klienci nie znaj\u0105 swoich adres\u00f3w, widz\u0105c tylko adres serwera Janus; pe\u0142ni on r\u00f3wnie\u017c funkcje serwera sygnalizacyjnego. Janus ma wiele potrzebnych nam funkcji: automatycznie przechodzi do TCP, je\u015bli klient ma zablokowane UDP; potrafi nagrywa\u0107 strumienie zar\u00f3wno UDP, jak i TCP; jest skalowalny; ma nawet wbudowany plugin do test\u00f3w echa. W razie potrzeby automatycznie \u0142\u0105czone s\u0105 serwery STUN i TURN od Twilio.<\/p>\n<p>Latem 2017 roku mieli\u015bmy dwa serwery Janus oraz dodatkowy serwer do przetwarzania nagranych surowych plik\u00f3w audio i wideo, aby nie obci\u0105\u017ca\u0107 procesor\u00f3w g\u0142\u00f3wnych. Podczas \u0142\u0105czenia serwery Janus by\u0142y wybierane na zasadzie parzysto\u015bci-nieparzysto\u015bci (numer po\u0142\u0105czenia). W tamtym czasie to wystarcza\u0142o, wed\u0142ug naszych odczu\u0107 dawa\u0142o to oko\u0142o czterokrotny zapas mocy, wska\u017anik wdro\u017cenia wynosi\u0142 oko\u0142o 80. Przy tym cena zmniejszy\u0142a si\u0119 do oko\u0142o 2 rubli za lekcj\u0119, plus rozw\u00f3j i wsparcie.<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/fd1cd47a6625f1ddaa20ed2a6067be60.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"vozvraschenie-k-teme-videosvyazi\">Powr\u00f3t do tematu wideokomunikacji<\/h2>\n<p>Ci\u0105gle monitorujemy opinie uczni\u00f3w i nauczycieli, aby na czas wykrywa\u0107 i rozwi\u0105zywa\u0107 problemy. Do lata 2018 roku jako\u015b\u0107 po\u0142\u0105czenia znalaz\u0142a si\u0119 na czo\u0142owej pozycji w\u015br\u00f3d skarg. Z jednej strony oznacza\u0142o to, \u017ce skutecznie poradzili\u015bmy sobie z innymi niedoci\u0105gni\u0119ciami. Z drugiej strony, nale\u017cy szybko co\u015b zrobi\u0107: w przypadku przerwania lekcji ryzykujemy utrat\u0119 jej warto\u015bci, czasami wraz z warto\u015bci\u0105 zakupu kolejnego pakietu, a w przypadku przerwania lekcji wprowadzaj\u0105cej \u2013 wr\u0119cz utrat\u0119 potencjalnego klienta.<\/p>\n<p>W tym czasie wideokonferencje wci\u0105\u017c by\u0142y w trybie MVP. M\u00f3wi\u0105c pro\u015bciej, uruchomili\u015bmy, dzia\u0142a\u0142o, raz skalowali\u015bmy, zrozumieli\u015bmy, jak to zrobi\u0107 - i wszystko by\u0142o w porz\u0105dku. If it works, don\u2019t fix it. Nikt celowo nie zajmowa\u0142 si\u0119 jako\u015bci\u0105 po\u0142\u0105cze\u0144. Do sierpnia sta\u0142o si\u0119 jasne, \u017ce tak dalej by\u0107 nie mo\u017ce, i uruchomili\u015bmy osobny dzia\u0142, aby zrozumie\u0107, co dok\u0142adnie jest nie tak z WebRTC i Janusem.<\/p>\n<p>Na wej\u015bciu ten dzia\u0142 otrzyma\u0142: rozwi\u0105zanie MVP, brak metryk, brak cel\u00f3w, brak proces\u00f3w poprawy, a 7% nauczycieli narzeka na jako\u015b\u0107 po\u0142\u0105czenia (dane dotycz\u0105ce uczni\u00f3w r\u00f3wnie\u017c by\u0142y niedost\u0119pne).<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/f8134229567f1187b00ec5c21a79800c.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"novoe-napravlenie-beretsya-za-rabotu\">Nowy dzia\u0142 bierze si\u0119 do pracy<\/h2>\n<p>Zesp\u00f3\u0142 wygl\u0105da mniej wi\u0119cej tak:<\/p>\n<ul>\n<li>Kierownik dzia\u0142u, kt\u00f3ry jest r\u00f3wnie\u017c g\u0142\u00f3wnym programist\u0105.<\/li>\n<li>QA pomagaj\u0105 testowa\u0107 zmiany, szuka\u0107 nowych sposob\u00f3w na stworzenie niestabilnych warunk\u00f3w dla po\u0142\u0105cze\u0144, zg\u0142asza\u0107 problemy z linii frontu.<\/li>\n<li>Analityk nieustannie szuka r\u00f3\u017cnych korelacji w danych technicznych, ulepsza analiz\u0119 opinii u\u017cytkownik\u00f3w, sprawdza wyniki eksperyment\u00f3w.<\/li>\n<li>Menad\u017cer produktu pomaga w og\u00f3lnym kierunku i alokacji zasob\u00f3w na eksperymenty.<\/li>\n<li>Przy samym programowaniu i pokrewnych zadaniach cz\u0119sto pomaga drugi programista.<\/li>\n<\/ul>\n<p>Na pocz\u0105tek skonfigurowali\u015bmy stosunkowo niezawodn\u0105 metryk\u0119, kt\u00f3ra \u015bledzi\u0142a zmiany ocen jako\u015bci po\u0142\u0105czenia (\u015brednia na dzie\u0144, tydzie\u0144, miesi\u0105c). W tym momencie by\u0142y to oceny od nauczycieli, w p\u00f3\u017aniejszym czasie dodano oceny od student\u00f3w. Nast\u0119pnie zacz\u0119li\u015bmy formu\u0142owa\u0107 hipotezy dotycz\u0105ce tego, co nie dzia\u0142a, poprawia\u0107 i obserwowa\u0107 zmiany w dynamice. Przeszli\u015bmy do tzw. niskowisz\u0105cych owoc\u00f3w: na przyk\u0142ad wymienili\u015bmy kodek vp8 na vp9, a wyniki si\u0119 poprawi\u0142y. Pr\u00f3bowali\u015bmy bawi\u0107 si\u0119 ustawieniami Janusa, przeprowadza\u0107 r\u00f3\u017cne eksperymenty \u2013 w wi\u0119kszo\u015bci przypadk\u00f3w nie prowadzi\u0142y one do \u017cadnych rezultat\u00f3w.<\/p>\n<p>Na drugim etapie pojawi\u0142a si\u0119 hipoteza: WebRTC to rozwi\u0105zanie peer-to-peer, a my u\u017cywamy serwera po\u015bredniego. By\u0107 mo\u017ce problem kryje si\u0119 tutaj? Zacz\u0119li\u015bmy bada\u0107 ten temat i znale\u017ali\u015bmy dot\u0105d najbardziej znacz\u0105c\u0105 popraw\u0119.<\/p>\n<p>W tamtym momencie serwer by\u0142 wybierany z puli wed\u0142ug do\u015b\u0107 prymitywnego algorytmu: ka\u017cdy mia\u0142 sw\u00f3j \"ci\u0119\u017car\", zale\u017cny od \u0142\u0105cza i mocy, a my starali\u015bmy si\u0119 wys\u0142a\u0107 u\u017cytkownika do tego, gdzie \"ci\u0119\u017car\" by\u0142 wi\u0119kszy, nie zwracaj\u0105c uwagi na to, gdzie geograficznie znajduje si\u0119 u\u017cytkownik. W rezultacie nauczyciel z Petersburga m\u00f3g\u0142 komunikowa\u0107 si\u0119 z uczniem z Syberii przez Moskw\u0119, a nie przez nasz serwer Janus w Sankt Petersburgu.<\/p>\n<p>Algorytm zosta\u0142 zmodyfikowany: teraz, gdy u\u017cytkownik otwiera nasz\u0105 platform\u0119, za pomoc\u0105 Ajaxu zbieramy pingi od niego do wszystkich serwer\u00f3w. Przy nawi\u0105zywaniu po\u0142\u0105czenia wybieramy par\u0119 ping\u00f3w (nauczyciel-serwer i ucze\u0144-serwer) z najmniejsz\u0105 sum\u0105. Mniejszy ping \u2013 mniejsze odleg\u0142o\u015b\u0107 sieciowa do serwera; mniejsza odleg\u0142o\u015b\u0107 \u2014 mniejsze prawdopodobie\u0144stwo utraty pakiet\u00f3w; utrata pakiet\u00f3w \u2014 najwi\u0119kszy negatywny czynnik w wideo po\u0142\u0105czeniach. Udzia\u0142 negatywnych do\u015bwiadcze\u0144 w ci\u0105gu trzech miesi\u0119cy spad\u0142 dwukrotnie (dla uczciwo\u015bci warto doda\u0107, \u017ce w tym czasie przeprowadzano r\u00f3wnie\u017c inne eksperymenty, ale ten zapewne mia\u0142 najwi\u0119kszy wp\u0142yw).<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/a106f7701b34c03080251710adf2a7a0.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/2cd6782e5f4182004a0c0d9dd05dba5b.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Niedawno odkryli\u015bmy jeszcze jedn\u0105 nieoczywist\u0105, ale z pewno\u015bci\u0105 wa\u017cn\u0105 rzecz: zamiast jednego mocnego serwera Janus na szybkim \u0142\u0105czu, lepiej mie\u0107 dwa prostsze z nieco ni\u017csz\u0105 przepustowo\u015bci\u0105. Okaza\u0142o si\u0119 to po tym, jak kupili\u015bmy w\u0142a\u015bnie mocne maszyny, maj\u0105c nadziej\u0119, \u017ce pomieszcz\u0105 jak najwi\u0119cej sal (sesji po\u0142\u0105cze\u0144) jednocze\u015bnie. Serwery maj\u0105 limit przepustowo\u015bci, kt\u00f3ry mo\u017cemy dok\u0142adnie prze\u0142o\u017cy\u0107 na liczb\u0119 sal \u2014 wiemy, ile mo\u017cna otworzy\u0107, na przyk\u0142ad, na 300 Mbit\/s. Gdy na serwerze otworzy si\u0119 zbyt wiele sal \u2014 przestajemy go wybiera\u0107 do nowych zaj\u0119\u0107, dop\u00f3ki obci\u0105\u017cenie nie spadnie. Idea polega\u0142a na tym, \u017ce kupuj\u0105c mocn\u0105 maszyn\u0119, maksymalnie obci\u0105\u017cymy jej \u0142\u0105cze, aby w ko\u0144cu dotrze\u0107 do procesora i pami\u0119ci, a nie do przepustowo\u015bci. Okaza\u0142o si\u0119 jednak, \u017ce po otwarciu okre\u015blonej liczby sal (420), mimo \u017ce obci\u0105\u017cenie procesora, pami\u0119ci i dysku jest jeszcze dalekie od limit\u00f3w, zaczynaj\u0105 nap\u0142ywa\u0107 negatywne zg\u0142oszenia do wsparcia technicznego. Wygl\u0105da na to, \u017ce co\u015b staje si\u0119 gorsze wewn\u0105trz Janus, by\u0107 mo\u017ce s\u0105 tam te\u017c jakie\u015b ograniczenia. Zacz\u0119li\u015bmy eksperymentowa\u0107, obni\u017cyli\u015bmy limit przepustowo\u015bci z 300 do 200 Mbit\/s, problemy znikn\u0119\u0142y. Teraz kupili\u015bmy od razu trzy nowe serwery z niewielkimi limitami i parametrami, my\u015blimy, \u017ce to doprowadzi do stabilnej poprawy jako\u015bci po\u0142\u0105cze\u0144. Oczywi\u015bcie nie zajmowali\u015bmy si\u0119 zg\u0142\u0119bianiem, na czym polega\u0142 problem, kostki to nasza specjalno\u015b\u0107. W obronie powiedzmy, \u017ce w tym momencie nale\u017ca\u0142o jak najszybciej rozwi\u0105za\u0107 pilny problem, a nie robi\u0107 to \u0142adnie; poza tym Janus to dla nas czarna skrzynka napisana w C, grzebanie w tym jest bardzo kosztowne.<\/p>\n<p><img decoding=\"async\" alt=\"Od Skype&#039;a do WebRTC: jak zorganizowali\u015bmy transmisj\u0119 wideo przez sie\u0107\" src=\"\/wp-content\/uploads\/2019\/04\/21ad5290ed3e40bdf0b26dfb5c20cdf8.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>A w czasie tego procesu:<\/p>\n<ul>\n<li>aktualizowali\u015bmy wszystkie zale\u017cno\u015bci, kt\u00f3re mo\u017cna by\u0142o zaktualizowa\u0107, zar\u00f3wno na serwerze, jak i na kliencie (to te\u017c by\u0142y eksperymenty, \u015bledzili\u015bmy efekty);<\/li>\n<li>naprawili\u015bmy wszystkie wykryte b\u0142\u0119dy, dotycz\u0105ce konkretnych przypadk\u00f3w, na przyk\u0142ad gdy po\u0142\u0105czenie si\u0119 przerywa\u0142o i nie odnawia\u0142o automatycznie;<\/li>\n<li>przeprowadzili\u015bmy wiele spotka\u0144 z firmami zajmuj\u0105cymi si\u0119 wideokomunikacj\u0105 oraz z osobami znajomymi z naszymi problemami: streamuj\u0105cymi gry, organizuj\u0105cymi webinaria; wypr\u00f3bowali\u015bmy wszystko, co nam si\u0119 wydawa\u0142o przydatne;<\/li>\n<li>przeprowadzili\u015bmy przegl\u0105d techniczny sprz\u0119tu i jako\u015bci po\u0142\u0105cze\u0144 u nauczycieli, od kt\u00f3rych nap\u0142ywa\u0142o najwi\u0119cej skarg.<\/li>\n<\/ul>\n<p>Przeprowadzone eksperymenty oraz wprowadzone zmiany pozwoli\u0142y obni\u017cy\u0107 niezadowolenie z po\u0142\u0105cze\u0144 w\u015br\u00f3d nauczycieli z 7,1% w styczniu 2018 do 2,5% w styczniu 2019.<\/p>\n<h2 id=\"chto-dalshe\">Co dalej<\/h2>\n<p>Stabilizacja naszej platformy Vimbox jest jednym z g\u0142\u00f3wnych projekt\u00f3w firmy na rok 2019. Mamy wielkie nadzieje, \u017ce uda nam si\u0119 utrzyma\u0107 dynamik\u0119 i wi\u0119cej nie zobaczy\u0107 po\u0142\u0105cze\u0144 wideo na szczycie skarg. Rozumiemy, \u017ce znaczna cz\u0119\u015b\u0107 tych skarg jest zwi\u0105zana z op\u00f3\u017anieniami komputer\u00f3w i internetu u\u017cytkownik\u00f3w, ale musimy zidentyfikowa\u0107 t\u0119 cz\u0119\u015b\u0107 i rozwi\u0105za\u0107 wszystko inne. Wszystko inne to problem techniczny, kt\u00f3ry, wydaje si\u0119, powinni\u015bmy umie\u0107 rozwi\u0105za\u0107.<\/p>\n<p>G\u0142\u00f3wna trudno\u015b\u0107 polega na tym, \u017ce nie wiemy, do jakiego poziomu w og\u00f3le mo\u017cliwe jest podniesienie jako\u015bci. Okre\u015blenie tego sufitu to nasza g\u0142\u00f3wna zadanie. Dlatego zaplanowano dwa eksperymenty:<\/p>\n<ol>\n<li>por\u00f3wnanie wideo przez Janus z tradycyjnym p2p w warunkach bojowych. Ten eksperyment ju\u017c zosta\u0142 przeprowadzony, nie stwierdzono statystycznie istotnych r\u00f3\u017cnic mi\u0119dzy naszym rozwi\u0105zaniem a p2p;<\/li>\n<li>wdro\u017cenie (drogi) us\u0142ug od firm, kt\u00f3re zarabiaj\u0105 wy\u0142\u0105cznie na rozwi\u0105zaniach w zakresie po\u0142\u0105cze\u0144 wideo, i por\u00f3wnanie ilo\u015bci negatywnych do\u015bwiadcze\u0144 z nimi z tymi, kt\u00f3re ju\u017c mamy.<\/li>\n<\/ol>\n<p>Te dwa eksperymenty pozwol\u0105 nam okre\u015bli\u0107 osi\u0105galny cel i skupi\u0107 si\u0119 na nim.<\/p>\n<p>Ponadto istnieje szereg zada\u0144 rozwi\u0105zywanych na bie\u017c\u0105co:<\/p>\n<ul>\n<li>tworzymy techniczn\u0105 metryk\u0119 jako\u015bci po\u0142\u0105czenia zamiast subiektywnych opinii;<\/li>\n<li>prowadzimy bardziej szczeg\u00f3\u0142owe logi sesji, aby dok\u0142adniej analizowa\u0107 wyst\u0119puj\u0105ce awarie, zrozumie\u0107, kiedy i gdzie mia\u0142y miejsce, jakie na pierwszy rzut oka niezwi\u0105zane zdarzenia mia\u0142y miejsce w tym momencie;<\/li>\n<li>przygotowujemy automatyczny test jako\u015bci po\u0142\u0105czenia przed zaj\u0119ciami, a tak\u017ce umo\u017cliwimy klientowi manualne przetestowanie po\u0142\u0105czenia, aby zmniejszy\u0107 liczb\u0119 negatywnych do\u015bwiadcze\u0144 spowodowanych jego sprz\u0119tem i \u0142\u0105czem;<\/li>\n<li>opracujemy i b\u0119dziemy przeprowadza\u0107 wi\u0119cej test\u00f3w obci\u0105\u017ceniowych po\u0142\u0105cze\u0144 wideo w s\u0142abych warunkach, z zmienn\u0105 utrat\u0105 pakiet\u00f3w itp.;<\/li>\n<li>zmieniamy zachowanie serwer\u00f3w w przypadku problem\u00f3w w celu zwi\u0119kszenia odporno\u015bci na awarie;<\/li>\n<li>b\u0119dziemy ostrzega\u0107 u\u017cytkownika, je\u015bli ma jakiekolwiek problemy z po\u0142\u0105czeniem, tak jak robi to 'Skype', aby zrozumia\u0142, \u017ce problem le\u017cy po jego stronie.<\/li>\n<\/ul>\n<p>Od kwietnia dzia\u0142 wideokomunikacji staje si\u0119 pe\u0142noprawnym oddzielnym projektem w Skyeng, zajmuj\u0105cym si\u0119 w\u0142asnym produktem, a nie tylko cz\u0119\u015bci\u0105 Vimbox. Oznacza to, \u017ce zaczynamy poszukiwania os\u00f3b na <noindex><a rel=\"nofollow\" href=\"https:\/\/spb.hh.ru\/vacancy\/30766332\">pe\u0142noetatowe stanowisko pracy z wideo<\/a><\/noindex>. Jak zawsze <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">szukamy wielu dobrych ludzi<\/a><\/noindex>.<\/p>\n<p>. Oczywi\u015bcie kontynuujemy aktywn\u0105 komunikacj\u0119 z lud\u017ami i firmami zajmuj\u0105cymi si\u0119 wideokomunikacj\u0105. Je\u015bli chcesz wymieni\u0107 si\u0119 z nami do\u015bwiadczeniami \u2014 z przyjemno\u015bci\u0105! Komentuj, kontaktuj si\u0119 \u2014 odpowiemy wszystkim.<\/p>\n<p>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\u2019a do WebRTC: jak zorganizowali\u015bmy wideokomunikacj\u0119 przez sie\u0107 | ProHoster","description":"Wideokomunikacja to podstawowy spos\u00f3b komunikacji.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/30842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=30842"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/30842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/22826"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=30842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=30842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=30842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}