Open 24 Hours
+1 203 356 3596

Blog

Configurar um servidor de streaming em tempo real (RTSP)

Instale os pacotes necessários:

raspberrypi ~ $ sudo apt-get install vlc

Execute o UV4L com o driver raspicam :

raspberrypi ~ $ uv4l --driver raspicam --auto-video_nr --framerate 25 --encoding=h264 --extension-presence=0
 [core] Dispositivo detectado!
 [core] Registrando o nó do dispositivo /dev/video0

Opcionalmente, forneça uma política de agendamento em tempo real ao processo do driver para melhor desempenho (que é o mesmo que executar uv4l com sudo uv4l –sched-rr ):

raspberrypi ~ $ sudo greyhound -a -r -p 99 `pgrep uv4l`

Execute o servidor de streaming VideoLan em tempo real no seu Raspberry Pi com a resolução preferida:

raspberrypi ~ $ cvlc -vvv v4l2c:///dev/video0:width=640:height=480:chroma=H264 --sout '#rtp{sdp=rtsp://:8554/}' --demux h264

embora mais apropriado em teoria, o comando acima foi relatado como vazando memória por causa de algumas versões com bugs do cvlc . Se este for o caso, tente o seguinte comando alternativo para executar o servidor:

raspberrypi ~ $ dd if=/dev/video0 bs=1M | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' --demux=h264

Agora você pode se conectar ao seu Raspberry Pi do cliente, por exemplo (não se esqueça da barra final):

mypc ~ $ vlc rtsp://raspberrypi:8554/

onde raspberrypi é o nome do host ou IP do seu RaspberryPi.

Você pode definir qualquer propriedade de imagem em tempo real (enquanto a câmera está transmitindo). Por exemplo, para listar todos os controles disponíveis e alterar o brilho:

raspberrypi ~ $ sudo apt-get install v4l-utils
raspberrypi ~ $ v4l2-ctl --list-ctrls --device /dev/video0
 brilho (int): min=0 max=100 step=1 default=50 value=50
 contraste (int): min=-100 max=100 step=1 default=0 value=0
 saturação (int): min=-100 max=100 step=1 default=0 value=0
 iso (int): min=0 max=1200 step=1 default=400 value=400
 horizontal_mirror (bool): default=0 value=0
 vertical_mirror (bool): default=0 value=0
 nitidez (int): min=-100 max=100 step=1 default=0 value=0
raspberrypi ~ $ v4l2-ctl --set-ctrl=brightness=50 --device=/dev/video0

Uma interface mais amigável para alterar as propriedades da imagem durante a transmissão com este/qualquer método é a página da Web do Painel de controle que acompanha o plug-in HTTP Streaming Server para UV4L.

Versão gratuita da plataforma escalável de streaming de vídeo ao vivo com latência ultra baixa.

Suporta WebRTC Live Streaming, para além de CMAF e HLS streaming. Pode ser ingerido através de RTMP ou WebRTC ou HLS. Qualquer câmara IP pode ser ligada através de RTSP ou ONVIF. Também permite o Live Restreaming para Plataformas de Meios de Comunicação Social. Todos os códigos H.264, H.265, VP8 estão activados e também a codificação baseada em GPU está também disponível.

Ant Media Server Community Edition é uma versão limitada da Ant Media Server Enterprise Edition e suporta apenas as seguintes características.

  • Publicar transmissões ao vivo com WebRTC, RTMP – Reproduzir transmissões ao vivo e VoD com RTMP e HLS
  • Apoio RTMP, RTSP, MP4 e HLS
  • Adaptador WebRTC para RTMP
  • Fluxos 360 graus ao vivo e VoD Streams
  • Painel de Gestão Web
  • Suporte de Câmara IP
  • Re-streams de fluxo remoto (IPTV)
  • Código Aberto https://github.com/ant-media/Ant-Media-Server
  • Simulcasting para Periscópio
  • Os seus fluxos Live ou VoD podem ser reproduzidos em qualquer lugar, incluindo os navegadores móveis (Android, iOS).
https://www.youtube.com/embed/k5IbcYqXCqs?feature=oembed

Opções de Linode

Depois de fornecer as opções específicas da App, forneça configurações para o seu servidor Linode:

ConfiguraçãoDescrição
Seleccione uma imagemUbuntu 20.04 LTS é actualmente a única imagem suportada pela Ant Media Server Marketplace App, e está pré-seleccionada na página de criação de Linode. Necessário.
RegiãoA região onde gostaria que residisse o seu Linode. Em geral, é melhor escolher um local que seja o mais próximo de si. Para mais informações sobre a escolha de um CD, consulte o guia Como Escolher um Centro de Dados. Pode também gerar relatórios MTR para uma análise mais profunda das rotas da rede entre si e cada um dos nossos centros de dados. Necessário.
Plano LinodeOs recursos de hardwaredo seu Linode. Ant Media Server pode ser suportado em Linode de qualquer tamanho, mas sugerimos que implemente a sua Ant Media Server App num plano Linode 8GB. Se decidir que precisa de mais ou menos recursos de hardware depois de implementar a sua aplicação, pode sempre redimensionar o seu Linode para um plano diferente. Necessário.
Etiqueta LinodeO nome para o seu Linode, que deve ser único entre todos os Linodes da sua conta. Este nome é a forma como identifica o seu servidor no Cloud Manager Dashboard. Necessário.
Senha de RaizA senha administrativa primária para a sua instância Linode. Esta palavra-passe deve ser fornecida quando iniciar sessão no seu Linode via SSH. A palavra-passe deve satisfazer os requisitos de validação da força da complexidade para uma palavra-passe forte. A sua palavra-passe de raiz pode ser utilizada para executar qualquer acção no seu servidor, tornando-a assim longa, complexa, e única. Necessária.

Depois de fornecer todas as opções de Linode necessárias, clicar no botão Criar. O seu Ant Media Server App completará a instalação em qualquer lugar entre 2-5 minutos após o seu Linode ter terminado o provisionamento.

Começar após a implantação

Aceda ao seu Ant Media Server App

Após a instalação do Ant Media Server, poderá aceder ao seu servidor com o endereço IPv4 do seu Linode. Copie o endereço IPv4 do seu Linode a partir do Linode Cloud Managere depois ligar-se ao servidor a partir do seu browser utilizando o endereço e porta IPv4 do seu Linode 5080(por exemplo 192.0.2.0:5080).

1

Para mais informações sobre o Ant Media Server, consulte os seguintes recursos:

O aplicativo Community Edition Marketplace de Ant Media foi construído para Linode por Ant Media. Para apoio relativo ao desenvolvimento de aplicações, contactar Apoio Linode. Para apoio relativo à ferramenta ou software em si, utilizar a informação na barra lateral para contactar o apoio Ant Media .

Crie uma conta Linode para experimentar este guia com um crédito de $ 100.Este crédito será aplicado a quaisquer serviços válidos usados ​​durante os primeiros 60 dias.Inscrever-se

A transmissão ao vivo se tornou uma maneira importante para criadores, jogadores, instrutores e personalidades da mídia alcançarem novos públicos. Muitos streamers ao vivo estão usando sites como Twitch e Facebook Live para transmitir. No entanto, um servidor de streaming RTMP ( Real-Time Messaging Protocol ) é outra maneira popular de distribuir transmissões ao vivo. O RTMP permite que você envie seu fluxo para um servidor central, que pode armazená-lo ou retransmiti-lo para reprodução do público.

Este guia discute como configurar um servidor de streaming RTMP e como usar software de código aberto para transmitir e conectar-se a um stream. Ele também explica como configurar multi-streaming para transmitir uma transmissão ao vivo simultaneamente para vários sites de mídia social.

Antes de você começar

  1. Se você ainda não o fez, crie uma conta Linode e Compute Instance. Veja nossos guias de Introdução ao Linode e Criando uma Instância de Computação .
  2. Siga nosso guia Configurando e protegendo uma instância de computação para atualizar seu sistema. Você também pode definir o fuso horário, configurar seu nome de host, criar uma conta de usuário limitada e proteger o acesso SSH.

ObservaçãoEste guia foi escrito para um usuário não root. Os comandos que exigem privilégios elevados são prefixados com 

sudo. Se você não estiver familiarizado com o 

sudocomando, consulte o guia de 

usuários e grupos do Linux .

Mais informações sobre RTMP

RTMP é um protocolo de rede, não um aplicativo. Ele usa a camada TCP ( Transmission Control Protocol ), para que a maioria dos servidores de mídia possa processá-lo. O RTMP era originalmente uma tecnologia proprietária pertencente à Adobe e foi projetada para transmissão de áudio, vídeo e dados de alto desempenho. No entanto, agora está disponível para uso público gratuito e atualmente é um dos formatos de streaming mais populares. A maioria dos codificadores pode transmitir RTMP, e os grandes sites de mídia o aceitam, mas o suporte do navegador pode ser irregular. Recomendamos que você use um reprodutor de mídia dedicado, como o VLC Media Player de código aberto gratuito para receber fluxos.

Se quiser saber mais sobre os detalhes técnicos por trás do RTMP, você pode descobrir mais no site de desenvolvimento da Adobe . A página da Wikipedia também fornece uma boa introdução.

Vantagens de usar um servidor de streaming RTMP

  • O RTMP é um protocolo robusto que oferece conexões persistentes e de baixa latência e transmissão confiável. Os fluxos são divididos em fragmentos, com o tamanho negociado entre o cliente e o servidor de streaming. Diferentes fluxos podem ser multiplexados na mesma conexão. É bastante fácil configurar e usar RTMP, mas você deve usar um software compatível com RTMP para transmitir seu fluxo para o servidor.
  • O uso de um servidor RTMP também permite implementar multi-streaming , o que reduz a quantidade de largura de banda usada em sua conexão local. Você transmite apenas uma cópia do seu stream para o servidor, mesmo que queira transmitir para várias plataformas. O RTMP se encarrega de encaminhar cópias do seu stream para quantos sites você quiser. Isso torna fácil e conveniente transmitir simultaneamente ao vivo para o YouTube, Facebook e Twitch ao mesmo tempo. No entanto, para alguns sites, você deve transcodificar o fluxo em um formato específico, alterando ou recompactando seu fluxo.

Requisitos de sistema

Um servidor de streaming RTMP não requer necessariamente muito poder de processamento ou memória. Para um único fluxo, uma solução Linode de 1 GB deve ser suficiente. Se você estiver retransmitindo para vários sites ou precisar converter um fluxo em um formato diferente, pode ser necessária uma solução mais poderosa. Neste caso, recomendamos um host com pelo menos 4 GB de memória , como uma solução Linode de 4 GB .

Um resumo do processo de configuração do servidor de streaming RTMP

Essas instruções de instalação são voltadas para o Ubuntu 20.04, mas o procedimento é semelhante na maioria das distribuições Linux. O RTMP é um protocolo e não um aplicativo, portanto, você não precisa instalá-lo. Para fazer uso do RTMP, você deve instalar um servidor web, como o NGINX , e realizar várias outras etapas de configuração. As seções a seguir descrevem cada etapa com mais detalhes.

  1. Instalar NGINX e componentes relacionados
  2. Configurar NGINX para dar suporte a RTMP
  3. Configurar e usar o cliente Open Broadcaster Software (OBS)
  4. Ver e testar o stream
  5. Configurar e testar multitransmissão

O NGINX possui suporte total a RTMP e o recomendamos como seu servidor de streaming RTMP. Siga estas etapas para instalar o NGINX.

  1. Atualize seu host com as atualizações de pacote mais recentes. sudo apt update sudo apt upgrade
  2. Instale o servidor NGINX, suporte RTMP e outros módulos relacionados. sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev nginx-full libnginx-mod-rtmp ffmpeg
  3. Verifique o status do servidor. systemctl status nginx.service Após a instalação, Systemctlretorna um status de active.nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-02-14 15:21:39 UTC; 41s ago

Configurar NGINX para dar suporte a RTMP

Para fazer stream, você deve configurar alguns parâmetros do servidor através do nginx.confarquivo e criar um aplicativo de stream. Esta seção explica como configurar o RTMP para aceitar um fluxo e disponibilizá-lo para visualização. Multi-streaming é discutido em uma seção posterior.

  1. Use seu editor de texto favorito e abra o arquivo de configuração NGINX, normalmente localizado em /etc/nginx/nginx.conf. sudo vi /etc/nginx/nginx.conf ObservaçãoSe você não encontrar o nginx.confarquivo, execute o comando sudo nginx -t. Ele exibe a localização do arquivo e valida sua sintaxe.
  2. Adicione alguma configuração RTMP ao final do nginx.confarquivo conforme mostrado neste exemplo.
    • chunk_sizeconfiguração define o tamanho do fragmento. O tamanho ideal varia dependendo do servidor, mas 4096é um valor padrão razoável.
    • A porta padrão para a listenvariável é 1935.
    • Dentro da configuração do servidor, crie um aplicativo e dê um nome a ele. Este exemplo usa livestreamcomo nome do aplicativo, mas por motivos de segurança, recomendamos que você escolha um nome mais distinto. Você deve definir livecomo onpara habilitar o streaming.
    • Se você quiser salvar uma cópia de seus streams, defina a recordvariável como all. Caso contrário, defina-o como none.
    • Se você definir recordcomo all, deverá configurar um valor para record_path. É aqui que as gravações de seus streams são salvas.
    • Recomendamos adicionar um método de autenticação para que seus fluxos não sejam invadidos. Definir um local para on_publishaqui permite ativar a validação de senha em uma etapa subsequente.Arquivo: /etc/nginx/nginx.conf
    • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... rtmp { server { listen 1935; chunk_size 4096; notify_method get; application livestream { live on; on_publish http://localhost/auth; #Set this to "record off" if you don't want to save a copy of your broadcasts record all; #The directory in which the recordings will be stored record_path /var/www/html/streams; record_unique on; } } }
  3. Crie um diretório para salvar seus streams. A localização do diretório deve corresponder ao valor de record_path. sudo mkdir -p /var/www/html/streams
  4. Defina as permissões para o novo diretório para que o servidor possa gravar nele. sudo chown -R www-data:www-data /var/www/html/streams/
  5. Se você pretende impor a autenticação para fluxos de entrada, abra o /etc/nginx/sites-enabled/defaultarquivo e adicione as seguintes informações dentro do serverbloco. Substitua yourpasswordpor uma senha mais segura.
    • Se a senha que você fornecer ao iniciar sua transmissão corresponder à senha neste arquivo, o servidor de transmissão retornará um código HTML de 200(“OK”).
    • Se a senha estiver incorreta, ele retorna um código de 401(“Não autorizado”) e desconecta a sessão.Arquivo: /etc/nginx/sites-enabled/default1 2 3 4 5 6 7 8 9 ... listen 8080; location /auth { if ($arg_pwd = 'yourpassword') { return 200; } return 401; }
  6. Reinicie o servidor para aplicar suas alterações. systemctl restart nginx.service
  7. Revise o status do servidor para garantir que ele ainda esteja em execução. Procure o status de active. systemctl status nginx.service

Observação

Você pode encontrar exemplos mais detalhados de configurações NGINX para RTMP na página NGINX GitHub .

Você pode forçar os espectadores a se autenticarem antes de assistir a um stream com a on_playvariável, que funciona da mesma forma que on_publish. Para segurança extra, você pode remover a htmlconfiguração deste arquivo se não estiver planejando usar o NGINX como um servidor web. Certifique-se de não excluir o eventsbloco de configuração ao fazê-lo.

Configurar e usar o cliente Open Broadcaster Software (OBS)

Os streamers geralmente usam um serviço comercial de streaming baseado na Web ou um aplicativo em seu computador. Para transmitir para seu servidor RTMP, recomendamos o Open Broadcaster Software (OBS) . O OBS é um aplicativo de transmissão de código aberto gratuito que é flexível e fácil de usar. Está disponível para os sistemas operacionais mais comuns, incluindo o Ubuntu.

  1. Acesse o site do OBS e escolha o download apropriado para o seu sistema. Este software deve ser instalado em seu computador e não no servidor de streaming RTMP.
  2. Abra o aplicativo e procure o Controlsmenu na parte inferior direita da janela do aplicativo. Clique no botão Configurações .A seção de controles do OBS
  3. Quando a janela Configurações aparecer, clique em Stream no painel esquerdo e insira as seguintes informações sobre seu stream:
    • ServiceCustom
    • Serverrtmp://<yourserverIP>/<RTMP_application>.
      • Substitua yourserverIPpelo endereço IP real do seu servidor de streaming.
      • Substitua RTMP_applicationpelo nome que você escolheu para seu aplicativo no bloco de configuração RTMP. No exemplo anterior, usamos o nome livestream.
    • Stream Key<your_stream_name?pwd=yourpassword>.
      • your_stream_namepode ser qualquer nome que você queira para identificar o stream.
      • yourpasswordé a senha que você configurou em /etc/nginx/sites-enabled/default.
    • Clique em OK .
    Configurações de stream para OBS
  4. Para iniciar a transmissão, clique no botão Iniciar transmissão no canto inferior direito do aplicativo na Controlsseção.Botão Iniciar Streaming para OBSObservaçãoUma maneira rápida de testar seu fluxo é com uma mensagem de texto de rolagem. Clique no botão +sources no menu para criar um objeto de texto. Quando você tiver criado o objeto, clique com o botão direito do mouse na fonte e selecione o filtro para aplicar um efeito de rolagem. Consulte o Wiki do OBS para obter mais informações.
  5. Se você estiver gravando seus fluxos, poderá confirmar facilmente se o servidor está aceitando a entrada transmitida ou não. Navegue até o record_pathdiretório (da sua configuração RTMP) e liste seu conteúdo com o lscomando. Se você vir um novo arquivo, o servidor de streaming está recebendo e salvando seu stream corretamente. cd /var/www/html/streams ls ObservaçãoA transmissão em uma taxa muito alta pode fazer com que o OBS se desconecte do servidor. Se sua conexão for rejeitada, clique em Configurações e selecione Saída . Defina o Video Bitratepara um valor mais baixo. O OBS fornece algumas dicas úteis de depuração na página do GitHub do OBS .

Ver e testar o stream

Agora você está pronto para se conectar e visualizar seu fluxo em um reprodutor multimídia. Recomendamos o VLC Video Player de código aberto porque é simples, gratuito, tem bom desempenho e roda em todas as plataformas. Estas instruções e as capturas de tela associadas são para um desktop Apple, mas o processo é semelhante para outros sistemas operacionais.

  1. Navegue até o site VideoLAN e baixe o software VLC para seu sistema operacional.
  2. Clique no menu Arquivo e selecione Abrir rede .Opção de rede aberta para VLC
  3. Isso exibe a caixa de diálogo “Open Source”. No URLcampo, insira as informações do seu stream no formato rtmp://<yourserverIP>/<RTMPApplication>/<your_stream_name>. Substitua yourserverIPpelo IP real do seu servidor de streaming e RTMPApplicationpelo nome do aplicativo de stream do arquivo de configuração do servidor. O valor de your_stream_namedeve corresponder ao nome do stream do OBS. Por fim, marque a Stream outputcaixa.Configuração de rede para VLC

ObservaçãoAlém do básico, o VLC pode ficar complicado. Se você tiver problemas, consulte a 

página de suporte do VideoLAN .

Configurar e testar multitransmissão

O RTMP é particularmente uma boa opção para streaming para vários sites ao mesmo tempo, pois economiza largura de banda com eficiência. Em vez de ter que transmitir um fluxo separado para cada canal, você pode enviar um fluxo para o servidor de fluxo RTMP. O servidor então lida com a redistribuição de fluxos, enviando uma cópia para cada terminal. Você pode habilitar o multi-streaming em sua configuração RTMP com uma pushentrada para cada destino. Para configurar o multi-streaming, siga o procedimento abaixo:

  1. Abra o /etc/nginx/nginx.confarquivo para edição. sudo vi /etc/nginx/nginx.conf
  2. Localize as informações de ingestão do serviço para o qual você deseja transmitir. Por exemplo, o Twitch fornece uma lista de todos os seus pontos de ingestão . Encontre o ponto de ingestão mais próximo de você e anote o URL de ingestão. Para o YouTube, você pode encontrar o URL do servidor de ingestão na sua página do YouTube Studio. Consulte a documentação do seu serviço de streaming para obter informações mais detalhadas.
  3. Adicione uma notificação por push para cada serviço ao bloco de aplicativo de fluxo na configuração RTMP. A configuração deve estar no formato push rtmp://<streaming_service_ingest_url>/<stream_key>;. O streaming_service_ingest_urlé o URL de ingestão que você localizou na etapa anterior. Cada serviço de streaming oferece uma maneira de você determinar sua privacidade stream_key. No Twitch, você pode encontrar sua chave de transmissão em seu painel, enquanto no YouTube, ela está no mesmo local em que você encontrou o URL do servidor de ingestão. Este exemplo ilustra a configuração para enviar para o servidor de ingestão de Londres do Twitch.Arquivo: /etc/nginx/nginx.conf 1 2 3 4 5 6 7 8 9 10 11 ... rtmp { server { ... application livestream { ... push rtmp://lhr04.contribute.live-video.net/app/<stream_key>; } } }
  4. Adicione pushentradas adicionais para os outros sites para os quais você está transmitindo.
  5. Reinicie o servidor para aplicar suas alterações. systemctl restart nginx.service
  6. Inicie sua transmissão novamente. Agora você pode visualizá-lo no site de streaming de sua escolha.
  7. (Opcional) Para maior segurança e controle mais granular, você pode criar um aplicativo para cada serviço de streaming e chamá-lo do aplicativo principal. Essa técnica oferece a capacidade de substituir as livestreamconfigurações e desativar a gravação de alguns serviços. Edite cada pushnotificação em seu livestreamaplicativo para enviar para o novo aplicativo.No exemplo acima:
    • Altere a configuração push do Twitch para push rtmp://localhost/twitch;.
    • Adicione a configuração para application twitchcomo mostrado abaixo.
    • Reinicie o servidor e seu stream assim que terminar para verificar se as alterações estão corretas.Arquivo: /etc/nginx/nginx.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... rtmp { server { ... application livestream { ... push rtmp://localhost/twitch; } application twitch { live on; record off; allow publish 127.0.0.1; deny publish all; push rtmp://lhr04.contribute.live-video.net/app/<stream_key>; } } }

Observação

Os servidores de ingestão podem ser alterados sem aviso prévio. Recomendamos que você revise as especificações do seu serviço de streaming regularmente. Alguns serviços de streaming, como o Facebook Live, exigem que você transcodifique seu stream em seu formato específico. Você pode fazer isso usando a biblioteca FFmpeg .

Consulte a página NGINX GitHub para obter uma configuração de exemplo.

Mais Informações

Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.

Codificador RTMP

banner image featured

Para muitas emissoras B2C, os codificadores de software são suficientes. No entanto, como organismo de radiodifusão profissional, é importante considerar a utilização de RTMP. RTMP é um protocolo de transmissão de vídeo que torna possível a transmissão ao vivo de alta qualidade.

Hoje vamos mergulhar num dos tópicos mais complicados da transmissão em directo: A codificação RTMP.

Vamos discutir como a transcodificação de vídeo se encaixa num fluxo de trabalho de transmissão de vídeo ao vivo e como configurar um codificador RTMP e ligá-lo a uma plataforma de transmissão de vídeo ao vivo. Vamos também rever alguns dos principais protocolos de transmissão de vídeo e o software de codificação RTMP mais popular no mercado.

Este post foi actualizado para reflectir a informação mais precisa e actualizada sobre as novas funcionalidades nas últimas versões de codificadores habilitados para RTMP lançadas a partir de 2021.

Tabela de Conteúdos

  • O que é um Codificador?
  • Hardware vs. Codificadores de Software
  • O que é a Transmissão RTMP?
  • O que é o RTMP Ingest e Porque É Importante?
  • Protocolos Comuns de Transmissão de Vídeo
  • Configurando o Seu Codificador RTMP em 6 Passos
  • Codificadores RTMP Populares para Transmissão de Vídeo ao Vivo
  • Conclusão

O que é um Codificador?

RTMP-enabled encoder
Um codificador converte tipos de ficheiros de vídeo para os tornar mais fáceis de transmitir.

Um codificador de vídeo ao vivo é uma ferramenta que converte um vídeo do formato RAW para o formato digital. Por um lado, as imagens de vídeo de uma câmara são alimentadas para o codificador. Esta filmagem é convertida para um formato diferente em tempo real. O objectivo da conversão é preparar o vídeo a ser transmitido através da Internet.

Pode utilizar um codificador de hardware ou um codificador de software. Cada um tem vantagens e desvantagens.

Codificadores de Hardware vs. Software

Existem dois tipos de codificadores: hardware e software. Um codificador de software é um programa que funciona com a sua plataforma de vídeo online. Este usa o poder de processamento do seu computador para codificar e entregar o vídeo.

Um codificador de hardware é um dispositivo dedicado. Eles vêm em várias formas. Alguns são pequenos e adequados para montagem numa câmara. Outros são montados em mochilas ou em prateleiras para utilização em estúdios ou veículos de radiodifusão.

Os codificadores de hardware são tipicamente considerados superiores aos seus equivalentes de software porque produzem vídeo de maior qualidade. Contudo, os codificadores de hardware requerem tipicamente um investimento muito maior do que os codificadores de software.

Dependendo do tipo de emissão que está a fazer, investimento no hardware pode valer a pena. Uma vez que existe software de codificação disponível por menos de 100 dólares, vale a pena testá-lo se não tiver a certeza se está ou não pronto para fazer o investimento.

O que é a Transmissão de Vídeo RTMP?

RTMP streaming
O RTMP torna possível o streaming ao vivo, e o seu papel principal é fornecer conteúdo de um codificador para um anfitrião de vídeo online.

A transmissão de vídeo RTMP é um método de transmissão de vídeo diferente dos seus predecessores no sentido em que mantém um contacto constante entre o leitor de vídeo RTMP e o servidor RTMP. Este contacto constante torna uma transmissão ao vivo RTMP muito robusta e fiável. Também é possível streaming ao vivo em dispositivos móveis através da ingestão de RTMP para HLS.

Durante muitos anos, o Flash Player e o RTMP trabalharam em conjunto para produzir transmissões ao vivo com latência ultra baixa.

Muitos consideram a transmissão RTMP desactualizada, uma vez que estava tão estreitamente interligada com a tecnologia do Flash Player, que hoje em dia está completamente morta em termos de transmissão OTT. No entanto, a tecnologia de transmissão de vídeo ao vivo em RTMP sobrevive através de codificadores habilitados para RTMP.

O que é o RTMP Ingest e Porque É Importante?

RTMP ingest é a tecnologia que transmite os ficheiros de vídeo do codificador para a plataforma de vídeo online. RTMP ingest requer o uso de um codificador compatível, mas felizmente, a maioria dos codificadores de topo no mercado utiliza esta tecnologia.

RTMP ingest envolve três fases: o aperto de mão, a ligação, e a transmissão.

Este processo é altamente técnico, e os emissores que utilizam uma plataforma de vídeo online geralmente não precisam de se preocupar com o que se passa nos bastidores. No entanto, compreender como funciona o RTMP ingest pode ajudá-lo a compreender a importância da escolha de um codificador capaz.

Protocolos Comuns de Transmissão de Vídeo

Agora que tem uma melhor ideia da finalidade dos codificadores de transmissão de vídeo RTMP, vamos fazer uma rápida comparação dos protocolos de transmissão de vídeo mais comuns.

Protocolo de Transmissão RTMP

A maioria dos codificadores utiliza o formato RTMP stream. RTMP significa “Real-Time Messaging Protocol” (Protocolo de Mensagens em Tempo Real). RTMP streaming é um método concebido para a transmissão ao vivo. Não é um codec, mas um protocolo RTMP usa normalmente o codec H.264. Simplificando, o objectivo de um codificador de transmissão ao vivo é codificar os fluxos de vídeo em RTMP ou outro protocolo de transmissão ao vivo e enviá-los para um servidor de transmissão RTMP.

O protocolo RTMP já não é comummente utilizado para fazer chegar os streams aos espectadores. Na maioria das vezes, é preferível uma opção moderna como o protocolo de streaming HLS. Uma vez que RTMP ainda é o padrão para entregar streams em plataformas de vídeo online, os dois trabalham em conjunto para tornar possível a magia de transmissão de vídeo ao vivo.

Para colocar as coisas em perspectiva, o seu vídeo segue este caminho:

  1. Gravado por uma câmara IP com RTMP
  2. Alimentado para codificador RTMP e preparado para entrega usando o protocolo de mensagens em Tempo Real 
  3. Enviado para a sua plataforma de vídeo online
  4. Preparado para chegar aos telespectadores usando o protocolo HLS
  5. Enviado aos telespectadores

Este caminho é percorrido quase instantaneamente. RTMP e HLS ‘confiam’ um no outro para garantir que a sua transmissão ao vivo chegue ao seu público.

Protocolo HLS Streaming

HLS significa “HTTP Live Streaming“. É um protocolo de streaming que foi originalmente concebido e utilizado pela Apple. A HLS é de facto responsável pela eliminação progressiva do Quicktime.

A transmissão HLS funciona cortando vídeos em clipes mais pequenos para facilitar a sua transmissão através da Internet.

Embora elogiada pela sua compatibilidade, a HLS tem cerca de 15-30 segundos de latência.

Protocolo de Transmissão RTSP

RTSP Streaming Protocol
RTSP é um protocolo de transmissão ao vivo que utiliza uma ligação servidor-a-cliente para transmitir ficheiros de vídeo para uma plataforma de vídeo.

RTSP, também conhecido como Real-Time Streaming Protocol, é um protocolo menos conhecido para transmissão de vídeo online.

Conhecido como protocolo de controlo de rede, este protocolo foi concebido para controlar os servidores de transmissão utilizados em sistemas de entretenimento e comunicações. Os servidores RTSP situam-se entre a transmissão ao vivo e o espectador, emitindo comandos “play,” “pause” e “record”.

Quando o RTSP controla a ligação servidor-a-cliente, são utilizados transmissões de vídeo a pedido; quando controla a ligação cliente-servidor, o RTSP utiliza transmissões de voz.

RTMP vs. RTSP

RTMP e RTSP são ambos protocolos de streaming, o que significa que são conjuntos de regras que regem a forma como os dados viajam de um sistema de comunicação para outro. Se os dados de vídeo que está a tentar enviar aos seus telespectadores são um carro, então o protocolo de streaming são as estradas que o carro percorre para ir de um lugar para outro.

A escolha entre os protocolos de streaming RTMP vs RTSP depende muito das suas necessidades comerciais individuais e de quantos passos extra está disposto a dar para tornar o seu conteúdo disponível no seu website.

RTMP vs HLS

Como mencionámos, RTMP e HLS trabalham em conjunto para dar vida às transmissões. Têm funções complementares.

RTMP transmite o vídeo a partir do codificador para a plataforma de vídeo online.

A HLS transmite o vídeo da plataforma de vídeo online para os dispositivos dos espectadores.

Configuração do Seu Codificador RTMP em 6 Passos

A fim de se preparar para uma transmissão de vídeo tranquila, tem de se certificar de que todas as suas definições RTMP estão devidamente configuradas. 

Aqui está um tutorial de 6 passos para configurar o seu codificador habilitado para RTMP.

1. Ligue as Suas Fontes de Vídeo

rtmp encoder sources
Setting up your video capturing equipment is an important step in broadcasting.

A instalação do seu equipamento de captura de vídeo é um passo importante na transmissão.

O primeiro passo é ligar as suas fontes de vídeo. O método que utiliza para o fazer difere dependendo se está a utilizar hardware de codificador RTMP ou um codificador de software.

Se estiver a usar hardware de codificador RTMP, o método é simples. Geralmente, os codificadores de hardware têm entradas de cabo dedicadas para câmaras de vídeo. Estas podem incluir entradas SDI, bem como HDMI. Além disso, alguns codificadores suportam câmaras através de wifi. Geralmente, estes sistemas são plug-and-play.

O método de ligação de câmaras a codificadores de software pode ser um pouco mais complexo. Geralmente, isto envolve a instalação de um “cartão de captura” num computador de secretária. Os computadores portáteis e outros dispositivos podem utilizar cartões de captura externos que muitas vezes são ligados via USB.

Uma vez que a sua câmara esteja fisicamente ligada ao codificador, deve ser auto-detectada. Pode seleccioná-la a partir de um menu suspenso de “entradas”.

2. Criar um Novo Canal Vivo e Ligar o Seu OVP

O passo seguinte é a criação de um novo canal ao vivo. Isto ocorre de facto através da sua plataforma de vídeo online. 

Para completar este passo com Dacast, siga estes passos:

  1. Entre na sua conta.
  2. Clique em “Canais ao vivo” na barra lateral esquerda.
  3. Clique no botão laranja “Criar”, no canto superior direito.
  4. Introduza um título para o seu novo canal ao vivo, depois clique em “Adicionar novo”. 
  5. Clique no separador “Configuração de Codificador” na região central superior do ecrã.
  6. Este separador mostra três passos simples de configuração. O primeiro passo envolve a selecção de um ponto de publicação (opcional) e a selecção de uma taxa de bits, resolução, e relação de aspecto (também opcional). As definições que seleccionar no seu codificador irão sobrepor-se a estas definições.
  7. O segundo passo permite-lhe seleccionar um codificador. Seleccione a opção que corresponde ao codificador que está a usar, ou seleccione “outro codificador RTMP”.
  8. Finalmente, no lado direito da janela, aparecerá uma caixa de diálogo com um URL da transmissão, um login, e uma palavra-passe. Deixe esta janela aberta.

Após a criação do seu novo canal ao vivo, terá de ligar o seu codificador ao Dacast. Isto envolve a navegação pelas suas definições de codificador, normalmente etiquetadas algo como “Definições de Emissão” ou “Output”. Introduza aqui o URL, nome de utilizador e palavra-passe da sua transmissão Dacast. O seu codificador está agora ligado à sua plataforma de vídeo online.

3. Seleccione Opções de Codificação de Vídeo e Áudio

O passo seguinte é seleccionar as suas definições de vídeo e áudio. Primeiro, seleccione uma resolução, tal como 1920 x 1080 (full HD) ou 720 x 480 (definição padrão). Nesta etapa, seleccionará também um bitrate e um codec. É mais comum utilizar compressão de vídeo H.264, ou codificação de vídeo avançada (AVC) para vídeo, e AAC para áudio.

Para mais informações sobre como configurar o seu codificador e escolher as melhores definições, consulte o nosso guia. Para saltar à frente e aceder às definições de configuração do codificador ao vivo, consulte as nossas definições recomendadas de codificador ao vivo.

4. Obtenha um Código Embed

Neste momento, recomendamos-lhe que realize um breve teste. Uma transmissão de teste começa com a incorporação de um leitor de vídeo no seu website. Uma vez que se trata apenas de um teste, poderá desejar utilizar uma página web privada.

O método exacto para incorporar vídeo em directo no seu sítio web depende da plataforma de vídeo que está a utilizar. Se estiver a utilizar o Dacast, fornecemos códigos de incorporação simples que podem ser colados em qualquer website para exibir o seu vídeo.

5. Fazer uma Transmissão Teste

Agora, está pronto para iniciar uma transmissão de teste. Dirija-se para o back office do Dacast e carregue no botão para ligar o seu canal ao vivo. Liguem as vossas câmaras e comecem a gravar. Uma vez que isto é um teste, não importa o que está a transmitir. Comece a sua transmissão ao vivo a partir do codificador com RTMP que está a utilizar para transmitir.

Visite a página web em que incorporou o seu leitor de vídeo e veja como a transmissão está a funcionar. Teste-o tanto com um computador de secretária como com um dispositivo móvel.

Se estiver a ter problemas aqui, terá de resolver alguns problemas de transmissão ao vivo. A resolução de problemas pode ser frustrante, por isso tente ser o mais sistemático possível. Verifique todas as ligações no sistema. Certifique-se de que os cabos estão ligados e que as definições estão correctas. Se precisar de mais ajuda, considere contactar o apoio técnico da Dacast.

6. Iniciar a Transmissão de Vídeo

Agora configurou totalmente o seu codificador com RTMP e está pronto para iniciar a transmissão em directo. Sinta-se livre para copiar o seu leitor de vídeo para qualquer página web ou site em que planeie fazer streaming. 

Está agora pronto para iniciar a sua transmissão ao vivo.

Codificadores RTMP Populares para Transmissão de Vídeo ao Vivo

Vamos rever alguns dos codificadores RTMP mais populares no mercado. Se estiver no mercado para um codificador RTMP para transmissão em directo, esta avaria pode ajudá-lo a reduzir as suas opções e assim não terá de fazer compras.

1. OBS Studio

OBS RTMP
OBS Studio é um software codificador RTMP gratuito e de código aberto para gravação de vídeo e transmissão ao vivo.

OBS Studio, anteriormente conhecido como Open Broadcaster Studio, é uma plataforma de código-fonte aberto com capacidades de codificação. Este é um codificador de software e o nosso artigo baseia-se na última versão do clássico OBS Studio Version 27.1.3 lançada a de 2021 para download gratuito. Este software profissional de transmissão e transmissão de vídeo está disponível tanto para sistemas operativos MacOS como Windows.

Dacast estabeleceu uma parceria com OBS Studio para criar um software personalizado de transmissão ao vivo no OBS Studio que se integra perfeitamente com a plataforma Dacast.

Funcionalidade Básica:

OBS Studio oferece muitas características excelentes para novas emissoras que ainda estão a apanhar o jeito da transmissão em directo. O software tem um conjunto de configurações específicas de OBS e requisitos de sistema para garantir a melhor experiência de transmissão ao vivo.

Características Principais:

OBS Studio vem com uma variedade de ferramentas de gravação e codificação, incluindo mistura de áudio e vídeo, múltiplas opções de integração, e uma interface fácil de usar. Outras características chave incluem:

  • Funcionalidade de transmissão e gravação em directo HLS
  • Mistura de áudio e vídeo, filtros e transições
  • Apoio a hotkeys
  • Chroma key / suporte de ecrã verde
  • As cenas permitem preparar antecipadamente sobreposições para uma mudança rápida
  • Apoio a uma vasta gama de fontes de vídeo, áudio e imagem, assim como capturas de ecrã
  • Expansível via plugins para adicionar funcionalidade NDI, controlo remoto via WebSockets, comutação avançada de cena, e mais
  • Uma desvantagem notável é que o OBS Studio não oferece transmissão multi-bitrate
  • Wiki detalhado e fórum de utilizadores altamente activo para apoio/ajuda. Muitos tutoriais do YouTube também estão disponíveis.

Prós: 

  • Grátis de usar
  • Funciona com a maioria dos OVPs
  • Funciona com Windows 8, 8.1, e 10; macOS 10.12+; assim como com Linux
  • É de fonte aberta para desenvolvimento contínuo e melhorias de crowdsourced
  • Óptimo para principiantes

Contras:

  • Falta de orientação e apoio detalhados
  • Compatibilidade muito básica com macOS
  • Muito pesado para a CPU e memória

Preços:

OBS Studio é de uso livre para todos e tem uma integração com o Dacast.

Melhor Uso:

OBS Studio é melhor utilizado como um software de codificação juntamente com uma plataforma de vídeo profissional online.

2. Wirecast

Wirecast software de transmissão ao vivo
O Wirecast é uma ferramenta de produção de transmissão de vídeo ao vivo com capacidades de codificação RTMP.

Wirecast é uma ferramenta de transmissão de vídeo ao vivo com capacidades de codificação. É propriedade e operado pela Telestream, que existe desde 2004, mas as suas ferramentas de produção de vídeo existem desde 1998. A equipa da Telestream lançou recentemente a última versão da Wirecast a 18 de Maio de 2021. 14.2.1 é a mais recente versão completa desta última actualização.

Funcionalidades Básicas:

Wirecast é um alternador de vídeo de software que controla a alternância em tempo real entre várias fontes de vídeo.

É utilizado para a codificação e mistura de emissões profissionais.

Funcionalidades Principais:

  • Fontes de entrada de câmaras, microfones, webcams, câmaras IP, cartões de captura, e desktops
  • Ideal para desportos: repetição instantânea, placares, relógios e temporizadores
  • A aplicação gratuita da câmara sem fios permite-lhe utilizar qualquer dispositivo iOS como fonte de vídeo
  • Apoio NDI
  • Ferramenta gráfica e de titulação
  • Misturador de áudio e até 8 pistas de áudio
  • Ferramenta de videoconferência incorporada
  • Transmitir para mais do que um destino simultaneamente
  • Suporte para controladores de hardware MIDI
  • Fluxo e registo em simultâneo, com opções de re-stream e legendas em directo
  • Transmissão multi-serviços
  • Funciona tanto em Windows como em macOS
  • Gráficos 3D
  • Capacidades de Simulcasting
  • As novas características da versão 14.1 estão incluídas:
    • Nova Chave Luma e Chave de Cor
    • Definições Chave de Precisão Chroma
    • Maior Capacidade de Tamanho e Escala de Fontes, bem como Ligações de Fontes
    • Biblioteca de Meios de Comunicação de Stock Gratuito
    • Caixas e Camadas de Tiro Melhoradas
    • Actualizações do Facebook Streaming
    • Controlos da câmara NDI PTZ (Apenas na versão Pro)
  • Actualização: as novíssimas características da Versão 14.2.1 incluem:
    • Suporte Universal Apple: Agora o Wirecast pode ser executado nativamente em M1 Macs.
    • Placeholders e Templates de Imagem: Novos e melhorados Templates de Imagens permitem-lhe adicionar facilmente um esquema de fotografia pré-configurado ao seu documento.
    • Saída de Exibição Secundária (Apenas Pro): Adiciona um novo tipo de saída que envia o feed do programa ao vivo para um ecrã secundário sem a necessidade de hardware específico.
    • Lock Shot Icon: Tira um instantâneo da imagem em directo e guarda-o como imagem de miniatura de um ícone.
    • Indicador ISO do disparo: Verá um indicador de contagem de imagens nas imagens que estão actualmente a ser gravadas ISO.
    • Controlo PTZ das câmaras Sony da série X: Adicionado perfil de protocolo VISCA/UDP da Série X da Sony no controlador PTZ.
    • Suporte de Auto-Legendagem Live LinkedIn: Torne as suas transmissões LinkedIn Live mais acessíveis adicionando legendas auto-geradas a qualquer vídeo LinkedIn Live.
    • Selector de ligações de entrada para dispositivos Blackmagic: Esta nova opção permite-lhe seleccionar o tipo de ligação de entrada de vídeo/áudio (HDMI/SDI) utilizado para as fontes de entrada Blackmagic Designs.
    • Áudio na fonte da página Web: Adicionada a capacidade de ajustar áudio de uma fonte de Página Web, bem como de o transmitir como parte da sua emissão.

Prós: 

  • Com funções avançadas
  • Compatível tanto com Mac como com Windows
  • Grande apoio ao cliente
  • Actualizações regulares do sistema

Contras:

  • Preço elevado
  • Ligeiramente complicado

Preços:

O Wirecast tem dois planos de codificação, e o software vem em duas versões:

  1. Wirecast Studio para produção e transmissão ao vivo melhorada: o preço é de $599
  2. Wirecast Pro para produção avançada ao vivo e streaming: o preço é de $799

Isto é um pouco caro para software de codificação, mas está orientado para emissores avançados. Oferecem um teste gratuito de 30 dias, se quiser experimentar antes de comprar.

Estão disponíveis actualizações adicionais de Wirecast, incluindo:

  • suporte de Wirecast vem em 2 níveis: Suporte interno: $99/ano; Suporte Premium: $299/ano
  • Suporte de entrada de câmara HDV Firewire (os utilizadores de estúdio só precisam de comprar esta funcionalidade; a versão Pro inclui-a): $99
  • NewBlueFX Titler Live (para criação de gráficos e títulos animados): $245 versão Standard, $445 versão Advance, $945 versão Ultimate
  • Virtualsetworks (conjuntos virtuais pré-fabricados para uso em ecrã verde): $329

Melhor Uso:

O Wirecast Studio é mais adequado para emissoras avançadas e profissionais que pretendem operar transmissões em directo elaboradas.

3. VidBlasterX

vidblasterx software de transmissão ao vivo
VidBlasterX oferece às emissoras profissionais soluções de software de produção, codificação e transmissão de vídeo ao vivo.

VidBlasterX é um codificador de software de transmissão ao vivo que se concentra na produção de vídeo. VidblasterX já não é gratuito e depende de uma instalação local baseada em assinatura para distribuir o seu software. A última edição é a X, ou a 5ª versão da solução, e tem 3 edições: Home, Studio, e Broadcast.  Cada edição vem com mais características do que a sua versão de nível inferior, e a maior diferença entre elas está no número de módulos permitidos num único perfil: Home suporta até 7 módulos, Studio suporta até 25, e a edição de Broadcast de nível superior suporta até 50.

Funcionalidades Básicas:

Oferecem 3 pacotes: VidblasterX Home, VidBlasterX Studio, e VidBlasterX Broadcast. A principal diferença entre cada versão é o número de módulos que cada um suporta. Cada módulo sucessivo adiciona também características avançadas adicionais que os emissores profissionais apreciarão.

VidBlasterX Home é um produto básico. Suporta até 7 módulos. VidBlasterX Studio tem várias características para a produção de vídeos em estúdio (daí o nome) e permite uma maior versatilidade de vídeo. A versão Studio suporta produção com qualidade de televisão em HD e ecrã inteiro, bem como apoio comunitário. VidBlasterX Broadcast incorpora todas as características do VidBlaster Studio, acrescenta mais capacidade de módulos, e é recomendado para estúdios de emissão profissionais. Com a Broadcast, recebe apoio directo por correio electrónico do programador.

Características Principais:

  • Interface de utilizador modular; tudo é personalizável
  • Inclui funcionalidades de macro e de scripting para automatizar ou acções chave-na-mão
  • Suporta sobreposições e terços inferiores
  • Suporte Chroma key
  • Transmissão em directo e gravação até 4K de resolução
  • Compatível com plataformas de redes sociais, bem como com a maioria dos OVPs, incluindo Dacast com integração directa
  • Misturador de áudio
  • Apoio multiview

Prós: 

  • Versão gratuita
  • Planos para cada orçamento
  • Suporta múltiplas transmissões
  • Configuração fácil
  • Mistura de áudio e edição de vídeo

Contras:

  • Branding na versão gratuita
  • Só funciona no sistema operativo Windows

Preços:

VidBlasterX está disponível em 3 versões. Cada uma das seguintes opções tem o seu preço com um modelo de assinatura anual:

  1. A versão Home ($9/ano) suporta 7 módulos.
  2. A versão Studio ($99/ano) suporta 25 módulos.
  3. A versão de Broadcast ($999/ano) suporta 100 módulos. Esta versão também suporta vários módulos de gravador e streamer num único perfil.

Primeiro, a diferença entre as versões é o número de módulos simultaneamente activos que se pode ter. As edições Home suportam até sete módulos, o suficiente para transmissão ao vivo básico. A edição de Estúdio suporta até 25 módulos, e a edição de Broadcast suporta 50 módulos. Estes limites superiores permitem aos utilizadores profissionais com múltiplos monitores configurar e supervisionar fluxos de trabalho complexos.

Além disso, a edição Broadcast também suporta streaming UDP, múltiplas fontes de streaming, e módulos gravadores num único perfil, e inclui apoio prioritário.

Melhor Uso:

VidBlaster tem uma vasta gama de melhores utilizações, uma vez que tem uma enorme variedade de planos, mas as ferramentas de codificação estão no centro. Funciona bem com OVPs profissionais como o Dacast. Aqui está um tutorial sobre como fazer streaming no Dacast com VidBlasterX.

  • Interface de utilizador modular; tudo é personalizável
  • Inclui funcionalidades de macro e de scripting para automatizar ou acções chave-na-mão
  • Suporta sobreposições e terços inferiores
  • Suporte Chroma key
  • Transmissão em directo e gravação até 4K de resolução
  • Compatível com plataformas de redes sociais, bem como com a maioria dos OVPs, incluindo Dacast com integração directa
  • Misturador de áudio
  • Apoio multiview

Prós: 

  • Versão gratuita
  • Planos para cada orçamento
  • Suporta múltiplas transmissões
  • Configuração fácil
  • Mistura de áudio e edição de vídeo

Contras:

  • Branding na versão gratuita
  • Só funciona no sistema operativo Windows

Preços:

VidBlasterX está disponível em 3 versões. Cada uma das seguintes opções tem o seu preço com um modelo de assinatura anual:

  1. A versão Home ($9/ano) suporta 7 módulos.
  2. A versão Studio ($99/ano) suporta 25 módulos.
  3. A versão de Broadcast ($999/ano) suporta 100 módulos. Esta versão também suporta vários módulos de gravador e streamer num único perfil.

Primeiro, a diferença entre as versões é o número de módulos simultaneamente activos que se pode ter. As edições Home suportam até sete módulos, o suficiente para transmissão ao vivo básico. A edição de Estúdio suporta até 25 módulos, e a edição de Broadcast suporta 50 módulos. Estes limites superiores permitem aos utilizadores profissionais com múltiplos monitores configurar e supervisionar fluxos de trabalho complexos.

Além disso, a edição Broadcast também suporta streaming UDP, múltiplas fontes de streaming, e módulos gravadores num único perfil, e inclui apoio prioritário.

Melhor Uso:

VidBlaster tem uma vasta gama de melhores utilizações, uma vez que tem uma enorme variedade de planos, mas as ferramentas de codificação estão no centro. Funciona bem com OVPs profissionais como o Dacast. Aqui está um tutorial sobre como fazer streaming no Dacast com VidBlasterX.

4. vMix

vMix software de transmissão ao vivo
VidBlasterX oferece às emissoras profissionais soluções de software de produção, codificação e transmissão de vídeo ao vivo.

vMix é uma ferramenta de software de streaming com capacidades de codificação que foi concebida para sistemas operativos Windows. vMix foi desenvolvido pelo StudioCoast. A última versão do software específico para Windows é 24.0.0.63 e inclui uma actualização para um teste gratuito de 60 dias do vMix PRO para download. Enquanto o vMix é apenas para Windows, o software pode ser instalado num Mac via Boot Camp se a máquina tiver uma partição Windows.

Funcionalidades Básicas:

vMix oferece uma série de planos de ferramentas de streaming de vídeo. Oferecem uma vasta gama de funcionalidades a diferentes preços, pelo que existem opções para emissoras de todos os níveis de especialização. vMix oferece poderosos serviços de codificação.

Funcionalidades Principais: 

  • Suporte para uma vasta gama de entradas, incluindo webcams, câmaras, cartões de captura, DVDs, placas de som, listas de reprodução, fotografias, apresentações PPT, e mais
  • Apoio NDI
  • Chroma key e conjuntos virtuais
  • Ferramenta de titulação incorporada que suporta animação via XAML
  • Integração de plataformas de transmissão ao vivo (inclusive com a plataforma de streaming Dacast)
  • O vMix Social permite-lhe exibir conteúdos de plataformas populares de meios de comunicação social
  • Reprodução instantânea, câmara lenta, e painéis de pontuação
  • Vídeos de formação disponíveis
  • “sistemas de referência” vMix facilitam a dificuldade em torno da construção de um sistema personalizado de produção ao vivo

Prós: 

  • Muitas características poderosas
  • Apoio ao cliente de confiança
  • Plataforma profissional
  • Velocidade acrescida para codecs especializados

Contras:

  • Preço elevado para a maioria dos planos inclusivos
  • Só funciona com Windows 
  • Um pouco complicado de usar

Preços:

O vMix está disponível apenas para computadores Windows, e vem em 5 edições diferentes de licenças vitalícias. Cada compra nunca expira, e todas as edições incluem actualizações gratuitas durante 1 ano. As versões são:

  • Básico (gratuito), que suporta 4 (até 2 câmaras/NDI) entradas e vídeo até 768 x 576 resolução
  • HD básico ($60), que suporta 4 entradas (até 3 câmaras/NDI) e vídeo até à resolução Full HD 1920×1080
  • HD ($350), que suporta 1.000 entradas, adiciona funcionalidade de chamada vMix, 4 canais sobrepostos, e suporta vídeo Full HD na resolução 1920×1080
  • 4K ($700), que suporta 1.000 entradas, vídeo de resolução 4K (4096 x 2160), controlo PTZ, 2 gravadores, reprodução instantânea, 4 saídas SRT, e muito mais
  • Pro ($1200), que também suporta 1.000 entradas, inclui todas as funcionalidades 4K e 2 registos, mais até 8 chamadas, até 4 câmaras para repetição instantânea, e 4 saídas SRT

O seguinte é uma licença de subscrição e inclui, e é cobrado mensalmente:

  • MAX ($50/mês), que também suporta 1.000 entradas, 1.000 entradas NDI, e inclui todos os vídeos de resolução 4K (4096 x 2160), controlo PTZ, 2 gravadores, reprodução instantânea, 4 saídas SRT

Melhor Uso:

O vMix é melhor utilizado como uma ferramenta de codificação juntamente com uma plataforma de vídeo profissional online.

5. TriCaster

tricaster rtmp encoder
TriCaster é uma tecnologia inovadora orientada por software, oferecendo aos emissores ferramentas de qualidade profissional para a codificação e produção de vídeo.

TriCaster oferece hardware de codificador RTMP de alta qualidade da NewTek para emissores avançados. Tem uma vasta gama de capacidades que vão para além da codificação. Uma vez que se trata de uma solução de hardware, não existem versões ou edições de download em linha rastreáveis. Dito isto, a TriCaster tem 4 produtos principais: Mini 4K, TC410 Plus, TC1, e o porta-estandarte 2 Elite.

Funcionalidades Básicas:

As ferramentas de codificação TriCaster são concebidas para ajudar as emissoras na transmissão em directo através da codificação em tempo real.

Funcionalidades Principais:

  • Hardware dispendioso
  • Ferramentas de mistura incorporadas
  • Codificação em tempo real
  • Capacidades de gravação 

Prós: 

  • Pode processar gráficos em movimento
  • Registo para DDR

Contras:

  • Preço elevado
  • Requer ferramentas adicionais pagas para utilizar
  • Configuração complicada
  • Muito pesado (alguns dispositivos com mais de 10 kg)

Produtos Principais:

NewTek oferece vários produtos diferentes na linha TriCaster, incluindo

  • TriCaster 2 Elite: Dispositivo de codificação para emissão avançada, de qualidade televisiva
  • TriCaster 4k Mini: Codificador portátil de secretária
  • TriCaster TC410 Plus: Ferramenta de codificação para produções de tamanho médio
  • TriCaster TC1: Tudo o que as emissoras precisam para a produção de vídeo de ponta a ponta

Preços:

Os dispositivos de codificação Tricaster começam em $8.995 para o modelo base Mini 4K, $9.995 para o TC410 Plus, $14.995 para o TC1 num chassis 2RU, e $27.995 para o TriCaster 2 Elite.

Melhor Uso:

Os dispositivos de codificação do Tricaster são mais adequados para emissoras avançadas e profissionais.

6. TeraDek

teradek RTMP encoder
A tecnologia Teradek oferece soluções de vídeo e codificação e é utilizada em todo o mundo por emissoras profissionais e amadoras para capturar e partilhar conteúdos.

TeraDek é uma ferramenta de codificação física que foi construída para emissão móvel. É mais utilizado por emissoras avançadas e profissionais devido ao seu preço elevado. A sua funcionalidade e o seu design conveniente fazem com que valha a pena o seu forte investimento. Tal como o TriCaster, TeraDek é um codificador de hardware com uma variedade de produtos, mas apresenta CORE 2.0, que é uma plataforma de gestão de streaming baseada na nuvem, concebida para actualizar e suportar capacidades de transmissão ao vivo para a sua linha de produtos. O serviço funciona com tecnologia de nuvem, permitindo aos utilizadores de qualquer parte do mundo aceder à plataforma através dos produtos de hardware TeraDek.

Funcionalidades Básicas:

O hardware do codificador RTMP TeraDek foi construído para codificar em movimento. Existem 4 produtos principais: Bolt 4K, TeraDek RT, VidiU Go, e Cube. Os seus desenhos compactos e chassis portáteis permitem que as emissoras transmitam para além do estúdio. 

Características Principais:

  • Suficientemente pequeno para filmar e codificar em movimento
  • Apoio e actualização de produtos através de CORE
  • Qualidade de vídeo fenomenal
  • Um pouco caro

Prós: 

  • Construído para transmissão ao vivo
  • Qualidade de vídeo topo de gama
  • Chassis portátil
  • Desenho compacto 

Contras:

  • Preço muito elevado

Produtos Principais:

A Teradek oferece uma vasta gama de dispositivos de codificação para radiodifusão profissional. Alguns dos seus produtos principais incluem: 

  • Bolt: Uma solução compacta muito potente para vídeo em movimento de qualidade de cinema HD 4K com latência zero
  • Vidiu Go: Codificador de streaming ao vivo que pode ser utilizado para emissão em movimento
  • Bond: codificador de mochila para emissão em movimento
  • Prism: dispositivo de codificação e descodificação 4K
  • Cube: Concebido para suportar vídeo IP
  • Ranger: Codificador para ligação sem fios ao OVP a partir de equipamento de captura de grau de televisão

Preços:

As ferramentas de codificação Teradek começam em $1,490 para Vidiu Go, $1,790 para CUBE, $2,490 para o Bolt 4K LT, e $3,499.95 para a versão CTRL.3 do TeraDek RT.

Melhor Uso:

O TeraDek é mais adequado para emissoras avançadas e profissionais.

7. Niagara Video

Niagara video RTMP encoder for live streaming
O Niagara Video oferece uma solução de montagem adequada para várias organizações e inclui codificação, transcodificação, e descodificação de vídeo.

Niagara Video oferece quase 20 diferentes opções de hardware e software de codificador RTMP para emissoras de diferentes níveis de especialização. O Niagara Video tem servido a comunidade de radiodifusão há quase 20 anos e é considerado um “pioneiro e inovador” na sua indústria. A empresa oferece soluções tanto de hardware como de software, concentrando-se em verticais incluindo a radiodifusão desportiva, empresarial e empresarial, igrejas e casas de culto, governo, educação, e muito mais.

Funcionalidades Básicas:

As ferramentas de codificação do Niagara são concebidas para codificar e transcodificar o conteúdo de vídeo.

Características Principais:

  • Uma grande variedade de ferramentas de codificação à escolha

Prós: 

  • Muitas escolhas de codificação de hardware e software

Contras:

  • Sem transparência de preços

Produtos Principais

Os codificadores do Niagara incluem actualmente várias linhas de modelos, cada uma das quais disponível numa variedade de configurações. Cada modelo inclui também uma garantia limitada de 1 ano.

  1. O novo Niagara Série 9300 é uma unidade de montagem em rack 1U que suporta entradas HD e/ou SD SDI com até 8 pares estéreo (16 canais) de áudio incorporado. O 9300 permite a entrega de múltiplos streams simultâneos. Também inclui um SDK web para permitir personalizações e integrações. Além disso, suporta o novo software SCX Linux ou software SCX+.
  2. Os codificadores GoStream Digital e Analógico são codificadores de streaming poderosos e compactos de dois canais com unidades de estado sólido integradas. Estão disponíveis em versões SDI ou DVI-I, bem como versões que suportam Componente/Composto/S-Video e HDMI/DVI VGA. Além disso, suportam Transport Stream (UDP/RTP), Adobe Flash (RTMP), Windows Media, e o protocolo HLS da Apple.
  3. codificador GoStream B264 foi concebido para uso em aplicações de transmissão e streaming. Esta pequena unidade (3 cabe em 1 RU) apresenta 2 entradas SDI, duas saídas ASI, 4 portas Gigabit Ethernet, e uma variedade de outras opções de conectividade.
  4. Finalmente, o GoStream Mini 200 é um codificador flexível e acessível com baixo consumo de energia e suporte para formatos de vídeo comuns ao consumidor e profissional como AVC / HEVC, H.264 / H.265. O dispositivo inclui entradas para SDI, HDMI, componente, composto, DVI/VGA, e áudio desequilibrado. Adicionalmente, também tem a capacidade de gravar um ficheiro como MP4 enquanto transmite em directo.

Preços:

A Niagara tem muitos produtos, e seria melhor contactar directamente a Niagara para obter preços nos seus produtos e soluções, uma vez que os seus preços não são transparentes. Contudo, para lhe dar uma melhor ideia dos seus pontos de preço, conseguimos encontrar um preço de $1,299 para o GoStream Mini 150 colocado online.

Melhor Uso:

Uma vez que o Niagara oferece uma grande variedade de produtos e soluções, não há uma única melhor utilização. Contudo, a principal função dos seus produtos é codificar e transcodificar o conteúdo de vídeo ao vivo.

Conclusão

Há tanto para saber sobre a codificação de vídeo. Desde RTMP e HLS a dispositivos de gravação e OVPs, há realmente tantas partes móveis envolvidas na transmissão ao vivo.

A configuração de um codificador RTMP requer muitos passos, mas não tem de ser confusa ou complicada. Embora possa ser muita coisa, especialmente se for o seu primeiro streaming, o processo torna-se bastante simples com um pouco de direcção.

Felizmente, existem tantas ferramentas de codificação maravilhosas no mercado, por isso não terá problemas em encontrar uma com as características que melhor se adaptem às suas necessidades de transmissão.

Se está à procura de uma plataforma de vídeo em directo de ponta a ponta para alojar as suas transmissões ao vivo, não procure mais. Está interessado em experimentar as nossas soluções de streaming? Porque não tirar partido do nosso teste gratuito de 30 dias (não é necessário cartão de crédito). Pode testar todas as características do Dacast para ver se é bom para si!

Comecar Gratuitamente

Alguma pergunta? Informe-nos, deixando um comentário abaixo! Temos experiência com a maioria dos tipos de codificadores de streaming de vídeo ao vivo, pelo que provavelmente podemos ajudar, independentemente dos problemas que esteja a enfrentar. Para ofertas exclusivas e dicas regulares de transmissão em directo, junte-se ao nosso grupo do LinkedIn.

Obrigado pela leitura e boa transmissão!

Introdução

Existem muitos casos de uso para streaming de vídeo. Provedores de serviços como o Twitch são muito populares para lidar com os aspectos de descoberta na web e gerenciamento de comunidade do streaming, e softwares gratuitos como o OBS Studio são amplamente usados ​​para combinar sobreposições de vídeo de várias fontes de stream diferentes em tempo real. Embora essas plataformas sejam muito poderosas, em alguns casos você pode querer hospedar um fluxo que não dependa de outros provedores de serviços.

Neste tutorial, você aprenderá como configurar o servidor web Nginx para hospedar um fluxo de vídeo RTMP independente que pode ser vinculado e visualizado em diferentes aplicativos. RTMP, o Real-Time Messaging Protocol , define os fundamentos da maioria dos streamings de vídeo na Internet. Você também aprenderá a hospedar fluxos HLS e DASH que suportam plataformas mais modernas usando a mesma tecnologia.

Pré-requisitos

Para concluir este guia, você precisará de:

Este tutorial usará o nome de domínio de espaço reservado your_domain para URLs e nomes de host. Substitua isso pelo seu próprio nome de domínio ou endereço IP enquanto você trabalha no tutorial.

Etapa 1 — Instalando e configurando o Nginx-RTMP

A maioria das ferramentas de streaming modernas suporta o protocolo RTMP, que define os parâmetros básicos de um stream de vídeo na Internet. O servidor da web Nginx inclui um módulo que permite fornecer um fluxo RTMP com configuração mínima a partir de uma URL dedicada, assim como fornece acesso HTTP a páginas da web por padrão. O módulo Nginx RTMP não está incluído automaticamente no Nginx, mas no Ubuntu 20.04 e na maioria das outras distribuições Linux você pode instalá-lo como um pacote adicional.

Comece executando os seguintes comandos como um usuário não root para atualizar suas listagens de pacotes e instalar o módulo Nginx:

sudo apt update
sudo apt install libnginx-mod-rtmp

cópia de

A instalação do módulo não começará automaticamente a fornecer um fluxo. Você precisará adicionar um bloco de configuração ao arquivo de configuração do Nginx que define onde e como o fluxo estará disponível.

Usando nanoou seu editor de texto favorito, abra o arquivo de configuração principal do Nginx, /etc/nginx/nginx.conf, e adicione este bloco de configuração ao final do arquivo:

sudo nano /etc/nginx/nginx.conf

cópia de/etc/nginx/nginx.conf

. . .
rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish 127.0.0.1;
                deny publish all;

                application live {
                        live on;
                        record off;
                }
        }
}
  • listen 1935significa que o RTMP estará escutando conexões na porta 1935, que é padrão.
  • chunk_size 4096significa que o RTMP enviará dados em blocos de 4KB, o que também é padrão.
  • allow publish 127.0.0.1deny publish allsignifica que o servidor só permitirá a publicação de vídeo do mesmo servidor, para evitar que outros usuários enviem seus próprios fluxos.
  • application livedefine um bloco de aplicativo que estará disponível no /livecaminho da URL.
  • live onhabilita o modo ao vivo para que vários usuários possam se conectar ao seu stream simultaneamente, uma suposição básica de streaming de vídeo.
  • record offdesativa a funcionalidade de gravação do Nginx-RTMP, para que todos os fluxos não sejam salvos separadamente no disco por padrão.

Salve e feche o arquivo. Se estiver usando nano, pressione Ctrl+X, quando solicitado Ye Enter.

Isso fornece o início de sua configuração RTMP. Por padrão, ele escuta na porta 1935, o que significa que você precisará abrir essa porta em seu firewall. Se você configurou ufwcomo parte da configuração inicial do servidor, execute o seguinte comando.

sudo ufw allow 1935/tcp

cópia de

Agora você pode recarregar o Nginx com suas alterações:

sudo systemctl reload nginx.service

cópia de

Agora você deve ter um servidor RTMP funcionando. Na próxima seção, abordaremos o streaming de vídeo para seu servidor RTMP de fontes locais e remotas.

Passo 2 — Enviando vídeo para seu servidor RTMP

Existem várias maneiras de enviar vídeo para seu servidor RTMP. Uma opção é usar o ffmpeg, um utilitário popular de áudio e vídeo de linha de comando, para reproduzir um arquivo de vídeo diretamente em seu servidor. Se você ainda não tem um arquivo de vídeo no servidor, pode baixar um usando youtube-dl, uma ferramenta de linha de comando para capturar vídeo de plataformas de streaming como o YouTube. Para usar youtube-dl, você também precisará de uma instalação atualizada do Python em seu servidor.

Primeiro, instale o Python e seu gerenciador de pacotes, pip:

sudo apt install python3-pip

cópia de

Em seguida, use pippara instalar youtube-dl:

pip install youtube-dl

cópia de

Agora você pode usar youtube-dlpara baixar um vídeo do YouTube. Se você não tem um em mente, experimente este vídeo, apresentando a plataforma de aplicativos da DigitalOcean:

youtube-dl https://www.youtube.com/watch?v=iom_nhYQIYk

cópia de

Você verá alguma saída youtube-dlcombinando os fluxos de vídeo e áudio que está baixando de volta em um único arquivo – isso é normal.

Output[youtube] iom_nhYQIYk: Downloading webpage
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Destination: Introducing App Platform by DigitalOcean-iom_nhYQIYk.f137.mp4
[download] 100% of 32.82MiB in 08:40
[download] Destination: Introducing App Platform by DigitalOcean-iom_nhYQIYk.f251.webm
[download] 100% of 1.94MiB in 00:38
[ffmpeg] Merging formats into "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv"
Deleting original file Introducing App Platform by DigitalOcean-iom_nhYQIYk.f137.mp4 (pass -k to keep)
Deleting original file Introducing App Platform by DigitalOcean-iom_nhYQIYk.f251.webm (pass -k to keep)

Agora você deve ter um arquivo de vídeo em seu diretório atual com um título como Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv. Para transmiti-lo, você deve instalar ffmpeg:

sudo apt install ffmpeg

cópia de

E use ffmpegpara enviá-lo ao seu servidor RTMP:

ffmpeg -re -i "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://localhost/live/stream

cópia de

Este ffmpegcomando está fazendo algumas coisas para preparar o vídeo para um formato compatível com streaming. Este não é um ffmpegtutorial, então você não precisa examiná-lo muito de perto, mas você pode entender as várias opções da seguinte forma:

  • -reespecifica que a entrada será lida em sua taxa de quadros nativa.
  • -i "Introducing App Platform by DigitalOcean-iom_nhYQIYk.mkv"especifica o caminho para nosso arquivo de entrada .
  • -c:vestá definido como copy, o que significa que você está copiando o formato de vídeo obtido do YouTube nativamente.
  • -c:atem outros parâmetros, a saber aac -ar 44100 -ac 1, porque você precisa reamostrar o áudio para um formato compatível com RTMP. aacé um codec de áudio amplamente suportado, 44100hz é uma frequência comum e -ac 1especifica a primeira versão da especificação AAC para fins de compatibilidade.
  • -f flvenvolve o vídeo em um flvcontêiner de formato para compatibilidade máxima com RTMP.

O vídeo é enviado rtmp://localhost/live/streamporque você definiu o livebloco de configuração na Etapa 1 e streamé um URL escolhido arbitrariamente para este vídeo.

Observação: você pode aprender mais sobre ffmpegas opções em ffmprovisr , um catálogo de ffmpegexemplos de comandos mantido pela comunidade ou consultar a documentação oficial .

Enquanto ffmpegestiver transmitindo o vídeo, ele imprimirá códigos de tempo:

Outputframe=  127 fps= 25 q=-1.0 size=     405kB time=00:00:05.00 bitrate= 662.2kbits/s speed=frame=  140 fps= 25 q=-1.0 size=     628kB time=00:00:05.52 bitrate= 931.0kbits/s speed=frame=  153 fps= 25 q=-1.0 size=     866kB time=00:00:06.04 bitrate=1173.1kbits/s speed=

Esta é a ffmpegsaída padrão. Se você estava convertendo o vídeo para um formato diferente, isso pode ser útil para entender a eficiência com que o vídeo está sendo reamostrado, mas, neste caso, você só quer ver se ele está sendo reproduzido de forma consistente. Usando este vídeo de exemplo, você deve obter fps= 25incrementos exatos.

Enquanto o ffmpeg está em execução, você pode se conectar ao seu fluxo RTMP a partir de um player de vídeo. Se você tiver VLCmpv, ou outro reprodutor de mídia instalado localmente, poderá visualizar seu stream abrindo o URL no seu reprodutor de mídia. Sua transmissão será encerrada após a reprodução do vídeo. Se você quiser que ele continue em loop indefinidamente, você pode adicionar ao início do seu comando.rtmp://your_domain/live/streamffmpeg-stream_loop -1ffmpeg

Nota: Você também pode transmitir diretamente para, por exemplo, o Facebook Live usando ffmpegsem precisar usar o Nginx-RTMP substituindo rtmp://localhost/live/streamem seu ffmpegcomando por . O YouTube usa URLs como . Outros provedores de streaming que podem consumir streams RTMP devem se comportar da mesma forma.rtmps://live-api-s.facebook.com:443/rtmp/your-facebook-stream-keyrtmp://a.rtmp.youtube.com/live2

Agora que você aprendeu a transmitir fontes de vídeo estáticas a partir da linha de comando, aprenderá a transmitir vídeo de fontes dinâmicas usando o OBS em uma área de trabalho.

Passo 3 — Streaming de vídeo para seu servidor via OBS (opcional)

A transmissão via ffmpegé conveniente quando você tem um vídeo preparado que deseja reproduzir, mas a transmissão ao vivo pode ser muito mais dinâmica. O software mais popular para transmissão ao vivo é o OBS ou Open Broadcaster Software – é gratuito, de código aberto e muito poderoso.

O OBS é um aplicativo de desktop e se conectará ao seu servidor a partir do seu computador local.

Depois de instalar o OBS, configurá-lo significa personalizar quais janelas da área de trabalho e fontes de áudio você deseja adicionar ao seu fluxo e, em seguida, adicionar credenciais para um serviço de streaming. Este tutorial não abordará sua configuração de streaming, pois depende de preferência e, por padrão, você pode ter uma demonstração de trabalho apenas transmitindo toda a área de trabalho. Para definir suas credenciais de serviço de streaming, abra o menu de configurações do OBS, navegue até a opção Stream e insira as seguintes opções:

Streaming Service: Custom
Server: rtmp://your_domain/live
Play Path/Stream Key: obs_stream

obs_streamé um caminho escolhido arbitrariamente – nesse caso, seu vídeo estaria disponível em . Você não precisa habilitar a autenticação, mas precisa adicionar uma entrada adicional à lista de permissões de IP que você configurou na Etapa 1.rtmp://your_domain/live/obs_stream

De volta ao servidor, abra o arquivo de configuração principal do Nginx, /etc/nginx/nginx.conf, e adicione uma allow publishentrada adicional para seu endereço IP local. Se você não souber seu endereço IP local, é melhor acessar um site como Qual é o meu IP, que pode informar de onde você o acessou:

sudo nano /etc/nginx/nginx.conf

cópia de/etc/nginx/nginx.conf

. . .
                allow publish 127.0.0.1;
                allow publish your_local_ip_address;
                deny publish all;
. . .

Salve e feche o arquivo e recarregue o Nginx:

sudo systemctl reload nginx.service

cópia de

Agora você deve conseguir fechar o menu de configurações do OBS e clicar Start Streamingna interface principal! Tente visualizar seu stream em um media player como antes. Agora que você viu os fundamentos do streaming de vídeo em ação, você pode adicionar alguns outros recursos ao seu servidor para torná-lo mais pronto para a produção.

Etapa 4 — Adicionando monitoramento à sua configuração (opcional)

Agora que você configurou o Nginx para transmitir vídeo usando o módulo Nginx-RTMP, uma próxima etapa comum é habilitar a página de estatísticas RTMP. Em vez de adicionar mais e mais detalhes de configuração ao seu nginx.confarquivo principal, o Nginx permite adicionar configurações por site a arquivos individuais em um subdiretório chamado sites-available/. Nesse caso, você criará um chamado rtmp:

sudo nano /etc/nginx/sites-available/rtmp

cópia de

Adicione o seguinte conteúdo:/etc/nginx/sites-available/rtmp

server {
    listen 8080;
    server_name  localhost;

    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }
}

Salve e feche o arquivo. O stat.xslarquivo deste bloco de configuração é usado para estilizar e exibir uma página de estatísticas RTMP em seu navegador. Ele é fornecido pela libnginx-mod-rtmpbiblioteca que você instalou anteriormente, mas vem compactado por padrão, portanto, você precisará descompactá-lo e colocá-lo no /var/www/html/rtmpdiretório para corresponder à configuração acima. Observe que você pode encontrar informações adicionais sobre qualquer uma dessas opções na documentação do Nginx-RTMP .

Crie o /var/www/html/rtmpdiretório e descompacte o stat.xsl.gzarquivo com os seguintes comandos:

sudo mkdir /var/www/html/rtmp
sudo gunzip -c /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl.gz > /var/www/html/rtmp/stat.xsl`

cópia de

Finalmente, para acessar a página de estatísticas que você adicionou, você precisará abrir outra porta em seu firewall. Especificamente, a listendiretiva é configurada com port 8080, portanto, você precisará adicionar uma regra para acessar o Nginx nessa porta. No entanto, você provavelmente não quer que outras pessoas acessem sua página de estatísticas, então é melhor permitir apenas para seu próprio endereço IP. Execute o seguinte comando:

sudo ufw allow from your_ip_address to any port http-alt

cópia de

Em seguida, você precisará ativar essa nova configuração. A convenção do Nginx é criar links simbólicos (como atalhos) de arquivos sites-available/para outra pasta chamada sites-enabled/conforme você decide ativá-los ou desativá-los. Usando caminhos completos para maior clareza, faça esse link:

sudo ln -s /etc/nginx/sites-available/rtmp /etc/nginx/sites-enabled/rtmp

cópia de

Agora você pode recarregar o Nginx novamente para processar suas alterações:

sudo systemctl reload nginx.service

cópia de

Agora você deve poder acessar em um navegador para ver a página de estatísticas RTMP. Visite e atualize a página durante a transmissão de vídeo e observe como as estatísticas de transmissão mudam.http://your_domain:8080/stat

Agora você viu como monitorar seu fluxo de vídeo e enviá-lo para provedores de terceiros. Na seção final, você aprenderá como fornecê-lo diretamente em um navegador sem o uso de plataformas de streaming de terceiros ou aplicativos de media player independentes.

Etapa 5 — Criando fluxos modernos para navegadores (opcional)

Como etapa final, você pode adicionar suporte para protocolos de streaming mais recentes para que os usuários possam transmitir vídeo do seu servidor usando um navegador da Web diretamente. Existem dois protocolos que você pode usar para criar fluxos de vídeo baseados em HTTP: HLS da Apple e MPEG DASH . Ambos têm vantagens e desvantagens, então você provavelmente desejará oferecer suporte a ambos.

O módulo Nginx-RTMP suporta ambos os padrões. Para adicionar suporte a HLS e DASH ao seu servidor, você precisará modificar o rtmpbloco em seu nginx.confarquivo. Abra /etc/nginx/nginx.confusando nanoou seu editor preferido e adicione as seguintes diretivas destacadas:

sudo nano /etc/nginx/nginx.conf

cópia de/etc/nginx/nginx.conf

. . .
rtmp {
        server {
. . .
                application live {
                    	live on;
                    	record off;
                        hls on;
                        hls_path /var/www/html/stream/hls;
                        hls_fragment 3;
                        hls_playlist_length 60;

                        dash on;
                        dash_path /var/www/html/stream/dash;
                }
        }
}
. . .

Salve e feche o arquivo. Em seguida, adicione isso na parte inferior do seu sites-available/rtmp:

sudo nano /etc/nginx/sites-available/rtmp

cópia de/etc/nginx/sites-available/rtmp

. . .
server {
    listen 8088;

    location / {
        add_header Access-Control-Allow-Origin *;
        root /var/www/html/stream;
    }
}

types {
    application/dash+xml mpd;
}

Nota: O Access-Control-Allow-Origin *cabeçalho habilita CORS , ou Cross-Origin Resource Sharing , que é desabilitado por padrão. Isso comunica a qualquer navegador da Web que acesse dados do seu servidor que o servidor pode carregar recursos de outras portas ou domínios. O CORS é necessário para compatibilidade máxima com clientes HLS e DASH e uma alternância de configuração comum em muitas outras implantações da Web.

Salve e feche o arquivo. Observe que você está usando a porta8088aqui, que é outra escolha arbitrária para este tutorial para evitar conflitos com quaisquer serviços que você possa estar executando na porta 80 ou 443. Você vai querer abrir essa porta em seu firewall por enquanto também:

sudo ufw allow 8088/tcp

cópia de

Por fim, crie um streamdiretório em sua raiz da web para corresponder ao bloco de configuração, para que o Nginx possa gerar os arquivos necessários para HLS e DASH:

sudo mkdir /var/www/html/stream

cópia de

Recarregue o Nginx novamente:

sudo systemctl reload nginx

cópia de

Agora você deve ter um fluxo HLS disponível em e um fluxo DASH disponível em . Esses endpoints gerarão todos os metadados necessários em seu feed de vídeo RTMP para oferecer suporte a APIs modernas.http://your_domain:8088/hls/stream.m3u8http://your_domain:8088/dash/stream.mpd

Conclusão

As opções de configuração usadas neste tutorial estão todas documentadas na página Nginx RTMP Wiki . Os módulos Nginx normalmente compartilham uma sintaxe comum e expõem um conjunto muito grande de opções de configuração, e você pode revisar sua documentação para alterar qualquer uma de suas configurações aqui.

Quase todo o streaming de vídeo da Internet é implementado em RTMP, HLS e DASH e, usando a abordagem que você explorou neste tutorial, você pode fornecer seu stream por meio de outros serviços de transmissão ou expô-lo de qualquer outra maneira que desejar. Em seguida, você pode configurar o Nginx como um proxy reverso para disponibilizar alguns desses diferentes endpoints de vídeo como subdomínios.

11 ago, 2022 | mascarenhas.dj | No Comments

(Remote P2P accessible ESP32 based camera)

Language: C

URL: https://github.com/nabto/nabto-esp32cam

uNabto ESP32 cam demo

Este projeto transforma o ESP32-CAM em uma câmera de vigilância remota P2P acessível. Ele usa o núcleo baseado em esp-idf FreeRTOS (em comparação com alguns outros demos que usam o núcleo do arduino). Também usa a biblioteca espressif esp32-cam com pequenas modificações (não foi possível fazer o reset funcionar).

O vídeo é MJPEG e o módulo pode transmitir remotamente (codificar para mjpeg e criptografar e verificar a integridade) um feed VGA em cerca de 10 quadros por segundo.

Você também deve ler o artigo do blog relacionado: https://www.nabto.com/esp32/

A estrutura

A estrutura do projeto é a seguinte

    +
    +-->+-------------+
    |   |    Main     |        This folder contains the initial setup
    |   +-------------+        and the application_event() function defining
    |                          the application
    +-->+-------------+
        |  Components |
        +-------------+
                      |
                      +------->+----------------+
                      |        | unabto         |    Don't edit here (link to other github rep)
                      |        +----------------+
                      |
                      +------->+----------------+
                      |        | unabto-esp-idf |    The platform integration
                      |        +----------------+
                      |
                      +------->+----------------+
                      |        | nabtotunnel    |    Nabto tunnel application
                      |        +----------------+
                      |
                      +------->+----------------+
                      |        | unabto-esp-    |    Client fingerprint database
                      |        | fingerprint    |    storage in NVS
                      |        +----------------+
                      |
                      +------->+----------------+
                               | esp32-camera   |    From the espressif github (not a link, since we adjusted)
                               +----------------+

O projeto ESP-IDF tem uma estrutura especial. Você pode ler mais sobre isso aqui: https://esp-idf.readthedocs.io/en/v1.0/build_system.html A fonte unabto e o código de integração são feitos como componentes e, portanto, residem na pasta de componentes IDF. O unabto sdk é um link de submódulo para a fonte genérica unabto.

A configuração / comissionamento inicial e o aplicativo estão localizados na pasta principal. unabto_application.c contém o aplicativo (dentro da função application_event), o main.c contém a instalação e configuração do módulo WiFi.

Como configurar

Etapa 1: configurar o ambiente de compilação ESP-IDF

Siga a configuração do conjunto de ferramentas ESP-IDF

http://esp-idf.readthedocs.io/en/stable/get-started/index.html (AVISO !!! É importante usar a versão “estável”, não mais tarde .. Problemas com fcntl foram detectados em final de junho de 2019)

Etapa 2: clonar o repositório

git clone --recursive https://github.com/nabto/nabto-esp32cam.git

Etapa 3: faça menuconfig

Entre no menu “Configuração da câmera”

Edite / ajuste os seguintes itens de menu:

  • Nome do ponto de acesso wi-fi (SSID): o ponto de acesso wi-fi ao qual você deseja que o módulo seja conectado
  • Senha WIFI: a senha usada pelo ponto de acesso
  • ID da Nabto: a ID do dispositivo Nabto que você obtém da sua conta do AppMyProduct
  • Chave Nabto – 32 caracteres hexadecimais: A chave para a identificação do dispositivo específico que você inseriu no item mencionado anteriormente

Fiação da câmera! Se você tiver uma placa ESP-EYE, nada mais precisa ser configurado se você tiver uma “ESP32 Cam” da Ai Tinker, você precisa configurar isso também (também no menu “Configuração da câmera”).

Etapa 3: construir o projeto

make

Etapa 4: atualize a imagem

Possivelmente, você precisa ajustar o dispositivo serial a ser usado para flashing, que é configurado na parte menuconfig, mas principalmente a configuração padrão irá corresponder à sua plataforma.

make flash

Como testar o aplicativo

Monitore a saída da placa

Usando o comando monitor, você deverá ver uma impressão semelhante à seguinte sempre que o ESP32-EVB for inicializado:

Procure o “conectado!” dizendo que o dispositivo sabe como se conectar ao seu WIFI. Procure também a mudança de estado do Nabto para “ATTACHED”, o que significa que o dispositivo foi conectado com sucesso à infraestrutura da Nabto (registrado e online, aguardando as solicitações de conexão dos clientes). O endereço do serviço de nuvem (controlador) pode variar dependendo da região geográfica (temos 4 datacenters) e da disponibilidade.

00:00:01:457 main.c(382) connected!
00:00:01:460 main.c(388) IP Address:  192.168.2.147
00:00:01:465 main.c(389) Subnet mask: 255.255.255.0
00:00:01:470 main.c(390) Gateway:     192.168.2.1
00:00:01:475 unabto_application.c(59) In demo_init
00:00:01:479 unabto_application.c(78) Before fp_mem_init
00:00:01:495 unabto_application.c(81) Before acl_ae_init
00:00:01:495 unabto_common_main.c(110) Device id: 'jicnkjqs.ev9dbf.appmyproduct.com'
00:00:01:498 unabto_common_main.c(111) Program Release 4.4.0-alpha.0
00:00:01:505 network_adapter.c(140) Socket opened: port=5570
00:00:01:510 network_adapter.c(140) Socket opened: port=49153
00:00:01:515 unabto_stream_event.c(235) sizeof(stream__)=328
00:00:01:521 unabto_context.c(55) SECURE ATTACH: 1, DATA: 1
00:00:01:526 unabto_context.c(63) NONCE_SIZE: 32, CLEAR_TEXT: 0
00:00:01:532 unabto_common_main.c(183) Nabto was successfully initialized
00:00:01:539 unabto_context.c(55) SECURE ATTACH: 1, DATA: 1
00:00:01:543 unabto_context.c(63) NONCE_SIZE: 32, CLEAR_TEXT: 0
00:00:01:550 network_adapter.c(140) Socket opened: port=49154
00:00:01:555 unabto_attach.c(770) State change from IDLE to WAIT_DNS
00:00:01:561 unabto_attach.c(771) Resolving DNS for jicnkjqs.ev9dbf.appmyproduct.com
00:00:01:675 unabto_attach.c(790) Resolved DNS for jicnkjqs.ev9dbf.appmyproduct.com to:
00:00:01:675 unabto_attach.c(796)   Controller ip: 34.232.129.33
00:00:01:678 unabto_attach.c(802) State change from WAIT_DNS to WAIT_BS
00:00:01:887 unabto_attach.c(480) State change from WAIT_BS to WAIT_GSP
00:00:01:888 unabto_attach.c(481) GSP address: 34.194.195.231:5565
00:00:01:895 unabto_attach.c(270) ########    U_INVITE with LARGE nonce sent, version: - URL: -
00:00:02:089 unabto_attach.c(563) State change from WAIT_GSP to ATTACHED

Para testar a câmera, você pode tentar acessar: http: //: 8081 /

Que mostrará algo assim:

Baixe o aplicativo de vídeo AMP

Baixe o aplicativo para Android ou iPhone na app store

Pareie o aplicativo de vídeo com o módulo wi-fi

Configure seu telefone para ser conectado à mesma rede WIFI que o dispositivo. Isso é ultra importante, pois o aplicativo e o dispositivo farão uma descoberta de transmissão para se encontrarem. O aplicativo criará um certificado PKI anônomo e enviará a impressão digital da chave (como SSH) para o dispositivo na rede local que é considerado “seguro” (ou seja, não emparelhe na rede pública). O dispositivo adiciona essa impressão digital à lista de controle de acesso e, depois disso, o dispositivo agora aceitará que o aplicativo possa se conectar remotamente. Leia mais sobre as listas de controle de acesso da Nabto e emparelhamento aqui .

Conecte-se e veja o vídeo

Agora você deve conseguir se conectar à câmera ao clicar no logotipo da câmera.