{"id":32314,"date":"2019-10-31T21:46:17","date_gmt":"2019-10-31T18:46:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\/"},"modified":"2019-10-31T21:46:17","modified_gmt":"2019-10-31T18:46:17","slug":"webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","title":{"rendered":"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/d185b546f5fc4c15021481c0cc2fedbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesde os primeiros dias de trabalho no sistema de vigil\u00e2ncia em nuvem, enfrentamos um desafio que, sem solu\u00e7\u00e3o, poderia colocar um ponto final no Ivideon \u2013 foi nossa Everest, cuja escalada demandou um enorme esfor\u00e7o, mas agora, finalmente, cravamos o piolet no topo desse enigma multiplataforma.<\/p>\n<p>O sistema de transmiss\u00e3o de som e v\u00eddeo pela Internet n\u00e3o deve depender de equipamentos, clientes web e dos padr\u00f5es suportados por eles, al\u00e9m de funcionar corretamente na presen\u00e7a de Tradutores de Endere\u00e7os de Rede e firewalls. O usu\u00e1rio de vigil\u00e2ncia em nuvem deseja ter acesso ao servi\u00e7o, mesmo que utilize c\u00e2meras anal\u00f3gicas, e prefira assistir \u00e0 transmiss\u00e3o de v\u00eddeo ao vivo em um dispositivo moderno. <\/p>\n<p>\u00c9 bastante relevante que o usu\u00e1rio queira assistir ao v\u00eddeo com o m\u00ednimo de atraso poss\u00edvel. Quase a \u00fanica maneira de exibir v\u00eddeo com baixo atraso no navegador \u00e9 usar o WebRTC (comunica\u00e7\u00f5es em tempo real pela web). O WebRTC \u00e9 um conjunto de tecnologias para transmiss\u00e3o de v\u00eddeo e som peer-to-peer nos navegadores, originalmente projetado para transmiss\u00e3o e reprodu\u00e7\u00e3o de fluxo de v\u00eddeo com baixa lat\u00eancia. Para isso, entre outras coisas, \u00e9 utilizado o protocolo UDP.<\/p>\n<p>Antes de contar a voc\u00eas o que o novo motor oferece ao usu\u00e1rio, vamos relembrar por que e para que suportamos as tecnologias HLS e por que decidimos seguir em frente.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Motor HLS: pr\u00f3s e contras<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/f025d08eb22f7785090b8bc60194643c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex><a rel=\"nofollow\" href=\"https:\/\/www.encoding.com\/http-live-streaming-hls\/\">c<\/a><\/noindex>)<\/p>\n<p>A tecnologia HLS (HTTP Live Streaming) foi desenvolvida pela Apple, portanto, n\u00e3o \u00e9 surpreendente que o suporte tenha aparecido primeiro em dispositivos dessa marca. Atualmente, a transmiss\u00e3o de v\u00eddeo no formato HLS tamb\u00e9m \u00e9 suportada por praticamente todos os decodificadores de TV e muitos dispositivos que operam no sistema Android.<\/p>\n<p>O motor HLS utiliza o bem conhecido codec de v\u00eddeo H264 combinado com fluxos de \u00e1udio AAC ou MP3. Todo o fluxo de dados de \u00e1udio e v\u00eddeo \u00e9 embalado em um cont\u00eainer de transporte MPEG-TS. Para transmiss\u00e3o pelo protocolo HTTP, as informa\u00e7\u00f5es contidas no fluxo s\u00e3o divididas em fragmentos, descritos nas listas de reprodu\u00e7\u00e3o m3u8. Somente ent\u00e3o esses fragmentos, juntamente com as listas de reprodu\u00e7\u00e3o, s\u00e3o transmitidos via HTTP. A divis\u00e3o em fragmentos implica automaticamente um atraso em segundos, caracter\u00edstica desse cont\u00eainer MPEG-TS. <\/p>\n<p>O motor HLS tamb\u00e9m suporta fluxos de m\u00faltiplas taxas de bits, Live\/VOD. <\/p>\n<p><b>As principais vantagens do HLS:<\/b><\/p>\n<ul>\n<li>suporte integrado em todos os principais navegadores;<\/li>\n<li>facilidade de implementa\u00e7\u00e3o (comparado com WebRTC);<\/li>\n<li>\u00e9 muito conveniente e eficiente organizar diversas transmiss\u00f5es para um grande p\u00fablico, pois \u00e9 poss\u00edvel carregar segmentos uma \u00fanica vez no CDN.<\/li>\n<\/ul>\n<p>\nApesar da simplicidade do motor, as coisas n\u00e3o s\u00e3o t\u00e3o suaves quanto parecem. O principal problema \u00e9 que os desenvolvedores de players de terceiros se afastaram das recomenda\u00e7\u00f5es da Apple, especialmente em rela\u00e7\u00e3o aos formatos de \u00e1udio suportados. Em particular, muitos desenvolvedores come\u00e7aram a adicionar a capacidade de trabalhar com fluxos de \u00e1udio populares: v\u00eddeo mpeg2, \u00e1udio mpeg2, etc. Como resultado, foi necess\u00e1rio criar diferentes formatos de playlist para players diferentes.<\/p>\n<p>No entanto, um dos maiores problemas do motor HLS \u00e9 a alta lat\u00eancia na transmiss\u00e3o de dados.<\/p>\n<h2>As ra\u00edzes dos \"atrasos\"<\/h2>\n<p>\nA principal raz\u00e3o para a alta lat\u00eancia do HLS reside no fato de que os programadores criaram o motor para obter a melhor qualidade de imagem poss\u00edvel. Portanto, os par\u00e2metros do intervalo de quadros utilizados e o tamanho do buffer de reprodu\u00e7\u00e3o n\u00e3o s\u00e3o adequados para transmiss\u00f5es ao vivo. Isso resulta em uma lat\u00eancia consider\u00e1vel na transmiss\u00e3o do v\u00eddeo, que pode chegar a 5-7 segundos.<\/p>\n<p>Por um lado, isso \u00e9 um intervalo pequeno, por exemplo, para aqueles que assistem a um filme em um servidor de hospedagem de v\u00eddeo. Mas para sistemas de monitoramento, a lat\u00eancia na transmiss\u00e3o do v\u00eddeo pode ser muito significativa.<\/p>\n<p>Se voc\u00ea est\u00e1 monitorando um escrit\u00f3rio onde os funcion\u00e1rios se afastam dos monitores a cada hora, ent\u00e3o uma lat\u00eancia de 5 segundos n\u00e3o faz nenhuma diferen\u00e7a. Mas as pessoas come\u00e7aram a reclamar que, por exemplo, durante a transmiss\u00e3o de um jogo de futebol, no chat j\u00e1 haviam escrito GOOOOOL, mas no v\u00eddeo isso ainda n\u00e3o apareceu :). J\u00e1 temos v\u00e1rios casos de usu\u00e1rios em que o Ivideon deve praticamente substituir o Skype.<\/p>\n<p>\u00c9 poss\u00edvel vencer a lat\u00eancia no HLS? A resposta a essa pergunta soa como um discurso de um exterminador de ratos experiente em uma palestra para iniciantes: \"\u00c9 imposs\u00edvel exterminar os ratos, mas \u00e9 poss\u00edvel reduzir a popula\u00e7\u00e3o a um m\u00ednimo razo\u00e1vel\". Assim acontece com a lat\u00eancia no HLS; n\u00e3o conseguiremos elimin\u00e1-la totalmente, mas existem solu\u00e7\u00f5es no mercado que permitem reduzir significativamente a lat\u00eancia.<\/p>\n<h2>Segmenta\u00e7\u00e3o fina<\/h2>\n<p>\nOutro ponto negativo do motor \u00e9 o uso de arquivos pequenos para a transmiss\u00e3o de dados. \u00c0 primeira vista, o que h\u00e1 de errado nisso?<\/p>\n<p>Qualquer pessoa que j\u00e1 tentou copiar uma grande quantidade de pequenos arquivos de um dispositivo para outro certamente notou que a velocidade de grava\u00e7\u00e3o desse conjunto \u00e9 muito menor do que a de um \u00fanico grande arquivo do mesmo tamanho. E a intensidade de acesso ao disco r\u00edgido aumenta significativamente, o que, em geral, afeta negativamente o desempenho de todo o computador. Portanto, a transmiss\u00e3o de dados de v\u00eddeo em pequenos fragmentos de 10 segundos tamb\u00e9m contribui para aumentar a lat\u00eancia do mecanismo.<\/p>\n<p>Vamos resumir brevemente todos os pr\u00f3s e contras da tecnologia HLS.<\/p>\n<p><b>Vantagens do HLS:<\/b><\/p>\n<ol>\n<li>Capacidade de trabalhar com qualquer dispositivo. Voc\u00ea pode assistir a v\u00eddeos em qualquer dispositivo moderno, seja um smartphone, tablet, laptop ou desktop. O principal \u00e9 que o navegador da web seja de vers\u00e3o moderna e compat\u00edvel com HTML5 e Media Source Extensions.<\/li>\n<li>Excelente qualidade de imagem. A fun\u00e7\u00e3o de transmiss\u00e3o adaptativa utilizada permite alterar dinamicamente a qualidade do v\u00eddeo transmitido de acordo com a largura de banda da conex\u00e3o com a Internet, enquanto o algoritmo busca manter a qualidade m\u00e1xima.<\/li>\n<li>N\u00e3o h\u00e1 necessidade de configura\u00e7\u00f5es complexas no equipamento do usu\u00e1rio.<\/li>\n<\/ol>\n<p>\n<b>Desvantagens:<\/b><\/p>\n<ol>\n<li>Suporte limitado ao funcionamento do mecanismo em alguns dispositivos.<\/li>\n<li>Altas lat\u00eancias na transmiss\u00e3o de imagem.<\/li>\n<li>Aumento significativo de overhead e dificuldade de otimiza\u00e7\u00e3o devido ao uso de arquivos de pequeno tamanho. Devido \u00e0s caracter\u00edsticas do cont\u00eainer, nunca conseguiremos obter uma lat\u00eancia menor do que o tamanho do segmento.<\/li>\n<\/ol>\n<p>\nAs desvantagens do HLS superaram suas vantagens para n\u00f3s e nos fizeram buscar alternativas.<\/p>\n<h2>O que \u00e9 WebRTC<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/0cf3c13dba71f6b268113af77841e521.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex>c<\/noindex>)<\/p>\n<p>A plataforma WebRTC foi desenvolvida pelo Google em 2011 para a transmiss\u00e3o de dados de v\u00eddeo e \u00e1udio em tempo real entre navegadores e aplicativos m\u00f3veis com lat\u00eancia m\u00ednima. Para isso, usa-se o protocolo padr\u00e3o UDP e algoritmos especiais de controle de fluxo. Hoje, \u00e9 um projeto de c\u00f3digo aberto, que \u00e9 ativamente apoiado e desenvolvido pelo Google.<\/p>\n<p>WebRTC \u00e9 um conjunto de tecnologias para transmiss\u00e3o de v\u00eddeo e \u00e1udio ponto a ponto. Ou seja, por exemplo, os navegadores dos usu\u00e1rios podem transmitir dados diretamente entre si, sem o uso de servidores remotos para armazenar e processar dados. Todas as informa\u00e7\u00f5es tamb\u00e9m s\u00e3o processadas pelos navegadores e aplicativos m\u00f3veis dos usu\u00e1rios finais.<\/p>\n<p>A conveni\u00eancia e as grandes possibilidades dessa tecnologia foram muito bem avaliadas pelos desenvolvedores de todos os navegadores populares. Hoje, o suporte ao WebRTC \u00e9 implementado no Mozilla Firefox, Opera, Google Chrome (e em todos os navegadores baseados em Chromium), bem como em aplicativos m\u00f3veis para Android e iOS.<\/p>\n<p>Apesar de suas ineg\u00e1veis qualidades, o WebRTC tem algumas desvantagens significativas. <\/p>\n<h2>Dificuldades na escolha<\/h2>\n<p>\nA tecnologia WebRTC \u00e9 muito mais complexa em termos de intera\u00e7\u00f5es de rede devido ao fato de ser baseada em P2P. \u00c9 dif\u00edcil depurar, testar e pode se comportar de maneira imprevis\u00edvel. Al\u00e9m disso, precisamos superar NAT e firewalls, garantindo o funcionamento em redes onde o UDP est\u00e1 bloqueado.<\/p>\n<p>A implementa\u00e7\u00e3o do WebRTC do Google \u00e9 bastante complicada de usar. H\u00e1 at\u00e9 uma empresa inteira que oferece servi\u00e7os de montagem de SDK. Al\u00e9m disso, integrar a implementa\u00e7\u00e3o do Google ao nosso sistema foi bastante desafiador, j\u00e1 que precis\u00e1vamos evitar a recodifica\u00e7\u00e3o de todo o v\u00eddeo.<\/p>\n<p>No entanto, h\u00e1 muito desej\u00e1vamos oferecer aos usu\u00e1rios a capacidade de trabalhar com um real 'fluxo' de v\u00eddeo e minimizar o atraso da imagem na tela em rela\u00e7\u00e3o aos eventos reais. Al\u00e9m disso, quer\u00edamos tornar o uso de c\u00e2meras PTZ mais confort\u00e1vel, onde os atrasos s\u00e3o cr\u00edticos.<\/p>\n<p>Considerando que outras implementa\u00e7\u00f5es para combate a atrasos ainda t\u00eam funcionalidade limitada e funcionam de maneira visivelmente inferior, decidimos usar o WebRTC. <\/p>\n<h2>O que fizemos<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/714f94de43114e552e4d818e9ec927ae.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nImplementar corretamente a plataforma WebRTC \u00e9 uma tarefa desafiadora. Qualquer erro ou imprecis\u00e3o pode resultar em atrasos na transmiss\u00e3o do v\u00eddeo n\u00e3o apenas n\u00e3o diminuindo em compara\u00e7\u00e3o com outras plataformas, mas at\u00e9 aumentando.<\/p>\n<p>Para o funcionamento adequado do WebRTC, primeiro \u00e9 necess\u00e1rio realizar uma moderniza\u00e7\u00e3o tecnol\u00f3gica da pilha para trabalhar com v\u00eddeo na web. E foi isso que fizemos.<\/p>\n<p>Primeiro, implementamos um servidor de sinaliza\u00e7\u00e3o do protocolo WebRTC sobre Websocket, al\u00e9m de implantar um servidor peer WebRTC na nuvem com base no SDK webrtc.org. Sua fun\u00e7\u00e3o \u00e9 distribuir fluxos de v\u00eddeo para os peers WebRTC dos clientes no formato H.264 + Opus\/G.711 sem reencodifica\u00e7\u00e3o do v\u00eddeo.<\/p>\n<p>Escolhemos o Websocket como protocolo de sinaliza\u00e7\u00e3o porque ele j\u00e1 \u00e9 bem suportado em todos os navegadores web populares. Com isso, \u00e9 poss\u00edvel reduzir significativamente n\u00e3o apenas os custos de desenvolvimento, mas tamb\u00e9m evitar gastar tempo e recursos com handshakes TCP e TLS repetidos em compara\u00e7\u00e3o com AJAX.<\/p>\n<p>A quest\u00e3o \u00e9 que, por padr\u00e3o, o WebRTC n\u00e3o fornece um protocolo de sinaliza\u00e7\u00e3o necess\u00e1rio para a configura\u00e7\u00e3o, manuten\u00e7\u00e3o e finaliza\u00e7\u00e3o corretas da comunica\u00e7\u00e3o de v\u00eddeo em tempo real entre os aplicativos de origem e os clientes.<\/p>\n<p>E para implementar a tecnologia de sinaliza\u00e7\u00e3o por conta pr\u00f3pria, precis\u00e1vamos desenvolver nosso pr\u00f3prio servidor de sinaliza\u00e7\u00e3o com suporte a v\u00e1rios protocolos web (Websocket, WebRTC). Al\u00e9m disso, com a capacidade de gerenciar sess\u00f5es e notifica\u00e7\u00f5es em tempo real de forma segura, controle de v\u00eddeo e muitos outros par\u00e2metros.<\/p>\n<p>Superamos as limita\u00e7\u00f5es do P2P reduzindo a lat\u00eancia n\u00e3o por meio do P2P, mas sim com UDP e gerenciando o fluxo para diminuir a lat\u00eancia. Isso tamb\u00e9m est\u00e1 embutido no WebRTC, uma vez que o principal caso de uso s\u00e3o as conversas P2P atrav\u00e9s do navegador.<\/p>\n<p>No cliente m\u00f3vel, implementamos um player utilizando o SDK webrtc.org, pois apenas ele gerencia o fluxo corretamente, possui todos os conhecidos esquemas de Corre\u00e7\u00e3o de Erros de Reencaminhamento (FEC) e implementa corretamente o mecanismo de retransmiss\u00e3o de pacotes para todos os navegadores. \u00c9 importante ressaltar que o SDK webrtc.org \u00e9 desenvolvido ativamente pelo Google.<\/p>\n<h2>Qual \u00e9 o resultado da implementa\u00e7\u00e3o do WebRTC?<\/h2>\n<p>\n<center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/vk.com\/video_ext.php\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><br \/>\nPara visualizar v\u00eddeo ao vivo das c\u00e2meras, adicionamos ao painel do cliente um novo player otimizado com base no WebRTC. Ele garante alta velocidade de carregamento do v\u00eddeo e elimina completamente o problema de acumula\u00e7\u00e3o de lat\u00eancia \u00e0 medida que o tempo de visualiza\u00e7\u00e3o aumenta.<\/p>\n<p>Ap\u00f3s a implementa\u00e7\u00e3o do suporte ao WebRTC no servi\u00e7o em nuvem Ivideon, podemos afirmar com total confian\u00e7a que agora nossos clientes t\u00eam acesso \u00e0 reprodu\u00e7\u00e3o de v\u00eddeo ao vivo de alta qualidade. Atualmente, a lat\u00eancia na transmiss\u00e3o do v\u00eddeo n\u00e3o ultrapassa um segundo! Para compara\u00e7\u00e3o, o antigo mecanismo HLS fornecia a entrega do v\u00eddeo com uma lat\u00eancia de 5 a 7 segundos. A diferen\u00e7a na velocidade de exibi\u00e7\u00e3o do v\u00eddeo \u00e9 muito significativa e o usu\u00e1rio perceber\u00e1 isso imediatamente ao come\u00e7ar a usar nosso servi\u00e7o de v\u00eddeo.<\/p>\n<p>Como j\u00e1 prev\u00edamos, a implementa\u00e7\u00e3o do novo player permitiu aumentar a responsividade do PTZ e da comunica\u00e7\u00e3o de voz com a c\u00e2mera.<\/p>\n<p><img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/b6775b11fbc6d97a7cede32cccc471ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nH\u00e1 apenas um detalhe sutil que queremos chamar a aten\u00e7\u00e3o. O novo player WebRTC ainda est\u00e1 em modo de teste. Por isso, n\u00e3o o ativamos para todos os nossos clientes por padr\u00e3o. Mas voc\u00ea pode ativ\u00e1-lo manualmente, habilitando a op\u00e7\u00e3o correspondente nas configura\u00e7\u00f5es da c\u00e2mera (para isso, voc\u00ea precisa acessar o <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.ivideon.com\/my\/\">painel pessoal<\/a><\/noindex>).<\/p>\n<h2>Caracter\u00edsticas da implementa\u00e7\u00e3o do WebRTC no servi\u00e7o Ivideon<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC e vigil\u00e2ncia por v\u00eddeo: como superamos a lat\u00eancia do v\u00eddeo das c\u00e2meras\" src=\"\/wp-content\/uploads\/2019\/04\/247e640fa9334a0c144cc6b4296dc23b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAtualmente, o WebRTC ainda \u00e9 uma tecnologia experimental. Seu suporte ainda n\u00e3o est\u00e1 corretamente implementado em todos os navegadores e dispositivos do usu\u00e1rio, nem em todas as c\u00e2meras.<\/p>\n<p>Essa \u00e9 a raz\u00e3o pela qual ainda n\u00e3o tornamos o player WebRTC o principal por padr\u00e3o para todos os usu\u00e1rios.<\/p>\n<p>Por enquanto, recomendamos usar o WebRTC apenas nos navegadores Google Chrome. As vers\u00f5es mais recentes do Firefox e Safari tamb\u00e9m suportam essa tecnologia, mas, infelizmente, ainda de forma inst\u00e1vel. <\/p>\n<p>Ainda n\u00e3o implementamos o suporte ao WebRTC para navegadores em dispositivos m\u00f3veis. No momento, se voc\u00ea acessar um dispositivo m\u00f3vel e ativar o WebRTC, esse modo n\u00e3o funcionar\u00e1. No entanto, o WebRTC est\u00e1 dispon\u00edvel em nossos aplicativos m\u00f3veis para <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ivideon.client&amp;hl=ru\">Android<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/itunes.apple.com\/ru\/app\/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BD%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-ivideon\/id464234175?mt=8\">iOS<\/a><\/noindex>.<\/p>\n<p>E para concluir nossa narrativa sobre as caracter\u00edsticas da implementa\u00e7\u00e3o do WebRTC em nosso servi\u00e7o, queremos ressaltar mais dois detalhes sutis.<\/p>\n<p>Primeiro, a tecnologia \u00e9 voltada especificamente para a transmiss\u00e3o de v\u00eddeo ao vivo em tempo real. Portanto, se a largura de banda do seu canal for insuficiente para transmitir o v\u00eddeo, voc\u00ea notar\u00e1 perda de quadros (com o HLS, voc\u00ea perceber\u00e1 pausas no v\u00eddeo e aumento da lat\u00eancia, mas os quadros n\u00e3o ser\u00e3o perdidos), embora o v\u00eddeo continue a ser transmitido em tempo real.<\/p>\n<p>Em segundo lugar, como a tecnologia \u00e9 destinada a funcionar com v\u00eddeo ao vivo em tempo real, n\u00f3s n\u00e3o a utilizamos para trabalhar com dados de v\u00eddeo arquivados.<\/p>\n<h2>Outras altera\u00e7\u00f5es no servi\u00e7o<\/h2>\n<p>\nAtualmente, o Flash n\u00e3o participa mais do mecanismo de sele\u00e7\u00e3o autom\u00e1tica do motor. Voc\u00ea ainda pode usar esse player, mas precisa escolh\u00ea-lo manualmente nas configura\u00e7\u00f5es da conta ou da c\u00e2mera. N\u00e3o \u00e9 uma quest\u00e3o de moda, \u00e9 que, de acordo com as estat\u00edsticas do nosso servi\u00e7o, restam praticamente nenhum usu\u00e1rio trabalhando com Flash. E ao tentar determinar se o navegador do usu\u00e1rio \u00e9 compat\u00edvel, n\u00f3s perdemos cerca de 2 segundos de tempo valioso. <\/p>\n<p>Aqui est\u00e1 um resumo das mudan\u00e7as que voc\u00ea pode esperar em nosso sistema de videovigil\u00e2ncia em nuvem e na sua conta pessoal. Fique conosco e acompanhe as novidades!<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ivideon\/blog\/449326\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u0431\u0435\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 Ivideon \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0440\u0435\u0441\u0442 \u2013 \u044d\u0442\u043e \u0431\u044b\u043b \u043d\u0430\u0448 \u042d\u0432\u0435\u0440\u0435\u0441\u0442, \u0432\u043e\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043d\u044f\u043b\u043e \u0443\u0439\u043c\u0443 \u0441\u0438\u043b, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0432\u043e\u0442\u043a\u043d\u0443\u043b\u0438 \u043b\u0435\u0434\u043e\u0440\u0443\u0431 \u0432 \u043c\u0430\u043a\u0443\u0448\u043a\u0443 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0443\u0441\u0430. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u0432\u0443\u043a\u0430 \u0438 \u0432\u0438\u0434\u0435\u043e \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, Web-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24131,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32314","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=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\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\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\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\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\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:46:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:17+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\udd47WebRTC e videovigil\u00e2ncia: como vencemos a lat\u00eancia de v\u00eddeo das c\u00e2meras | ProHoster","description":"Desde os primeiros dias de trabalho sobre.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","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\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster","og:description":"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","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:46:17+00:00","article:modified_time":"2019-10-31T18:46:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32314","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"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 10:17:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:17:44","updated":"2026-01-21 10:17: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\/32314","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=32314"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/32314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/24131"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=32314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=32314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=32314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}