Configurar repetidor de Stream (Linux)

Hoje venho mostrar como fazer algo bem interessante, como tenho um canal de jogos, vou mostrar hoje como fazer algo bem interessante, como configurar uma máquina, nesse exemplo rodando Gentoo ou Debian, para fazer transmissões para mais de um serviço de stream, como por exemplo Facebook Gaming e Youtube.

Existem alguns serviços na internet que fornecem essa possibilidade, mas cobram para fazer o stream para certos portais, com esse ajuste, você pode ter uma máquina em casa que faça esse envio múltiplo de forma bem fácil, apenas configurando um repetidor com Nginx e Stunnel no servidor, também é possível fazer essa configuração no Windows , que segue os mesmos princípios de configuração.

Vale lembra que se você fizer uma transmissão a 2MB/s será multiplicado para cada serviço de stream que você utilizar, e sua internet deve comportar essa banda de upload, por exemplo, uma transmissão a 2MB/s para 4 serviços de Stream, utilizará aproximadamente 8MB/s de banda de upload.

Nesse guia vamos utilizar o Nginx e Stunnel, aonde o Nginx fará o repetidor do protocolo RTMP, e o Stunnel fará a criptografia para os serviços que utilizam o protocolo RTMPS (Facebook Gaming)

Mas chega de conversa e vamos ao que realmente interessa.

Para o Gentoo, você irá precisar das seguintes flags USE

USE="rtmp ssl"

Com essas flags no USE, você precisa instalar os seguintes pacotes

emerge -av www-servers/nginx net-misc/stunnel

Executando esses passos acima, você estará pronto para seguir o passo a passo nesse guia.

Para o Debian, executar o comando abaixo para instalar o nginx e a extensão rtmp e também o programa stunnel

apt install nginx libnginx-mod-rtmp stunnel

Após executar esses passo, você estará pronto para seguir o guia para instalação no Debian

Primeiramente vamos configurar o Stunnel, nesse exemplo vou fazer ele a criptografia do Facebook Gaming, acessar o arquivo de configuração do mesmo, no Gentoo “/etc/stunnel/stunnel.conf” e no Debian “/etc/stunnel/stunnel.conf”

Dentro desse arquivo, criar uma nova regra, conforme exemplo abaixo para o Facebook Gaming, aonde a informação do accept é a conexão de entrada, nesse exemplo a porta, que está configurado como 1936, pode ser qualquer porta livre.

[fb-live]
client = yes
accept = 127.0.0.1:1936
connect = live-api-s.facebook.com:443
verifyChain = no

Se tivesse outros serviços que precisam que seja conexão, pode ser criada outras regras dentro do Stunnel, alterando o nome entre couchetes, accept e connect, informando outra porta no accept para não dar erro de configuração.

Após realizado a configuração no Stunnel, vamos para a configuração do Nginx, no Gentoo “/etc/nginx/nginx.conf” e no Debian “/etc/nginx/nginx.conf”, inserir as seguinte informação no final do arquivo, e alterando as informações do valor push, alterar o valor chave pela sua chave de transmissão

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                        push rtmp://a.rtmp.youtube.com/live2/chave;
			push rtmp://127.0.0.1:1936/rtmp/chave;
                }
        }
}

Se você precisa configurar outros serviços, é só informar em novas linhas push e o endereço de transmissão com a chave de acesso.

Após fazer essas configurações reiniciar os serviços do Nginx e Stunnel, no Gentoo executar o comando abaixo.

/etc/init.d/nginx restart
/etc/init.d/stunnel restart

Para o Debian, reiniciar executando o comando abaixo.

systemctl restart nginx
systemctl restart stunnel

Para o Gentoo, pode adicionar os serviços a nível de inicialização do sistema conforme comando abaixo.

rc-config add nginx default
rc-config add stunnel default

Feito essas configurações, é só informa-las dentro do seu transmissor de stream para o endereço do deu servidor repetidor, por exemplo se meu servidor estivesse no IP 192.168.0.5, a informação a ser configurada no serviço de stream seria:

rtmp://192.168.5.240/live

Você pode informar uma chave de transmissão, essa informação seria interessante caso você queira assistir a transmissão localmente com algum reprodutor como o VLC informando algo similar a informação abaixo, por exemplo com a chave 1234

rtmp://192.168.5.240/live/1234

Feito essas configurações, você está pronto e apto para transmitir para mais de um serviço de stream ao mesmo tempo, bem simples e rápido.

Espero que eu tenha ajudado.