Este tutorial procura resolver isso mostrando como configurar um servidor pessoal de streaming ao vivo que tira proveito do Nginx, um servidor da web poderoso e leve e proxy reverso e o protocolo RTMP.
Antes de prosseguirmos, certifique-se de:
- Você está executando o servidor Ubuntu ou Debian
- Tenha acesso ao seu servidor via SSH
- Usuário root ou privilégios sudo
Vamos começar.
O que é Nginx
Como mencionado acima, Nginx é um servidor da web de código aberto rápido e leve e proxy reverso usado para servir sites estáticos simples ou aplicativos massivos. Nginx é um servidor web de alto desempenho com incrível velocidade e segurança. Graças à sua natureza leve, é uma escolha muito eficiente para serviços de streaming e tráfego com tráfego massivo.
Você pode aprender mais sobre o Nginx no recurso fornecido abaixo:
https: // nginx.org / en / docs /
O que é Nginx RTMP
Nginx RTMP é um módulo de código aberto e poderoso para o servidor da web Nginx. Ele ativa o protocolo RTMP, HTTP Live Streaming (HLS) e Dynamic Adaptive Streaming over HTTP (DASH).
Você pode aprender mais sobre HLS e DASH na página de recursos:
https: // www.Cloudflare.com / learning / video / what-is-mpeg-dash /
Agora que você sabe o que são Nginx e Nginx RTMP, vamos configurar o servidor:
Configurar para servidor
A primeira etapa é obter acesso ao servidor. Certifique-se de que o SSH para o seu servidor esteja ativado e que você tenha as chaves adicionadas para facilitar o login.
ssh debian @ 34.73.160.42[email protegido]: ~ $
Assim que tivermos acesso ao servidor, podemos começar a instalar os pacotes e bibliotecas necessários. Primeiro, certifique-se de que seu servidor esteja atualizado:
sudo apt-get updatesudo apt-get upgrade -y
Instalando o software necessário
Para configurar o servidor de streaming, precisaremos construir o Nginx a partir da fonte e habilitar o módulo RTMP. Para isso, devemos usar build-essentials e outros pacotes. Use o comando apt abaixo para instalar todas as dependências.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devA próxima etapa é compilar e instalar o Nginx com o módulo RTMP habilitado. Para se manter organizado, crie um diretório para o processo.
mkdir ~ / Makecd ~ / Make /
Em seguida, clone o módulo nginx-RTMP:
git clone git: // github.com / arut / nginx-rtmp-module.idiotaAgora precisamos baixar o nginx.
Acesse http: // nginx.org / en / download.html e selecione sua opção de download.
wget http: // nginx.org / download / nginx-1.19.8.alcatrão.gztar xzf nginx-1.19.8.alcatrão.gz
cd nginx-1.19.8
A etapa final nesta seção é compilar o Nginx com o módulo RMTP habilitado. Use os comandos abaixo:
sudo ./ configure --with-http_ssl_module --add-module =… / nginx-rtmp-modulesudo make
sudo make install
Configurando a transmissão ao vivo
Para habilitar o suporte RTMP, precisamos editar o arquivo de configuração nginx e especificar o bloco RTMP.
sudo nano / usr / local / nginx / conf / nginx.confInsira o bloco de suporte RTMP como:
rtmpservidor
listen 1935;
ping 30s;
aplicativo ao vivo
viver;
intercalar;
hls on;
hls_path / tmp / hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type application / octet-stream;
servidor
escute 80;
localização / tv
root / tmp / hls;
tipos
aplicação / vnd.maçã.mpegurl m3u8;
vídeo / mp2t ts;
text / html html;
Na configuração acima, habilitamos o módulo RTMP e HLS. Considere a documentação para aprender como habilitar o DASH.
Assim que tiver a configuração, salve o arquivo e inicie o serviço Nginx.
sudo / usr / local / nginx / sbin / nginxIniciar streaming
Depois de ter tudo configurado corretamente, você pode iniciar o streaming usando FFmpeg - é o mais fácil. Você também pode configurar outras ferramentas como OBS Studio, mas não vou cobrir isso neste tutorial.
Use o comando FFmpeg como:
sudo ffmpeg -re -i arquivo de amostra-mp4.mp4 -c copy -f hls rtmp: // localhost / live / streamReproduza a transmissão usando FFplay ou VLC Media player no recurso.
ffplay rtmp: // IP / live / streamDepois de ter o stream em execução, você pode expor o serviço a uma rede externa.
NOTA: Certifique-se de ter protegido seu servidor antes de permitir o acesso público.
Conclusão
Este tutorial cobriu como configurar um servidor de streaming usando Nginx e o módulo Nginx RTMP. Lembre-se de que há muitas engrenagens envolvidas na configuração de um serviço de streaming e você pode personalizá-lo de acordo com suas necessidades.
Considere os seguintes recursos para explorar mais.
- https: // ffmpeg.org / ffmpeg.html
- https: // ffmpeg.org / ffplay.html
- https: // ffmpeg.formatos org / ffmpeg.html
- https: // obsproject.com / docs /
- https: // wiki.videolan.org / Documentação: Streaming_HowTo