La Cave a Tonton - Créer un serveur multistream RTMP pour streamer sur twitch, youtube etc... theta.t" />

Créer un serveur multistream RTMP pour streamer sur twitch, youtube etc...

Par tontonayo le 03.12.20


Depuis peut, je stream sur plusieurs plateforme (twitch et theta.tv ) et il me fallait une solution pour envoyer mon flux vidéo rtmp sur les 2 plateformes en même temps. Il existe déjà des services qui propose ce systeme (restream.io par exemple), le souci c'est que c'est payant du moment que tu ajoute un serveur rtmp à la main (c'est le cas de theta.tv). Comme je suis un gros radin et que j'ai pas envi de payer, je me suis penché sur la question.

Il existe un module pour Nginx qui gere les flux rtmp, on va donc passer par la. Le principe de fonctionnement est que je vais envoyer mon flux vidéo sur le serveur qui ensuite va l'envoyer sur les 2 plateformes (ou plus ...) simultanément. La procédure ci-dessous a été effectué sur une VM sous Debian 10.

1. On installe les dépendances

Aller on attaque par apt comme d'hab.

# apt-get -y update
# apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlibc zlib1g zlib1g-dev git

Ensuite, on télécharge Nginx (versions stable dans l'exemple)

# wget http://nginx.org/download/nginx-1.18.0.tar.gz

On le décompresse

# tar xvfz nginx-1.18.0.tar.gz

On rentre dans le répertoire

# cd nginx-1.18.0

Et on télécharge le module RTMP pour Nginx

# git clone https://github.com/arut/nginx-rtmp-module.git

2. On compile

On configure la compilation, compile et on installe

# ./configure --with-http_ssl_module --add-module=nginx-rtmp-module/
# make
# make install

On lance Nginx pour test

# /usr/local/nginx/sbin/nginx

3. Serveur Multistream

On va dans le fichier de configuration de Nginx "/usr/local/nginx/conf/nginx.conf:" et on édite :

rtmp {
server{
listen 1935;
chunk_size 4096;

#Enable live broadcast service
application live {
live on;
record off;

#Push, restream RTMP
push rtmp://live.twitch.tv/app/YOUR_TWITCH_KEY;
push rtmp://a.rtmp.youtube.com/live2/YOUR_YOUTUBE_KEY;
}
}
}

Et on relance le serveur.

4. Open Broadcaster

Pour se connecter au serveur de stream, il suffit de renseigner l'url de votre serveur comme ceci : "rtmp://SERVER_IP/live/" et avec "stream_key" comme clé de stream.

Inspiré (carrément pompé...) sur : https://arstech.net/how-to-setup-nginx-rtmp-server/


Le pays d'où vous consultez le site n'est pas autorisé a poster des commentaires afin de lutter contre le spams, merci de votre compréhension

Seboss666 31.01.21

Hello, Très intéressant et je garde de côté (tu pourras même tester PeerTube maintenant) Mais par contre, par pitié, merci d'arrêter de proposer la compilation manuelle à tout va, quand les paquets existent pour faciliter la maintenance de sécurité : https://packages.debian.org/buster/libnginx-mod-rtmp

TontonAyo 31.01.21

@Seboss666 Oui je suis d'accord, quand je faisais mes recherche je tombais que sur de la doc ou il fallait compiler et j'ai vu que tardivement que le paquet existait (pas tapé...). Pour ce qui est de Peertube, j'ai un souci. Du moment que je passe par le proxy nginx (qui ne transcode pas!) le lecteur de Peertube "plante" alors que si Peertube transcode ça fonctionne (mais mon cpu serveur est "claqué au sol"). Bien sur en direct ça fonctionne ... J'avais posté sur le forum d'aide mais sans suite. https://framacolibri.org/t/pas-dimage-via-serveur-nginx-rtmp/10620