GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Nginx avec le module RTMP sur CentOS 7

RTMP (Real Time Messaging Protocol) est un protocole hautes performances pour la transmission de données, audio et vidéo sur Internet entre les technologies de plate-forme basées sur Flash. Développé à l'origine par Macromedia, et maintenant propriété d'Adobe.

Nginx RTMP est un streamer multimédia basé sur nginx avec diffusion en direct RTMP, HLS et MPEG-DASH. Le module Nginx RTMP possède de nombreuses fonctionnalités, notamment la prise en charge H264/AAC, la prise en charge du rappel HTTP, le module de contrôle HTTP pour l'enregistrement audio/vidéo, etc.

Dans ce tutoriel, je vais vous montrer comment installer et configurer le serveur web Nginx avec le module RTMP. Nous utiliserons le dernier serveur CentOS 7, et ce guide inclura la configuration des modules nginx et rtmp et la création de flux en direct RTMP et de vidéo à la demande.

Prérequis

  • Serveur CentOS 7
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer les dépendances
  2. Télécharger Nginx avec un package supplémentaire et un module RTMP
  3. Compiler Nginx et installer à partir de la source
  4. Configurer Nginx en tant que service
  5. Configurer le module RTMP Nginx
  6. Configurer la première diffusion en direct RTMP
  7. Test

Étape 1 - Installer les dépendances

Dans ce didacticiel, nous allons créer le serveur Web Nginx à partir de la source. Nous devons installer toutes les dépendances de packages nécessaires, y compris les outils de développement, le référentiel EPEL et d'autres packages.

Installez les "outils de développement" de CentOS.

sudo yum -y groupinstall 'Outils de développement'

Ajoutez le référentiel EPEL.

sudo yum -y install epel-release

Installez les dépendances Nginx.

sudo yum install -y wget git unzip perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel pcre-devel GeoIP GeoIP-devel

Attendez que tous les packages soient installés.

Étape 2 - Télécharger Nginx avec un package supplémentaire et un module RTMP

Dans cette étape, nous allons télécharger le code source nginx avec les dépendances supplémentaires, notamment pcre, zlib et OpenSSL.

Allez dans le répertoire '/usr/local/src'.

cd /usr/local/src

Téléchargez Nginx 1.14.0 et extrayez-le.

wget https://nginx.org/download/nginx-1.14.0.tar.gz
tar -xzvf nginx-1.14.0.tar.gz

Téléchargez le package pcre et extrayez-le.

wget https://ftp.pcre.org/pub/pcre/pcre-8.42.zip
décompressez pcre-8.42.zip

Téléchargez le package zlib et extrayez-le.

wget https://www.zlib.net/zlib-1.2.11.tar.gz
tar -xzvf zlib-1.2.11.tar.gz

Téléchargez le package OpenSSL et extrayez-le.

wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar -xzvf openssl-1.1.0h.tar.gz

Ensuite, clonez le code source du module Nginx RTMP à l'aide de la commande git.

cloner git https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git

Et supprimez tous les fichiers tar.gz et .zip compressés.

rm -f *.tar.gz *.zip

Voici les détails du répertoire que nous avons.

ls-lah

Et nous sommes prêts à compiler et installer.

Étape 3 - Compiler Nginx et installer à partir de la source

Allez dans le répertoire 'nginx-1.14.0'.

cd nginx-1.14.0/

Configurez le nginx 1.14.0 en utilisant les paramètres ci-dessous.

./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --modules-path=/usr/lib64/nginx/modules \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --pid -path=/var/run/nginx.pid \
            --lock-path=/var/run/nginx.lock \
            --user=nginx \
            --group=nginx \
            --build=CentOS \
            --builddir=nginx-1.14.0 \
            --with-select_module \
            --with-poll_module \
            - -with-threads \
            --with-file-aio \
            --with-http_ssl_module \
            --with-http_v2_module \
            --with-http_realip_module \
            --with-http_addition_module \
            --with-http_xslt_module=dynamic \
            --with-http_image_filter_module=dynamic \
            --with-http_geoip_module=dynamic \
          --with-http_sub_module \
            --with-http_dav_module \
            --with-http_flv_module \
            --with-http_mp4_module \
            --with-http_gunzip_module \
--with-http_gzip_static_module \
            --with-http_auth_request_module \
            --with-http_random_index_module \
            --with-http_secure_link_module \
            --with-http_degradation_/>module \
--with-http_slice_module \
            --with-http_stub_status_module \
            --http-log-path=/var/log/nginx/access.log \
            --http-client-body -temp-path=/var/cache/nginx/client_temp \
            --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
            --http-fastcgi-temp-path =/var/cache/nginx/fastcgi_temp \
            --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
            --http-scgi-temp-path=/var/ cache/nginx/scgi_temp \
            --with-mail=dynamic \
            --with-mail_ssl_module \
            --with-stream=dynamic \
            --with-stream_ssl_module \
            --with-stream_realip_module \
            --with -stream_geoip_module=dynamic \
            --with-stream_ssl_preread_module \
            --with-compat \
            --with-pcre=../pcre-8.42 \
            --with- pcre-jit \
            --with-zlib=../zlib-1.2.11 \
            --with-openssl=../openssl-1.1.0h \
            --with- openssl-opt=no-nextprotoneg \
            --add-module=../nginx-rtmp-module \
            --with-debug

Compilez et installez Nginx avec le module RTMP en exécutant les commandes suivantes.

sudo make
sudo make install

Une fois l'installation terminée, nous devons créer un nouveau répertoire de module de lien symbolique, créer un nouvel utilisateur et groupe nginx et créer un nouveau répertoire de cache nginx.

Créez le module de lien symbolique nginx vers le répertoire de configuration '/etc/nginx'.

sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules

Créez un nouvel utilisateur et groupe système "nginx".

sudo useradd -r -d /var/cache/nginx/ -s /sbin/nologin -U nginx

Créez maintenant un nouveau répertoire de cache Nginx '/var/cache/nginx' et changez le propriétaire du répertoire en utilisateur et groupe 'nginx'.

mkdir -p /var/cache/nginx/
chown -R nginx:nginx /var/cache/nginx/

Testez la configuration de nginx et la version de nginx installée.

nginx -t
nginx -V

Et voici le résultat.

Le serveur Web Nginx a été installé sur CentOS 7 avec le module RTMP activé.

Étape 4 - Configurer Nginx en tant que service

Dans ce didacticiel, nous allons exécuter nginx en tant que service et nous devons créer un nouveau fichier de service nginx dans le répertoire de service systemd.

Allez dans le répertoire '/lib/systemd/system' et créez un nouveau fichier 'nginx.service' en utilisant vim.

cd /lib/systemd/system/
vim nginx.service

collez la configuration ci-dessous.

[Unit]Description=nginx - serveur Web haute performanceDocumentation=https://nginx.org/en/docs/After=network-online.target remote-fs.target nss-lookup.targetWants=network-online.target [Service]Type=forkingPIDFile=/var/run/nginx.pidExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.confExecStart=/usr/sbin/nginx -c /etc/nginx/nginx. confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s TERM $MAINPID[Install]WantedBy=multi-user.target

Enregistrez et quittez.

Maintenant, rechargez le système systemd.

rechargement du démon systemctl

Démarrez le service nginx et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl démarrer nginx
systemctl activer nginx

Le serveur Web Nginx est opérationnel en tant que service sur le système CentOS 7.

Étape 5 - Configurer le module Nginx RTMP

Dans cette étape, nous allons créer une nouvelle configuration Nginx personnalisée pour le module RTMP.

Accédez au répertoire de configuration '/etc/nginx' et sauvegardez le fichier 'nginx.conf' d'origine.

cd /etc/nginx/
mv nginx.conf nginx.conf.asli

Créez maintenant une configuration personnalisée 'nginx.conf'.

vim nginx.conf

Collez la configuration Nginx RTMP ci-dessous.

worker_processes auto;events { worker_connections 1024;}# Configuration RTMPrtmp { server { listen 1935; # Écoutez sur le port RTMP standard chunk_size 4000 ; # Définissez l'application Application show { live on ; # Activez HLS hls; chemin_hls /mnt/hls/ ; hls_fragment 3 ; hls_playlist_length 60 ; # désactiver la consommation du flux de nginx car rtmp deny play all ; } }}http { sendfile désactivé ; tcp_nopush activé ; aio activé ; direction 512 ; default_type application/octet-stream ; serveur { écouter 8080 ; location / { # Désactiver le cache add_header 'Cache-Control' 'no-cache'; # Configuration CORS add_header 'Access-Control-Allow-Origin' '*' toujours ; add_header 'Access-Control-Expose-Headers' 'Content-Length'; # autoriser les demandes de contrôle en amont CORS if ($request_method ='OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Max-Age' 1728000 ; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Longueur du contenu' 0 ; retour 204 ; } types { application/dash+xml mpd ; application/vnd.apple.mpegurl m3u8; vidéo/mp2t ts ; } racine /mnt/; } }}

Enregistrez et quittez.

Ensuite, nous devons créer un nouveau répertoire pour la configuration HLS et nous avons défini le répertoire racine Web dans le répertoire '/mnt'.

Créez le répertoire 'hls' sous le répertoire '/mnt' et changez le propriétaire du répertoire en utilisateur et groupe nginx.

mkdir -p /mnt/hls
chown -R nginx:nginx /mnt/hls

Testez la configuration et redémarrez le service nginx.

nginx -t
systemctl redémarre nginx

Étape 6 - Configurer le premier flux en direct RTMP

Dans ce didacticiel, nous allons créer un nouveau flux vidéo RTMP à la demande à l'aide des vidéos mp4 sur le serveur et créer un nouveau flux RTMP en direct qui sera diffusé à partir de l'ordinateur local à l'aide du logiciel OBS.

Allez dans le répertoire de configuration '/etc/nginx' et modifiez le fichier 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Collez les configurations ci-dessous dans le crochet 'rtmp { ... }'.

 # Vidéo RTMP à la demande pour l'application de fichiers mp4 vod { play /mnt/mp4s; } # Flux RTMP utilisant le flux d'application OBS { en direct ; } 

Enregistrez et quittez.

Créez maintenant un nouveau répertoire 'mp4s' pour stocker toutes les vidéos vod et changez le propriétaire en groupe d'utilisateurs nginx.

mkdir -p /mnt/mp4s
chown -R nginx:nginx /mnt/mp4s

Testez la configuration de nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service nginx.

nginx -t
systemctl redémarre nginx

La configuration Nginx pour le flux en direct RTMP et le flux vod est terminée.

Étape 7 - Tester

Testez le flux en direct RTMP et le flux vod à l'aide du lecteur VLC.

Flux vidéo à la demande

Ouvrez l'application VLC sur votre ordinateur.

Cliquez sur le menu 'Fichier' choisissez l'option 'Ouvrir le réseau'.

Tapez maintenant l'URL RTMP de notre flux vod.

rtmp://192.168.1.10:1935/vod/file.mp4

Cliquez sur le bouton "Ouvrir".

Et voici les résultats du flux vidéo.

Diffusion en direct avec OBS (Open Broadcaster Software)

Dans ce didacticiel, nous allons tester le flux en direct RTMP à l'aide du logiciel obs et du lecteur vlc.

Nous diffuserons uniquement la fenêtre du terminal à l'aide du logiciel de diffusion ouvert et essaierons de regarder le flux en direct RTMP à l'aide du lecteur VLC.

Voici ma configuration pour le logiciel obs.

Ouvrez l'application VLC sur votre ordinateur.

Cliquez sur le menu 'Fichier', choisissez l'option 'Ouvrir le réseau'.

Tapez maintenant l'URL RTMP de notre diffusion en direct.

rtmp://192.168.1.10:1935/stream/

Cliquez sur le bouton "Ouvrir".

Et ce qui suit est le résultat du flux en direct utilisant un diffuseur ouvert via le module nginx rtmp.

L'installation du serveur Web Nginx avec le module RTMP sur CentOS 7 s'est terminée avec succès.


Cent OS
  1. Comment installer WordPress avec Nginx sur CentOS 7

  2. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  3. Comment installer Nextcloud avec Nginx et PHP 7.3 sur CentOS 8

  4. Comment installer phpMyAdmin avec Nginx sur CentOS 7 / RHEL 7

  5. Comment installer Sitemagic CMS sur CentOS 7 – Avec Nginx

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer Nginx avec le module GeoIP

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer Laravel avec Nginx sur CentOS 8

Comment installer Nginx avec le module RTMP sur CentOS 8