Seu live stream está travando toda vez? Se sim, você precisará encontrar uma maneira confiável de hospedar seu stream. Mas se você não puder pagar por opções caras, sem problemas! O NGINX RTMP vai salvar o dia. O NGINX RTMP é um módulo de código aberto confiável, então você sabe o que isso significa — é GRÁTIS!
Neste tutorial, você aprenderá como configurar um servidor NGINX RTMP para que você possa estabelecer um stream ao vivo confiável com seu site.
Pronto? Continue lendo e comece a configurar um stream ao vivo!
Pré-requisitos
Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter o seguinte:
- A Linux server – This demo uses Ubuntu 20.04 LTS, but you can use any other Linux distribution with NGINX.
- NGINX instalado no servidor Linux.
- A non-root user with sudo privileges.
- Recursos mínimos necessários para executar um servidor de stream ao vivo – 2G de RAM, 2 núcleos de CPU e 20 GB de HDD.
Esses valores são apenas sugestões. Os valores exatos dependem de suas necessidades de tráfego reais. Quanto mais tráfego você tiver, mais servidores poderosos você precisará para hospedar e transmitir seu vídeo ao vivo. Em um ambiente de desenvolvimento, um servidor NGINX RTMP com 2 CPUs e 2 GB de RAM é suficiente para testar.
Configurando um Servidor RTMP
Agora que os pré-requisitos foram atendidos, você pode prosseguir com a instalação e configuração do seu servidor RTMP. Primeiro, você instalará um módulo NGINX para converter seu servidor NGINX em um servidor RTMP e, em seguida, configurará o arquivo de configuração do NGINX para permitir transmissões ao vivo para os usuários.
1. Abra seu terminal e execute o comando apt update
para atualizar todos os seus pacotes. Este comando sincroniza seu banco de dados de pacotes com o banco de dados mais recente do Ubuntu.

2. Em seguida, execute o seguinte comando para instalar um servidor RTMP em seu servidor Linux.
O módulo libnginx-mod-rtmp
é um módulo NGINX que converte seu servidor NGINX em um servidor RTMP. Este módulo permite que o NGINX se comunique com o Adobe Flash Player para que você possa transmitir seu vídeo ou áudio ao vivo e é oficialmente suportado pela equipe de desenvolvimento.

3. Abra o arquivo /etc/nginx/nginx.conf no seu editor favorito para configurar seu programa ao vivo RTMP. O arquivo nginx.conf é um arquivo de configuração do NGINX, que contém várias diretivas ou blocos para definir o comportamento do serviço NGINX.
4. Por fim, preencha o arquivo nginx.conf com o código a seguir, salve as alterações e saia do editor.
O código abaixo indica ao NGINX que ele deve atuar como um servidor RTMP e habilita transmissões ao vivo para seus usuários.
Protegendo a rede configurando um firewall
Você já configurou seu servidor NGINX RTMP, mas precisará proteger sua rede e controlar o fluxo de tráfego. Como? Configurando um firewall, o Uncomplicated Firewall (UFW), que é o firewall padrão no Ubuntu.
Se você colocar seu servidor NGINX RTMP atrás de um firewall, precisará permitir a abertura da porta do servidor NGINX RTMP. Como você configurou seu servidor NGINX RTMP para ouvir na porta 1935
, você permitirá que esta porta passe pelo seu firewall.
1. Execute o seguinte comando para adicionar uma regra de firewall que abre a porta 1935
no seu firewall. Esta regra de firewall permite que a porta do seu servidor NGINX RTMP 1935
seja acessível para todas as solicitações de entrada e saída.

2. Em seguida, execute o seguinte comando para desativar e reativar o seu firewall. Este comando basicamente reinicia o firewall para que quaisquer alterações no firewall tenham efeito.
3. Finalmente, execute o comando abaixo para verificar o status do seu firewall e verificar se a porta 1935
está acessível de todos os endereços IP (Qualquer Lugar).

Transmissão de Vídeo usando FFmpeg
Seu servidor NFINX RTMP está agora ativo, então é hora de usar o FFmpeg para criar um exemplo de vídeo e transmiti-lo através do seu servidor NGINX RTMP. O FFmpeg é uma solução completa para gravar, converter e transmitir áudio e vídeo em muitas aplicações diferentes como VLC, OMXPlayer, VobSub, e assim por diante.
Você estará testando a transmissão de vídeo no seu servidor, e pode usar qualquer vídeo que seja pequeno em tamanho para a transmissão.
1. Execute o comando apt install
abaixo para instalar as dependências necessárias para o FFmpeg funcionar corretamente.
O comando abaixo instala o seguinte:
libpcre3
– Uma biblioteca regex que é utilizada pela caixa de ferramentas ffmpeg para ajudar a analisar e compilar expressões regulares.libpcre3-dev
– Este pacote contém os cabeçalhos de desenvolvimento do pacote libpcre3.libssl-dev
– A biblioteca criptográfica OpenSSL usada para criar conexões SSL/TLS no seu servidor RTMP.zlib1g-dev
: A biblioteca zlib é uma biblioteca de compressão e descompressão que acelera a transferência de arquivos de áudio e vídeo pela Internet.

2. Em seguida, execute o seguinte comando para instalar o ffmpeg
no seu servidor.

3. Por último, execute o comando ffmpeg
para realizar o seguinte e criar um novo fluxo ao vivo:
- Leia a entrada (
re
) do arquivo de origem (i
) na taxa de quadros original. Certifique-se de substituirvideo.mp4
pelo caminho e nome do seu vídeo. - Copie o formato de vídeo literalmente (
c:v copy
) e codifique o áudio em um codec AAC (c:a aac
). - Defina a taxa de amostragem de áudio para 44100 Hz (
ar 44100
). Se a taxa de amostragem do seu vídeo for menor que esse valor (44100 Hz), o FFmpeg realiza interpolação para aumentar a taxa de amostragem. - Configurar os canais de áudio para um canal (mono) (`ac 1`), e o formato de vídeo que o FFmpeg transmitirá (`-f flv`).
- Configure seu programa ao vivo RTMP (`rtmp://localhost/live/streamname.flv`), que você configurou na seção “Configurando um Servidor RTMP” (passo quatro). Você pode alterar `streamname.flv` para o nome que preferir.
Como mostrado abaixo, o comando `ffmpeg` imprime o quadro por segundo que detecta, a taxa de bits e os quadros por segundo da transmissão ao vivo RTMP recém-criada.

Conclusão
Neste tutorial, você aprendeu como configurar seu servidor RTMP NGINX e habilitar transmissões ao vivo em seu servidor, modificando o arquivo de configuração do NGINX. Você também abordou a configuração de uma transmissão ao vivo usando a ferramenta FFmpeg por meio do seu servidor RTMP NGINX.
Você acabou de perceber que configurar uma transmissão ao vivo não precisa custar cada centavo. Neste ponto, por que não integrar sua transmissão à sua página da web usando o HTML5 elemento <video>. Ou configurar um OBS Studio para sua transmissão RTMP?