{"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\/pt\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","title":{"rendered":"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/92ea7848049d68c0b41b821bc8b83d54.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>A videoconfer\u00eancia \u00e9 o principal meio de comunica\u00e7\u00e3o entre professores e alunos na plataforma Vimbox. Abandonamos o Skype h\u00e1 muito tempo, testamos v\u00e1rias solu\u00e7\u00f5es de terceiros e, por fim, decidimos pela combina\u00e7\u00e3o WebRTC - Janus-gateway. Por um tempo, ficamos satisfeitos, mas algumas quest\u00f5es negativas continuaram surgindo. Como resultado, foi criada uma dire\u00e7\u00e3o separada para o v\u00eddeo.<\/p>\n<p>Pedi a Kirill Rogovoy, l\u00edder da nova dire\u00e7\u00e3o, que falasse sobre a evolu\u00e7\u00e3o da videoconfer\u00eancia na Skyeng, os problemas encontrados, as solu\u00e7\u00f5es e os imprevistos que acabamos aplicando. Esperamos que o artigo seja \u00fatil para empresas que tamb\u00e9m est\u00e3o integrando v\u00eddeo em suas aplica\u00e7\u00f5es web.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"nemnogo-istorii\">Um pouco de hist\u00f3ria<\/h2>\n<p>No ver\u00e3o de 2017, o chefe de desenvolvimento da Skyeng, Sergey Safonov, apresentou na Backend Conf sobre como \"abandonamos o Skype e implementamos o WebRTC\". Aqueles que desejarem podem assistir \u00e0 grava\u00e7\u00e3o da apresenta\u00e7\u00e3o em <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0BiE1Rt-bak\">link<\/a><\/noindex> (~45 min), e aqui vou resumir seu conte\u00fado.<\/p>\n<p>Para a escola Skyeng, a videoconfer\u00eancia sempre foi a forma priorit\u00e1ria de comunica\u00e7\u00e3o professor-aluno. No in\u00edcio, utilizava-se o Skype, mas ele n\u00e3o atendia de maneira satisfat\u00f3ria por uma s\u00e9rie de raz\u00f5es, principalmente pela falta de logs e a impossibilidade de integra\u00e7\u00e3o diretamente na aplica\u00e7\u00e3o web. Portanto, realizamos v\u00e1rias experi\u00eancias.<\/p>\n<p>Essencialmente, nossos requisitos para a videoconfer\u00eancia eram aproximadamente os seguintes:<br \/>\n\u2014 estabilidade;<br \/>\n\u2014 baixo custo por aula;<br \/>\n\u2014 grava\u00e7\u00e3o das aulas;<br \/>\n\u2014 monitora\u00e7\u00e3o de quem fala mais (para n\u00f3s, \u00e9 importante que os alunos falem mais que os professores durante as aulas);<br \/>\n\u2014 escalabilidade linear;<br \/>\n\u2014 a possibilidade de usar tanto UDP quanto TCP.<\/p>\n<p>O primeiro a ser tentado, em 2013, foi o Tokbox. Tudo estava bem, mas era muito caro - 113 rublos por aula - e isso consumia o lucro.<\/p>\n<p>Depois, em 2015, integramos o Voximplant. Aqui havia a fun\u00e7\u00e3o necess\u00e1ria de monitoramento de quem fala mais, e a solu\u00e7\u00e3o era significativamente mais barata: ao gravar apenas o \u00e1udio, sa\u00eda a 20 rublos por aula. No entanto, funcionava apenas via UDP, n\u00e3o conseguia mudar para TCP. Mesmo assim, no final, cerca de 40% dos alunos utilizavam.<\/p>\n<p>Depois de um ano, come\u00e7amos a ter clientes corporativos com suas exig\u00eancias espec\u00edficas. Por exemplo, tudo deve funcionar atrav\u00e9s do navegador, na empresa est\u00e3o dispon\u00edveis apenas http e https; ou seja, nada de 'Skypes' e UDP. Clientes corporativos = dinheiro, por isso voltamos para Tokbox, mas o problema do pre\u00e7o persistiu.<\/p>\n<h2 id=\"reshenie----webrtc-i-janus\">A solu\u00e7\u00e3o \u2014 WebRTC e Janus<\/h2>\n<p>Decidimos usar <noindex><a rel=\"nofollow\" href=\"https:\/\/webrtc.org\/\">a plataforma de navegador para videoconfer\u00eancia peer-to-peer WebRTC<\/a><\/noindex>. Ela gerencia a conex\u00e3o, a codifica\u00e7\u00e3o e decodifica\u00e7\u00e3o dos fluxos, a sincroniza\u00e7\u00e3o das trilhas e o controle de qualidade com o tratamento de falhas de rede. De nossa parte, precisamos garantir a captura dos fluxos da c\u00e2mera e do microfone, a renderiza\u00e7\u00e3o do v\u00eddeo, o gerenciamento da conex\u00e3o, a configura\u00e7\u00e3o da conex\u00e3o WebRTC e a transmiss\u00e3o de fluxos para ela, assim como a transmiss\u00e3o de mensagens de sinaliza\u00e7\u00e3o entre os clientes para estabelecer a conex\u00e3o (o WebRTC em si descreve apenas o formato dos dados, mas n\u00e3o o mecanismo de transmiss\u00e3o). Caso os clientes estejam por tr\u00e1s de um NAT, o WebRTC conecta servidores STUN, e se isso n\u00e3o ajudar, servidores TURN.<\/p>\n<p>Uma conex\u00e3o p2p comum n\u00e3o \u00e9 suficiente, pois queremos gravar as aulas para an\u00e1lise futura em caso de reclama\u00e7\u00f5es. Portanto, enviamos os fluxos WebRTC atrav\u00e9s de um retransmissor <noindex><a rel=\"nofollow\" href=\"https:\/\/janus.conf.meetecho.com\/\">Janus Gateway da Meetecho<\/a><\/noindex>. Como resultado, os clientes n\u00e3o conhecem os endere\u00e7os uns dos outros, vendo apenas o endere\u00e7o do servidor Janus; este tamb\u00e9m desempenha as fun\u00e7\u00f5es de servidor de sinaliza\u00e7\u00e3o. O Janus possui muitas funcionalidades que precisamos: muda automaticamente para TCP se o UDP do cliente estiver bloqueado; consegue gravar fluxos tanto em UDP quanto em TCP; \u00e9 escal\u00e1vel; h\u00e1 at\u00e9 um plugin embutido para testes de eco. Se necess\u00e1rio, conectam-se automaticamente servidores STUN e TURN da Twilio.<\/p>\n<p>No ver\u00e3o de 2017, oper\u00e1vamos com dois servidores Janus mais um servidor adicional para processar os arquivos brutos gravados de \u00e1udio e v\u00eddeo, para n\u00e3o sobrecarregar os CPUs dos principais. Na conex\u00e3o, os servidores Janus eram escolhidos com base no princ\u00edpio par-\u00edmpar (n\u00famero de conex\u00e3o). Naquele momento, isso era suficiente e, segundo nossas percep\u00e7\u00f5es, oferecia uma margem de seguran\u00e7a de aproximadamente quatro vezes, com uma taxa de implementa\u00e7\u00e3o em torno de 80. Com isso, o custo foi reduzido para cerca de 2 rublos por aula, al\u00e9m do desenvolvimento e manuten\u00e7\u00e3o.<\/p>\n<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/fd1cd47a6625f1ddaa20ed2a6067be60.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"vozvraschenie-k-teme-videosvyazi\">Voltando ao tema da videoconfer\u00eancia<\/h2>\n<p>Estamos constantemente monitorando o feedback de alunos e professores para identificar e mitigar problemas a tempo. No ver\u00e3o de 2018, a qualidade da conex\u00e3o se tornou a principal reclama\u00e7\u00e3o. Por um lado, isso significava que t\u00ednhamos lidado com outras defici\u00eancias. Por outro lado, era necess\u00e1rio agir rapidamente: com uma aula interrompida, corremos o risco de perder seu valor, \u00e0s vezes junto com o valor da compra do pr\u00f3ximo pacote, e com a interrup\u00e7\u00e3o de uma aula introdut\u00f3ria, corremos o risco de perder um cliente em potencial.<\/p>\n<p>Naquela \u00e9poca, nosso sistema de videoconfer\u00eancia ainda estava em modo MVP. Em termos simples, lan\u00e7amos, funcionou, escalamos uma vez, entendemos como fazer isso \u2013 e isso foi bom. If it works, don\u2019t fix it. Ningu\u00e9m estava focado na quest\u00e3o da qualidade da conex\u00e3o. Em agosto, ficou claro que isso n\u00e3o poderia continuar, e lan\u00e7amos uma nova equipe para entender o que estava errado com o WebRTC e o Janus.<\/p>\n<p>Essa nova equipe come\u00e7ou com: solu\u00e7\u00e3o MVP, sem m\u00e9tricas, sem objetivos, sem processos de melhoria, sendo que 7% dos professores reclamavam da qualidade da conex\u00e3o (n\u00e3o havia dados sobre os alunos, tamb\u00e9m).<\/p>\n<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/f8134229567f1187b00ec5c21a79800c.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"novoe-napravlenie-beretsya-za-rabotu\">A nova equipe come\u00e7a a trabalhar<\/h2>\n<p>A equipe se parece aproximadamente com isso:<\/p>\n<ul>\n<li>L\u00edder da equipe, que tamb\u00e9m \u00e9 o principal desenvolvedor.<\/li>\n<li>Os QA ajudam a testar as mudan\u00e7as, buscam novas maneiras de criar condi\u00e7\u00f5es inst\u00e1veis para a conex\u00e3o e relatam problemas da linha de frente.<\/li>\n<li>O analista busca constantemente diferentes correla\u00e7\u00f5es nos dados t\u00e9cnicos, melhora a an\u00e1lise do feedback dos usu\u00e1rios e verifica os resultados dos experimentos.<\/li>\n<li>O gerente de produto ajuda na dire\u00e7\u00e3o geral e na aloca\u00e7\u00e3o de recursos para experimentos.<\/li>\n<li>Outro desenvolvedor frequentemente ajuda com a programa\u00e7\u00e3o e tarefas relacionadas.<\/li>\n<\/ul>\n<p>Para come\u00e7ar, configuramos uma m\u00e9trica relativamente confi\u00e1vel que monitorava mudan\u00e7as nas avalia\u00e7\u00f5es da qualidade da conex\u00e3o (m\u00e9dia por dias, semanas, meses). Naquele momento, eram avalia\u00e7\u00f5es de professores, posteriormente adicionamos avalia\u00e7\u00f5es de alunos. Ent\u00e3o, come\u00e7amos a formular hip\u00f3teses sobre o que n\u00e3o estava funcionando, corrigir e observar as mudan\u00e7as na din\u00e2mica. Fomos pelos frutos mais f\u00e1ceis: por exemplo, substitu\u00edmos o codec vp8 pelo vp9, e os indicadores melhoraram. Tentamos ajustar as configura\u00e7\u00f5es do Janus, realizar outros experimentos \u2013 na maioria das vezes sem resultados.<\/p>\n<p>Na segunda etapa, surgiu a hip\u00f3tese: WebRTC \u00e9 uma solu\u00e7\u00e3o peer-to-peer, enquanto n\u00f3s usamos um servidor no meio. Poderia a solu\u00e7\u00e3o estar aqui? Come\u00e7amos a investigar e encontramos a mais significativa melhoria at\u00e9 agora.<\/p>\n<p>Naquele momento, o servidor era selecionado de um pool por um algoritmo bastante simples: cada um tinha seu pr\u00f3prio \"peso\", dependendo da largura de banda e pot\u00eancia, e tent\u00e1vamos enviar o usu\u00e1rio para aquele com \"peso\" maior, sem prestar aten\u00e7\u00e3o em onde o usu\u00e1rio estava geograficamente. Como resultado, um professor de S\u00e3o Petersburgo podia se comunicar com um aluno da Sib\u00e9ria atrav\u00e9s de Moscovo, e n\u00e3o pelo nosso servidor Janus em SPb.<\/p>\n<p>Reformulamos o algoritmo: agora, quando o usu\u00e1rio abre nossa plataforma, coletamos pings de Ajax dele para todos os servidores. Ao estabelecer a conex\u00e3o, escolhemos um par de pings (professor-servidor e aluno-servidor) com a menor soma. Menor ping significa menor dist\u00e2ncia de rede at\u00e9 o servidor; menor dist\u00e2ncia resulta em menor chance de perda de pacotes; a perda de pacotes \u00e9 o maior fator negativo em comunica\u00e7\u00e3o por v\u00eddeo. A parte negativa caiu pela metade em tr\u00eas meses (para ser justo, outros experimentos foram realizados nesse per\u00edodo, mas este quase certamente teve o maior impacto).<\/p>\n<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/a106f7701b34c03080251710adf2a7a0.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/2cd6782e5f4182004a0c0d9dd05dba5b.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Recentemente, descobrimos mais uma coisa n\u00e3o evidente, mas aparentemente importante: em vez de um servidor Janus poderoso em uma conex\u00e3o robusta, \u00e9 melhor ter dois servidores mais simples com uma largura de banda um pouco menor. Isso foi descoberto ap\u00f3s adquirirmos essas m\u00e1quinas potentes na esperan\u00e7a de acomodar o maior n\u00famero poss\u00edvel de salas (sess\u00f5es de comunica\u00e7\u00e3o) ao mesmo tempo. Os servidores possuem um limite de largura de banda, que podemos converter com precis\u00e3o em um n\u00famero de salas \u2014 sabemos quantas podem ser abertas, por exemplo, em 300 Mbps. Assim que muitas salas est\u00e3o abertas no servidor, deixamos de utiliz\u00e1-lo para novas sess\u00f5es at\u00e9 que a carga diminua. A ideia era que, ao comprar uma m\u00e1quina poderosa, carregar\u00edamos a conex\u00e3o ao m\u00e1ximo, para finalmente esbarrar no processador e na mem\u00f3ria, e n\u00e3o na largura de banda. Mas percebemos que, ap\u00f3s certo n\u00famero de salas abertas (420), mesmo com a carga de CPU, mem\u00f3ria e disco ainda longe dos limites, surgem reclama\u00e7\u00f5es na assist\u00eancia t\u00e9cnica. Claramente, algo piora dentro do Janus, talvez existam limita\u00e7\u00f5es tamb\u00e9m l\u00e1. Come\u00e7amos a experimentar, reduzimos o limite de largura de banda de 300 para 200 Mbps e os problemas desapareceram. Agora adquirimos tr\u00eas novos servidores com limites e especifica\u00e7\u00f5es mais baixos, acreditamos que isso resultar\u00e1 em uma melhoria est\u00e1vel na qualidade da comunica\u00e7\u00e3o. Investigarmos o que realmente aconteceu n\u00e3o foi uma prioridade, improvisamos \u2014 essa \u00e9 a nossa abordagem. Justificamos que naquele momento precis\u00e1vamos resolver a quest\u00e3o de forma r\u00e1pida, e n\u00e3o bonita; al\u00e9m disso, o Janus para n\u00f3s \u00e9 uma caixa-preta programada em C, mexer com isso \u00e9 muito caro.<\/p>\n<p><img decoding=\"async\" alt=\"De Skype a WebRTC: como organizamos a comunica\u00e7\u00e3o de v\u00eddeo pela web\" src=\"\/wp-content\/uploads\/2019\/04\/21ad5290ed3e40bdf0b26dfb5c20cdf8.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Assim, no processo, n\u00f3s:<\/p>\n<ul>\n<li>atualizamos todas as depend\u00eancias que pod\u00edamos atualizar, tanto no servidor quanto no cliente (tamb\u00e9m foram experimentos, monitoramos os resultados);<\/li>\n<li>corrigimos todos os bugs identificados relacionados a casos espec\u00edficos, por exemplo, quando a conex\u00e3o ca\u00eda e n\u00e3o se recuperava automaticamente;<\/li>\n<li>realizamos uma s\u00e9rie de reuni\u00f5es com empresas que trabalham na \u00e1rea de videoconfer\u00eancia e est\u00e3o familiarizadas com nossos problemas: que transmitem jogos, organizam webinars; testamos tudo o que nos pareceu \u00fatil;<\/li>\n<li>fizemos uma revis\u00e3o t\u00e9cnica do hardware e da qualidade da comunica\u00e7\u00e3o com os professores de quem recebemos mais reclama\u00e7\u00f5es.<\/li>\n<\/ul>\n<p>Os experimentos realizados e as mudan\u00e7as subsequentes permitiram reduzir a insatisfa\u00e7\u00e3o com a comunica\u00e7\u00e3o entre os professores de 7,1% em janeiro de 2018 para 2,5% em janeiro de 2019.<\/p>\n<h2 id=\"chto-dalshe\">O que vem a seguir<\/h2>\n<p>A estabiliza\u00e7\u00e3o da nossa plataforma Vimbox \u00e9 um dos principais projetos da empresa para 2019. Temos grandes esperan\u00e7as de que conseguiremos manter a din\u00e2mica e n\u00e3o veremos mais a videoconfer\u00eancia no topo das reclama\u00e7\u00f5es. Entendemos que uma parte significativa dessas reclama\u00e7\u00f5es est\u00e1 relacionada aos lags dos computadores e da internet dos usu\u00e1rios, mas precisamos identificar essa parte e resolver o restante. O resto \u00e9 um problema t\u00e9cnico, parece que devemos ser capazes de lidar com isso.<\/p>\n<p>A principal dificuldade \u00e9 que n\u00e3o sabemos at\u00e9 que n\u00edvel \u00e9 realmente poss\u00edvel aumentar a qualidade. Determinar esse teto \u00e9 a principal tarefa. Portanto, dois experimentos foram planejados:<\/p>\n<ol>\n<li>comparar o v\u00eddeo via Janus com o convencional p2p em condi\u00e7\u00f5es reais de opera\u00e7\u00e3o. Este experimento j\u00e1 foi realizado e nenhuma diferen\u00e7a estatisticamente significativa foi descoberta entre nossa solu\u00e7\u00e3o e o p2p;<\/li>\n<li>testar (servi\u00e7os caros) de empresas que lucram exclusivamente com solu\u00e7\u00f5es de videoconfer\u00eancia e comparar a quantidade de feedback negativo deles com a existente.<\/li>\n<\/ol>\n<p>Esses dois experimentos nos permitir\u00e3o determinar uma meta alcan\u00e7\u00e1vel e nos concentrar nela.<\/p>\n<p>Al\u00e9m disso, h\u00e1 uma s\u00e9rie de tarefas sendo resolvidas no dia a dia:<\/p>\n<ul>\n<li>criamos uma m\u00e9trica t\u00e9cnica de qualidade da comunica\u00e7\u00e3o em vez de depender de feedbacks subjetivos;<\/li>\n<li>produzimos logs de sess\u00e3o mais detalhados para analisar mais precisamente as falhas que ocorrem, entendendo quando e onde exatamente aconteceram, e quais eventos aparentemente n\u00e3o relacionados ocorreram nesse momento;<\/li>\n<li>preparamos um teste autom\u00e1tico de qualidade da comunica\u00e7\u00e3o antes da aula, e tamb\u00e9m daremos ao cliente a oportunidade de testar a comunica\u00e7\u00e3o manualmente, a fim de reduzir a quantidade de feedback negativo causado pelo seu hardware e canal;<\/li>\n<li>desenvolveremos e realizaremos mais testes de carga da videoconfer\u00eancia em condi\u00e7\u00f5es adversas, com perda de pacotes vari\u00e1vel, etc.;<\/li>\n<li>mudamos o comportamento dos servidores em caso de problemas para aumentar a resili\u00eancia;<\/li>\n<li>avisaremos o usu\u00e1rio se houver algo errado com a comunica\u00e7\u00e3o, assim como faz o 'Skype', para que ele entenda que o problema est\u00e1 do seu lado.<\/li>\n<\/ul>\n<p>A partir de abril, a dire\u00e7\u00e3o de videoconfer\u00eancia torna-se um projeto separado e completo dentro da Skyeng, focando em seu pr\u00f3prio produto, n\u00e3o apenas parte do Vimbox. Isso significa que come\u00e7amos a buscar pessoas para <noindex><a rel=\"nofollow\" href=\"https:\/\/spb.hh.ru\/vacancy\/30766332\">trabalhar com v\u00eddeo em tempo integral<\/a><\/noindex>. E como sempre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">procuramos muitas pessoas boas<\/a><\/noindex>.<\/p>\n<p>. E, \u00e9 claro, continuamos a nos comunicar ativamente com pessoas e empresas que trabalham com videoconfer\u00eancia. Se voc\u00ea quiser compartilhar experi\u00eancia conosco \u2014 ficaremos felizes! Comente, entre em contato \u2014 responderemos a todos.<\/p>\n<p>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47 De Skype a WebRTC: como organizamos videoconfer\u00eancias pela web | ProHoster","description":"Videoconfer\u00eancia \u00e9 o principal meio de comunica\u00e7\u00e3o.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/30842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=30842"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/30842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/22826"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=30842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=30842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=30842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}