Como fazer uma transmissão ao vivo simultânea no YouTube, Facebook e Instagram com OBS e Docker

A configuração de um servidor de streaming ao vivo privado não parece tão simples, mas é simples demais.
Vou explicar como configurar seu próprio servidor de streaming usando o Nginx. Não é necessário software caro, todas as ferramentas são de código aberto.

Para você transmitir ao vivo, você precisa de três coisas:

  1. Um dispositivo para gravar (OBS);
  2. Um servidor local para receber o stream e enviar para a nuvem;
  3. A chave de acesso para os serviços de stream (YouTube,Facebook ou/e Instagram).

Configurando o módulo Nginx + RTMP

Você pode não estar familiarizado com o Nginx e com tudo o que ele pode fazer, mas com a ajuda de um módulo rtmp, o nginx pode lidar com fluxos RTMP (RTMP é um protocolo usado para enviar vídeos ao vivo pela Internet).

Para configurar o servidor de streaming, você pode prosseguir e compilar o módulo no Nginx. As instruções estão disponíveis no repositório AQUI

Vou seguir com uma abordagem mais fácil, módulo Nginx + RTMP no Docker.

Vamos configurá-lo na máquina local. Para transmitir para a Internet.

Antes de tudo, instale o docker, se ainda não o tiver. As instruções estão AQUI

Depois de instalar e executar o Docker, as coisas ficam bem fáceis

docker pull thiagoeolima/nginx-rtmps
docker run -it -p 1935:1935 --name nginx-rtmps thiagoeolima/nginx-rtmps

Isso baixará a imagem do Docker com o módulo Nginx + RTMP e iniciará o servidor. A porta 1935 é exposta como entrada RTMP.

O Dockerfile está disponível AQUI . Se você quiser fazer alguma modificação, vá em frente, clone o repositório e crie sua própria imagem. As instruções são mencionadas no repositório.

Agora que temos um servidor de streaming em execução, vamos enviar um stream RTMP para ele.

Transmissão ao vivo no Facebook e YouTube

Não vou abordar como obter a chave de transmissão.

Transmitindo só para o Facebook:

docker run -it -p 1935:1935 -e FACEBOOK_KEY=<key> thiagoeolima/nginx-rtmps

Substitua o <key> pela chave de transmissão do Facebook

Transmitindo só para o YouTube:

docker run -it -p 1935:1935 -e YOUTUBE_KEY=<key> thiagoeolima/nginx-rtmps

Substitua o <key> pela chave de transmissão do Youtube.

Transmitindo simultaneamente para Facebook e YouTube

docker run -it -p 1935:1935 -e FACEBOOK_KEY=<key> -e YOUTUBE_KEY=<key> thiagoeolima/nginx-rtmps

Configuração do OBS

  • Abra o OBS Studio;
  • Clique no botão “Configurações”;
  • Vá para a seção “Transmissão”;
  • Em “Serviço”, selecione “Personalizado…”;
  • No “Servidor”, digite rtmp://<ip_of_host>/live substituindo <ip_of_host> pelo IP do host no qual o contêiner está sendo executado. Por exemplo: rtmp: //localhost/live ;
  • Na “Chave de transmissão”, use uma “chave” que será usada posteriormente no URL do cliente para exibir esse fluxo específico. Por exemplo: stream ;
  • Clique no botão “OK”.

Pronto, inicie sua Live.

Transmissão ao vivo no Instagram

Use o https://instafeed.me/rtmp/ para obter a chave de transmissão.

docker run -it -p 1935:1935 -e INSTAGRAM_KEY=<key> thiagoeolima/nginx-rtmps

Substitua o <key> pela chave de transmissão do Instagram.

No OBS siga os passo anteriores mas no servidor digite rtmp://<ip_of_host>:1935/instagram

Boa transmissão!