Création D'un Deb De Nginx-Rtmp
Avoir un serveur RTMP avec nginx c’est bien, pourrir sa distro avec des fichiers qui trainent 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 pour pouvoir travailler tranquillement. Le paquet debian crée pas mal de fichiers, cela évite de mette le souk dans votre dossier.
.. code-block:: console
$ 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.
.. code-block:: console
$ 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)
.. code-block:: console
$ 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.
.. code-block:: console
$ 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. Éditez le fichier: nginx-1.4.6/debian/rules
Trouvez la section config.status.full contenant ces lignes:
.. code-block:: bash
--add-module=$(MODULESDIR)/nginx-auth-pam \
--add-module=$(MODULESDIR)/nginx-echo \
--add-module=$(MODULESDIR)/nginx-upstream-fair \
--add-module=$(MODULESDIR)/nginx-dav-ext-module \
Et ajoutez à la fin:
.. code-block:: bash
--add-module=$(MODULESDIR)/nginx-rtmp-module \
Éditez ensuite le fichier nginx-1.4.6/debian/source/include-binaries et ajouter ces lignes:
.. code-block:: bash
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:
.. code-block:: bash
$ 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:
.. code-block:: nginx
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
}
}
}
.. code-block:: console
$ sudo nginx -t # Permet de tester le Configuration
$ sudo nginx -s reload # Relance nginx
Vous pouvez utiliser avconv/ffmpeg pour Streamer votre écran:
.. code-block:: console
$ 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