Ícone do site SOLOWEB Tecnologia

Como instalar um servidor de stream RTMP com nginx no Debian ou Ubuntu

No tutorial SoloWeb de hoje vamos ensinar a realizar a instalação de um servidor stream RTMP com Nginx.

Precisando de um servidor de Stream? A SoloWeb prepara tudo para você, temos servidores com melhor custo beneficio e a solução que não encontrar ti ajudamos a resolver. Entre em contato conosco, Acesse www.soloweb.com.br

O Nginx possui um modulo de RTMP no qual pode ser instalado e usado normalmente até mesmo em servidores de hospedagem, porém não recomendamos muito pelo alto uso de recursos no momento de transmissão, recomendo utilizar um servidor apropriado apenas para esse tipo de serviço, então vamos la.

 

Primeiro passo:

Vamos instalar as ferramentas apropriadas para instalação mas antes disso lembre de atualizar o sistema operacional

#atualizar sistema
sudo apt update -y && sudo apt upgrade -y

#instalação das ferramentas necessárias para compilar o nginx
apt-get install -y build-essential git tree zlib1g-dev libssl-dev unzip libpcre3 libpcre3-dev

 

Segundo passo:

Após a instalação das ferramentas vamos baixar o Nginx siga os seguintes comandos:

#Baixe o código fonte do Nginx e o módulo de RTMP
wget https://nginx.org/download/nginx-1.17.10.tar.gz
wget https://github.com/defanator/nginx-rtmp-module/archive/fix-build-with-gcc8.zip

#descompacte arquivos baixados
tar -zxvf nginx-1.17.10.tar.gz && unzip fix-build-with-gcc8.zip

#Entre na pasta do nginx
cd nginx-1.17.10

 

Terceiro passo:

Depois de baixar o Nginx vamos agora instalar execute os seguintes comandos:

#Na pasta do nginx que você baixou execute esse comando para configurar o modulo na instalação
./configure  --add-module=../nginx-rtmp-module-fix-build-with-gcc8

#Compile e instale o Nginx
make && make install

 

Quarto passo:

Com usuário root crie um arquivo na seguinte pasta do seu sistema, ele irá servidor para iniciar ou parar o serviço,  a pasta é a /etc/systemd/system/ o arquivo que você irá criar nesta pasta é o nginx.service, conteúdo do arquivo a seguir:

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

 

Quinto passo:

Agora vamos editar o arquivo de configuração do nginx, fica em /usr/local/nginx/conf/nginx.conf:

#Diz ao nginx qual usuário do SO ele deve utilizar
user nginx nginx;
#Aqui removemos alguns limites para que mais pessoas
#acessem o servidor para distribuir ou assistir vídeos.
worker_processes auto;
worker_rlimit_nofile 100000;

#Define o diretório/nome do arquivo para os logs de erro.
error_log  /var/nginx/logs/error.log;

events {
    #Diz quantas pessoas simultâneas podem acessar
    worker_connections 4000;
}

rtmp {
    server {
        #Porta padrão para RTMP
        listen 1935;
        #Verifica se há conexão ativa com o cliente
        #Caso o cliente não responda o nginx fecha a conexão
        ping 30s;
        ping_timeout 30s;

        #Cria a rota para estabelecer conexões RTMP.
        #Basta configurar em seu programa de streaming
        #favorito a rota 
        #rtmp://SERVER_ADDRESS:1935/stream/{SOME_CODE}
        #para começar a transmitir
        application stream {
            live on;
            #Grava toda a live em um arquivo flv
            #no diretório especificado
            #Liga distribuição do vídeo como HLS
            #A especificação pede para utilizar o tmp
            hls on;
            hls_path /var/nginx/www/;
            #Tamanho máximo de cada fragmento do vídeo
            hls_fragment 5s;
        }
    }
}

#Configura a distribuição
http {
    default_type application/octet-stream;

    server {
        #Porta HTTP padrão.
        listen 80 default_server;

        #Rota para acesso ao HLS
        location /var/nginx/www/ {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            add_header Cache-Control no-cache;
            root /tmp;
        }
    }
}

 

Sexto passo:

Após todos estes passos, vamos ao ultimo que é criar um usuário nginx e também iniciar o serviço:

#para criar um usuario nginx
adduser nginx --system --no-create-home --group --disabled-login --disabled-password

#libere as portas
ufw allow 80
ufw allow 1935

#iniciar o serviço
systemctl start nginx.service
systemctl enable nginx.service

 

Pronto, agora você poderá testar utilizando algum transmissor de sua preferência, no caso você pode utilizar o OBS studio, e para assistir a transmissão você poderá criar um player em html informando os dados de transmissão:

Para transmitir no OBS Studio configure a transmissão personalizada e informe os seguintes dados:

rtmp://endereçoipdoservidor:1935/stream/{nomedachave}

Esse nomedachave pode ser um nome qualquer, ele irá  ser o nome do arquivo criado no servidor para transmissão.

os dados do player você poderá transmitir um player para m3u8 e informará os seguintes dados:

http://endereçoipdoservidor/stream/{nomedachave}.m3u8

 

Precisando de servidor para seu stream? Entre no nosso site www.soloweb.com.br e vejas nossos planos dedicados, servidores vps a partir de R$35,90 e dedicados econômicos a partir de apenas R$299,00.

Se sua empresa ou negócio precisa de um Servidor Stream? A SoloWeb prepara tudo para você, temos servidores com melhor custo beneficio e a solução que não encontrar ti ajudamos a resolver. Entre em contato conosco, Acesse www.soloweb.com.br

Acesse já.

 

Sair da versão mobile