serveur de streaming rtmp

Mettre en place un serveur de streaming  RTMP

Partagez sur:

Dans ce tutoriel vous allez apprendre à mettre en place un serveur de streaming RTMP.

Tout récemment j’avais pour mission de mettre en place un serveur de streaming personnalisé pour un de mes clients .

C’est quoi le RTMP ?

RTMP signifie Real-Time Messaging Protocol et est une manière courante et standardisée que de nombreux services (tels que YouTube, Twitch, etc.) utilisent, ou au moins proposent, pour diffuser des vidéos en ligne.

Un serveur de streaming RTMP un est serveur media qui permet de diffuser des contenues vidéos ou audios en live sur internet.

Avant je n’avais jamais fais un truc pareil et j’avoue que cette mission a été un vrai challenge pour moi.

Pourquoi un serveur de streaming personnalisé ?

Il faut noter qu’il existe déjà plusieurs plateformes (Facebook, YouTube, Persiscope etc.) et applications qui permettent de faire faire de la diffusion en live sur internet.

Avec ces solutions souvent, non seulement elles sont pas gratuite, on se retrouve aussi pénaliser par beaucoup d’autres contraintes (comme le temps de diffusion, la nature du contenu etc…) , du coup avoir son propre serveur n’est pas mal.

Pré-requis

– Pour mettre en place un serveur de streaming RTMP, dans tutoriel nous allons utiliser un serveur ubuntu 18.04 LTS

– Serveur Nginx

Pour la mise en place du serveur de streaming RTMP, j’ai opté pour une solution open source et gratuite.

Après plusieurs recherches sur internet, une des solutions a attirée mon attention par sa facilité et simplicité d’utilisation c’est le module RTMP du célèbre serveur HTTP Nginx, ce module permet de mettre en place un serveur RTMP solide en profitant robustese de Nginx.

Installer Nginx sur Ubuntu

Avant toute chose nous allons installer Nginx sur notre Ubuntu bien frais.

Nginx est serveur HTTP open source qui permet de gérer les requêtes HTTP, il est parmi les serveurs web les plus utilisés au monde.

Pour installer Nginx sur Ubuntu, il suffit juste d’ouvrir votre terminal et tapez la commande qui suit :

sudo apt-get install nginx

 

Si tout se passe bien sans erreur, cela veut dire que Nginx est bien installé.

Installation des dépendances

Apres l’installation de Nginx, nous avons besoin de certains dependances pour le bon déroulement de la mise en place de notre serveur.

Tapez le code qui suit dans votre terminal :

sudo apt-get install libnginx-mod-rtmp ffmpeg mediainfo
Une fois que les dépendances bien installés nous pouvons maintenant passer à la configuration de notre serveur.

Configuration
du serveur RTMP

Dans ce projet nous n’allons pas enregistrer la vidéo transmise sur le serveur, sinon si c’était le cas, nous étions obliger de créer un dossier de sauvegarde sur le serveur et pointer sur ce dossier la configuration du serveur.

Pour ouvrir le fichier de configuration de nginx , tapez la commande ci-dessous dans votre terminal :

sudo nano /etc/nginx/nginx.conf

Cette commande permet d’ouvrir le fichier de configuration de nginx. Nous allons importer et ajouter la configuration pour le RTMP.

Ajouter le code qui suit dans le fichier :

 

rtmp {

    server {

         listen 1935;
         chunk_size 4096;
         notify_method get;

         application live {
              live on;
              interleave on;
              hls on;
              hls_fragment 15s;
              record off;

       }

    }

}

 

 

Et le code suivant dans section server du fichier :

location /live {

               types {

                    application/vnd.apple.mpegurl m3u8;
             }
          add_header Cache-Control no-cache;
}

 

Le fichier final ressemble à ceci :

user www-data;

worker_processes auto;

pid /run/nginx.pid;

include /etc/nginx/modules-enabled/*.conf;

events {

worker_connections 768;

# multi_accept on;

}

rtmp {

server {

listen 1935;

chunk_size 4096;

notify_method get;

application live {

live on;

interleave on;




hls on;




hls_fragment 15s;

record off;

}

}




}

http {

##

# Basic Settings

##

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

types_hash_max_size 2048;

# server_tokens off;

# server_names_hash_bucket_size 64;

# server_name_in_redirect off;

include /etc/nginx/mime.types;

default_type application/octet-stream;

##

# SSL Settings

##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE

ssl_prefer_server_ciphers on;

##

# Logging Settings

##

access_log /var/log/nginx/access.log;

error_log /var/log/nginx/error.log;

##

# Gzip Settings

##

gzip on;

# gzip_vary on;

# gzip_proxied any;

# gzip_comp_level 6;

# gzip_buffers 16 8k;

# gzip_http_version 1.1;

# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/jav$

##

# Virtual Host Configs

##

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

server {

listen 8080;

server_name _;

location / {

root html;

index index.html index.htm;

}

# the http end point our web based users connect to see the live stream

location /live {

types {

application/vnd.apple.mpegurl m3u8;

}

alias /var/www/hls/live;

add_header Cache-Control no-cache;

}

}

}

 

Fermer le fichier de configuration et n’oublier pas d’enregistrer.

Tapez commande suivant pour redémarrer le serveur Nginx.

Sudo service nginx restart

 

Pour tester la diffusion, vous pouvez n’importe quel logiciel qui permet de faire la diffusion, j’utilise OBS qui est un logiciel complet pour faire de la diffusion en streaming.


Partagez sur: