Création D'un Deb De Nginx-Rtmp
Avoir un serveur RTMP avec nginx c’est bien, pourrir sa distro avec des fichiers qui traînent un peu de partout, c’est moins bien.
Pour cela on va partir d’un tuto piqué à cette URL: https://wiki.debian.org/DhyanNataraj/RtmpVideoStreamingViaNginx
L’idée est de télécharger le paquet source de ubuntu/debian puis de recompiler nginx avec le module RTMP pour pouvoir faire de la vidéo.
Téléchargement des sources pour la compilation
La première étape consiste à créer un répertoire afin de travailler tranquillement. Le paquet Debian crée beaucoup de fichiers, cela évite de mettre le souk dans votre dossier.
$ mkdir nginx_rtmp
$ cd nginx_rtmp
# on récupére les tools pour la compilation, (ffmpeg pour debian)
$ sudo apt-get install build-essential devscripts libav-tools
# Dependances pour pouvoir construire NGINX
$ sudo apt-get build-dep nginx
Il est temps de DL les sources .deb de nginx. Il n’est pas nécessaire (ni recommandé) de le télécharger en sudo.
$ apt-get source nginx
Il faut ensuite récupérer le dernier module pour nginx-rtmp à cette adresse -> https://github.com/arut/nginx-rtmp-module/releases (v1.1.6 à l’heure actuelle)
$ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.6.tar.gz
$ tar xvf v1.1.6.tar.gz
Modification du fichier de création du deb
Commencez par créer un dossier pour le module RTMP dans les sources de nginx.
$ mkdir nginx-1.4.6/debian/modules/nginx-rtmp-module
$ cp -r nginx-rtmp-module-1.1.6/* nginx-1.4.6/debian/modules/nginx-rtmp-module
Il est temps de sortir son plus bel éditeur de texte pour pouvoir modifier le fichier de build et intégrer le module RTMP dans le process de build. Veuillez éditer le fichier: nginx-1.4.6/debian/rules
Trouvez la section config.status.full contenant ces lignes:
--add-module=$(MODULESDIR)/nginx-auth-pam \
--add-module=$(MODULESDIR)/nginx-echo \
--add-module=$(MODULESDIR)/nginx-upstream-fair \
--add-module=$(MODULESDIR)/nginx-dav-ext-module \
Ajoutez à la fin:
--add-module=$(MODULESDIR)/nginx-rtmp-module \
Éditez ensuite le fichier nginx-1.4.6/debian/source/include-binaries et ajoutez ces lignes:
debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPlayer.swf
debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPublisher.swf
debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPlayerLight.swf
debian/modules/nginx-rtmp-module/test/www/bg.jpg
debian/modules/nginx-rtmp-module/test/www/jwplayer_old/player.swf
debian/modules/nginx-rtmp-module/test/www/jwplayer/jwplayer.flash.swf
Ce fichier permet d’inclure des binaires dans le package deb.
La création du package se fait par: cd nginx-1.4.6; debuild. Si tout se déroule suivant le plan, dans le répertoire crée, vous devriez trouver des fichiers .deb de nginx. Pour les installer, il suffit de taper:
$ sudo dpkg -i nginx-full_*.deb nginx-common_*.deb
Il est recommandé de virer les anciens packages avant.
Configuration rapide
Éditez votre fichier /etc/nginx/nginx.conf, et ajoutez à la fin:
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
}
}
}
$ sudo nginx -t # Permet de tester le Configuration
$ sudo nginx -s reload # Relance nginx
Vous pouvez utiliser avconv/ffmpeg pour Streamer votre écran:
$ avconv -f x11grab -i :0.0 -s 1920x1080 -c:a libmp3lame -ab 96k -ar 22050 -threads 0 -f flv "rtmp://127.0.0.1/live/test"
$ vlc rtmp:///127.0.0.1/live/test