Configurar o Nginx-RTMP no CentOS 7

O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. O Vultr é ótimo para esses aplicativos, pois eles fornecem desempenho rápido e dedicado da CPU. A rede global da Vultr também garante que você possa fornecer conteúdo ao vivo de alta qualidade com o mínimo atraso. Vamos começar!

Instalando o Nginx e o Nginx-RTMP

Instale as ferramentas necessárias para compilar o Nginx e o Nginx-RTMP a partir da origem.

sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

Crie um diretório de trabalho e mude para ele.

mkdir ~/working
cd ~/working

Faça o download das fontes Nginx e Nginx-RTMP.

wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

Instale o pacote descompactado.

sudo yum install unzip

Extraia a fonte Nginx e Nginx-RTMP.

tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip

Alterne para o diretório Nginx.

cd nginx-1.9.7

Adicione módulos para compilar no Nginx. Nginx-RTMP está incluído.

./configure --add-module=../nginx-rtmp-module-1.2.1/

Compile e instale o Nginx com o Nginx-RTMP.

make
sudo make install

Crie um arquivo de unidade SystemD para o Nginx.

sudo nano /usr/lib/systemd/system/nginx.service

Preencha o arquivo com o seguinte conteúdo.

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Inicie e ative o serviço Nginx.

sudo systemctl start nginx.service

Diga ao SystemD para iniciar os serviços Nginx automaticamente na inicialização.

systemctl enable nginx.service

Instalando o FFmpeg

Instale epel-releasee atualize o sistema.

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

Instale o repositório Nux.

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

Instale o FFmpeg e seus pacotes de desenvolvimento.

sudo yum install ffmpeg ffmpeg-devel -y

Configurando Nginx-RTMP e FFmpeg

Abra o arquivo de configuração do Nginx.

sudo nano /usr/local/nginx/conf/nginx.conf

Anexe o seguinte à configuração.

    rtmp {
        server {
            listen 1935;
            chunk_size 4096;

            application live {
                    live on;
                    record off;
                    exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
            }
            application live360p {
                    live on;
                    record off;
        }
    }
}

Depois de adicionar esse texto de configuração, você pode personalizar configurações como taxa de bits do vídeo, taxa de bits do áudio e resolução. Essas alterações serão aplicadas apenas ao fluxo de qualidade inferior. Para adicionar mais qualidades, copie e cole a linha exec FFmpeg e altere as configurações. Você também precisará criar um novo aplicativo. Você pode fazer isso copiando e colando o exemplo live360 que foi incluído. Não se esqueça de atualizar a linha exec FFmpeg com o endereço do novo aplicativo. Você pode fazer isso alterando o endereço RTMP final na linha exec FFmpeg.

Nota: Alterar o valor depois -b:valterará a taxa de bits do vídeo. Isso é medido em kilobits por segundo. Alterar o valor depois -b:amudará a taxa de bits do áudio. Isso é medido em kilobits por segundo. Alterar o valor depois -smudará a resolução.

Salve o arquivo pressionando CTRL+ X.

Reinicie o Nginx.

sudo service nginx restart

Nota: Para obter o melhor desempenho, cada fluxo sendo convertido deve ter seu próprio núcleo de CPU. Por exemplo, se duas qualidades, 360P e 480P, estão sendo criadas a partir de um fluxo 720P, uma instância do Vultr com pelo menos dois núcleos de CPU deve ser usada.

Nota de segurança

Se você estiver usando um firewall, precisará garantir que isso TCP 1935seja permitido.

A configuração atual permite que qualquer pessoa faça streaming no seu servidor. Podemos corrigir isso, concedendo apenas a certos endereços IP a permissão de publicação. Abra a configuração do Nginx.

sudo nano /usr/local/nginx/conf/nginx.conf

Procure as seguintes linhas.

live on;
record off;

Adicione o seguinte a cada conjunto das linhas acima. Mude 0.0.0.0para o seu endereço IP real.

allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;

A configuração agora será semelhante à seguinte.

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
                live on;
                record off;
                allow publish 127.0.0.1;
                allow publish 0.0.0.0;
                deny publish all;
                exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
        }
        application live360p {
                live on;
                record off;
                allow publish 127.0.0.1;
                allow publish 0.0.0.0;
                deny publish all;
        }
    }
}

Salve o arquivo pressionando CTRL+ X.

Reinicie o Nginx.

sudo service nginx restart

Configurando o software para funcionar com o Nginx-RTMP

Aplicativos de streaming geralmente têm dois campos para informações de conexão. O primeiro campo é geralmente para as informações do servidor e o segundo campo é geralmente para o nome ou a chave do fluxo. As informações que você deve colocar em cada campo são listadas. O nome ou a chave do fluxo pode ser definido como qualquer coisa.

Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set

Para visualizar os fluxos, abra os seguintes links em um player compatível com RTMP.

rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set


Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.