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á.
E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br