Sochi.Camera: como um provedor regional criou um site de transmissão de vídeo com uma visita de 500.000 pessoas por mês

Sochi.Camera - um site com transmissões de mais de 300 câmeras instaladas em Sochi e seus arredores. O site e todo o serviço são sem fins lucrativos, criados e mantidos às suas próprias custas pelo provedor de Internet local "Business Connection" , por quase 10 anos.

Criando um projeto, experimentamos muitos modelos de câmeras de vídeo externas (fixas, rotativas, móveis), modificando e adaptando-as às nossas necessidades. Tentamos várias soluções de servidor, trazendo-as à mente dos desenvolvedores. Eles mesmos criaram aplicativos móveis para Android e iOS. O projeto acabou sendo muito difícil, mas gradualmente elaboramos cada elemento do sistema para um estado de alta eficiência. O desenvolvimento continua, mas agora há algo a dizer.




Este é o primeiro artigo de revisão. Nele, falaremos sobre como este projeto foi lançado e desenvolvido, em que consiste a solução técnica, como instalar uma webcam em uma gaiola por um leão (spoiler - organize com um leão) e por que pessoas de toda a Rússia olham para Sochi através do nosso site. Se este post parecer interessante, podemos falar sobre o projeto em mais detalhes.

Do lado técnico, o projeto Sochi, a câmera é dividida em três partes:

1) tire uma foto;

2) transferi-lo para o servidor de transmissão de vídeo;

3) mostra o fluxo no site.

E tudo isso está no ar.

Vamos sequencialmente.

Câmeras.

As câmeras na rede são diferentes. Por quase 10 anos, eles tentaram muitos modelos, alguns dos testados estão na rede. As câmeras são unificadas, padrão, o protocolo que usamos - RTSP, é suportado por quase todos os modelos padrão. O custo das câmeras caiu drasticamente desde 2008 e a qualidade da imagem aumentou drasticamente. Então, uma câmera estática simples custa cerca de 40 mil rublos. Hoje, com o mesmo dinheiro, você pode comprar um Full HD rotativo com a capacidade de "patrulhar por pontos", colocá-lo na torre e fornecer uma imagem dinâmica. Hoje, uma câmera estática comum custa apenas 5-7 mil (não se esqueça dos descontos).

A qualidade da imagem das câmeras modernas é quase televisiva, não é a imagem da webcam com a qual estamos acostumados - um pequeno quadrado escuro com uma frequência de 1 quadro por segundo.



Recentemente se estabeleceu em um par de modelos: Hikvision
e SNR

São de baixo nível de ruído, com um bom efeito de disparo noturno devido à matriz moderna.
Cada câmera oferece dois fluxos: Full HD (velocidade de 4-6 Mbit / s) e SD (512 Kbit / s), o site possui comutadores HD / SD. Isso é feito para que os usuários com Internet lenta possam ativar o modo SD poupador. Também é usado em nossos aplicativos móveis, porque na tela pequena a diferença entre Full HD e SD é quase imperceptível. Obviamente, existem muitas câmeras no mercado com uma resolução superior a Full HD, por exemplo, 4MP. Tentamos usá-los, mas a prática mostrou a inadequação de tais permissões para transmissões online na Internet. Em primeiro lugar, nem todos os canais da Internet transmitem isso sem perda, e nem todos os dispositivos clientes podem exibir esse fluxo sem problemas. Como resultado, a transmissão pode ser acompanhada de empurrões e artefatos, afinal, a Internet não é uma rede local. Bem, para concluir, a grande maioria dos usuários assiste câmeras no modo de janela em vez de tela cheia, ou seja, na saída a diferença de taxas de bits e resoluções não é visível para eles. Como resultado, transferimos câmeras de 4 megapixels para o modo 2MP 1920x1080. Quanto ao software, nas próprias câmeras o firmware padrão de fábrica, como regra, não mudamos nada por lá.

Agora, existem cerca de 318 câmeras em acesso geral. A gravação é realizada em ~ 115-120 câmeras, relacionadas à situação do tráfego. O registro é necessário devido à necessidade de analisar acidentes, o que acontece com bastante frequência. Não gravamos câmeras que olham a natureza, o pôr do sol, as montanhas e assim por diante. Servidores de registro são um recurso caro, em vão tentamos não gastá-lo.

Quanto à privacidade - as câmeras são instaladas para que os rostos não sejam legíveis. Montamos câmeras panorâmicas para que a cena em geral possa ser vista, por exemplo, uma máquina amarela bate em uma azul, um semáforo queima ali, tal e tal, nada mais. No entanto, a polícia de trânsito e a polícia frequentemente, toda semana e até, às vezes, todos os dias: eles são solicitados a mostrar os registros.





A instalação e manutenção de câmeras é feita através de contratados. Ao mesmo tempo, se houver problemas, siga as instruções com muita precisão. É necessário fazer mais do que de acordo com as instruções, levar em consideração, por exemplo, diferenças de pressão e temperatura. No processo, houve truques, por exemplo, conectando um cabo Ethernet dentro do corpo da câmera, e não na caixa de instalação ou no “barril” de conexão padrão. Isolar webcams é muito mais sério em comparação com os meios regulares, de modo que eles trabalhem em silêncio por vários anos, sem umidade.

Não pagamos nada pelo posicionamento das câmeras, este é um ponto fundamental, pois nosso projeto é sem fins lucrativos - a imagem é de domínio público, não ganhamos nada com isso. Portanto, se alguém não quiser publicar de graça, não publicaremos lá. A cidade tem muitos lugares bonitos e muitos que querem colocar nossas câmeras. Os proprietários dos prédios estão dispostos a dar permissão para a instalação, simplesmente porque estamos diante das câmeras para anunciar esses estabelecimentos gratuitamente. Nossa participação é alta o suficiente para um site regional; mais de 500.000 pessoas por mês, competimos com grandes portais de notícias locais. Portanto, o problema é levar o canal a um lugar interessante, em vez de realmente colocar a câmera.



Em geral, depois de encontrarmos as soluções ideais para diferentes situações de instalação, as câmeras representam cerca de 10% do que o projeto Sochi consiste. O principal não está neles, mas nos canais de transmissão de vídeo e no software para transmissão no site.

Canais de transmissão de vídeo.

"Business Communication" é um provedor de Internet, operadora de telecomunicações, temos nossa própria rede da cidade, um grande número de nós. Portanto, não precisamos alugar nenhum canal para transmissão de vídeo, nem a “última milha”, nem os canais tronco, nem o acesso à Internet - já temos tudo.

Os consumidores de nossos serviços são organizações e indivíduos. Se você observar o perfil do tráfego da Internet, haverá principalmente tráfego de entrada, uma vez que um usuário padrão consome (downloads) o tráfego e gera muito pouco. Em média, a taxa de tráfego de entrada para o tráfego de saída é de 10 para 1. Os canais que alugamos / compramos para fornecer serviços de Internet de operadores de backbone são síncronos, as velocidades de entrada e saída são as mesmas. Portanto, o retorno (canal de saída), como regra, para provedores de Internet como nós, está meio vazio. Essa situação é típica para a maioria dos operadores que trabalham com pessoas. Nos datacenters de provedores de hospedagem e redes sociais, a situação é oposta, há principalmente tráfego de saída, mas esse não é o nosso caso.

Como resultado, verifica-se que coletar vídeo de câmeras e transmiti-lo para a Internet, em termos de custo de transmissão de tráfego, nos custa quase nada. Ao mesmo tempo, são necessários canais sérios, porque uma câmera estática fornece cerca de 4 Mbit / s e uma câmera pivotante - até 10 Mbit / s no momento da alteração do ângulo.



Multiplique isso pelo número de consumidores simultâneos, que são 2.000 ou mais durante o dia. Suponha que uma organização de terceiros, e não uma operadora de telecomunicações, queira criar um projeto como o Sochi.Kamer. Nesse caso, todos os recursos necessários precisarão ser alugados por sinalistas, e a preços atuais isso custará um centavo considerável. Mas se você é um operador de telecomunicações, a bandeira está em suas mãos.

Mas ainda existem dificuldades na organização dos canais de comunicação. Isso se deve ao fato de que onde os canais de comunicação estão presentes, ou seja, no centro da cidade, basicamente não há nada para assistir. E onde é interessante, não há canais de comunicação próximos e eles precisam, de alguma forma, ser organizados, alocar equipamentos, consumíveis, recursos humanos. Por exemplo, agora estamos organizando uma conexão com a toca do guaxinim na floresta.

Software de transmissão de vídeo.

Iniciamos nosso projeto em 2008-2009, quando não havia amostras que pudessem ser simplesmente colhidas e copiadas. Havia muitos agregadores de webcams que os procuravam sempre que possível e os apresentavam em um diretório como supostamente próprio. Mas não havia soluções complexas e prontas. Para receber um número tão grande de câmeras e distribuir para muitas pessoas em diferentes dispositivos, você precisa de um software confiável e estável. Então começamos a fazer tudo sozinhos; foram vários anos de desenvolvimento do zero, começando pelo design, layout e terminando com a arquitetura do software. Eles não o copiaram de ninguém, eles tentaram cinco versões do mecanismo - do LinuxDVR primitivo no mjpeg, ao Red 5, ffmpeg + nginx, Wowza. A propósito, o último foi abandonado não por razões técnicas, mas por causa de alterações nas condições de licenciamento ao mudar para uma nova versão e a ausência de uma licença vitalícia na nova política do desenvolvedor americano. Ou seja, eles queriam receber dinheiro mensalmente, com base na carga real. E o fato de o projeto não ter fins lucrativos não incomodou ninguém lá.

No processo de desenvolvimento e desenvolvimento do serviço, fomos à empresa Erlivideo, que está desenvolvendo o servidor de mídia Flussonic. A equipe do projeto era de Moscou e foi fácil encontrar uma linguagem comum, e no geral funcionou bem na solução de tarefas não triviais. Isso não quer dizer que tudo sempre foi suave, e batentes e ancinhos saíram. MAS. Quando você vê o desejo de um desenvolvedor de melhorar seu produto, ouve e leva em consideração os comentários do cliente e vê os resultados reais dessa interação após a próxima atualização, vale muito a pena.



Flussonic Media Server é uma plataforma de servidor de streaming de vídeo. Com sua ajuda, você pode organizar a captura de qualquer fluxo de vídeo, gravar vídeo no arquivo morto e distribuí-lo aos clientes usando vários protocolos e dispositivos, em tempo real e sob demanda. A reprodução está disponível na forma de uma fita sem fim, que pode ser visualizada a qualquer momento. A distribuição pode ser feita através dos protocolos RTMP, RTSP, HLS, HDS, HTTP MPEG-TS, DASH e WebRTC. Além disso, o Flussonic pode transcodificar o vídeo alterando os parâmetros do codec e do vídeo. A lista de codecs suportados inclui H.264, H.265, MPEG-2, AAC, AC3, MP3, VP6, Speex e G711a / u. A plataforma pode montar clusters de servidores, capturar mais de 1600 fluxos e distribuir centenas de milhares de conexões simultâneas. Você pode usar as ferramentas internas e a interface da web, bem como a API HTTP para gerenciar e monitorar a atividade e o carregamento.

Das câmeras, coletamos fluxos no RTSP padrão. Distribuído até recentemente, principalmente o DASH para flash players, o UDP Multicast para a rede interna e o HLS para aplicativos móveis. Nos últimos anos, as revoluções HTML5 e o "funeral" do Adobe Flash foram anunciados periodicamente, por isso tivemos que usar um design inteiro que "alimentasse" o tipo de player e fluxo necessário, dependendo do navegador e do SO do cliente. Apesar do hype em torno do HTML5, muitos navegadores populares eram muito desajeitados para a tag de vídeo quando se tratava de transmissão ao vivo. Por outro lado, digamos, de reproduzir um vídeo pré-gravado, que funcionou de maneira estável desde o anúncio do HTML5.

Agora podemos dizer que a “turbulência do navegador” acabou e mudamos para a transmissão nativa em HTML5 nos navegadores, abandonando completamente o plug-in Flash. Assim, "disponível" agora temos apenas HLS e Multicast.

Para nossos assinantes que usam IPTV para multicast, fizemos a transmissão dessas câmeras para uma rede de televisão, ou seja, elas veem todas as webcams como canais de TV separados em suas TVs. As webcams na IPTV são classificadas por tema e complementam o conjunto padrão de canais de TV oferecidos por nossos clientes.

Nosso outro recurso é a funcionalidade do player incorporado, como no YouTube ou no Vimeo. Do nosso serviço, enviamos vídeos para alguns sites muito famosos - estes são resorts e hotéis em Krasnaya Polyana. Ao mesmo tempo, eles não aumentam a transmissão, apenas precisam do código de inserção. O player incorporado pode ter a marca ou não ter nenhuma marca de identificação, o que permite que nossos parceiros projetem suas páginas independentemente no estilo certo. Exemplos:

Um

Dois

Três

Outra característica nossa são as webcams móveis baseadas em telefones celulares. Nós os chamamos de "The Fluff", do método push de streaming de vídeo. Este é um aplicativo Android personalizado distribuído como um arquivo APK. No mercado, não é e não será. A idéia é simples: o telefone celular tem tudo o que você precisa para transmissão de vídeo: uma câmera, posicionamento GPS, canal de dados. Criamos um aplicativo que processa o vídeo e o transfere imediatamente para Sochi. Som e coordenadas transmitidas opcionalmente. A criação de "buracos negros" é fornecida, uma vez em que o "Fluff" interrompe a transmissão. Os análogos "Cannon" são bem conhecidos, por exemplo, este é "Periscope" para "Instagram". Ao mesmo tempo, pensamos em distribuir esse aplicativo entre blogueiros, mas abandonamos essa ideia por vários motivos. Agora, o "Guns" trabalha em vários ônibus da cidade e, mais perto da estação, as transmissões de navios turísticos retomarão seu trabalho.





A própria câmera é feita inteiramente em Javascript. Servidor - no Node.js, parte do navegador - Angular.js

Aplicativos móveis para Android, iOS e Windows Phone são criados usando ferramentas padrão de desenvolvedor. Também vale a pena acrescentar que existe um aplicativo para o Windows Desktop, alguns clientes preferem o navegador, porque ele funciona mais rápido, não há publicidade e, em geral, há funcionalidade minimalista sem um "kit" na forma de bate-papos e outras coisas.
É interessante que, nos últimos tempos, soluções integradas chave na mão não tenham aparecido. Os sistemas de vídeo prontos existentes são projetados para finalidades completamente diferentes, principalmente para vigilância por vídeo de segurança. Há um mural de vídeos, gravação, visualização, rebobinamento e assim por diante, mas eles são aprimorados para vigilância por vídeo de segurança, e não para o trabalho de vários milhares de pessoas por vez. Geralmente, essa é uma abordagem diferente, uma arquitetura diferente.

Sobre isso, gostaria de terminar o artigo de revisão. Como dissemos acima, muitos elementos do sistema podem ser descritos com mais detalhes, eles valem a pena. Por exemplo, sobre os truques de instalar câmeras de vídeo na rua em condições de alta umidade e grandes diferenças de temperatura, a maneira de organizar câmeras móveis em ônibus e embarcações a motor, ou em mais detalhes sobre aplicativos para smartphones e seus servidores ou sobre a escolha de software para streaming de vídeo no site. Também podemos dizer algo sobre os custos de desenvolvimento e manutenção de um projeto desse tipo. As injeções iniciais de desenvolvimento nos primeiros anos, por exemplo, totalizaram cerca de 4.000.000 de rublos. Mas este não é o número final.

Você pode se perguntar em que parte do projeto você está interessado. À espera de suas perguntas.

Source: https://habr.com/ru/post/pt411037/


All Articles