Vous avez la possibilité de créer un serveur relais qui centralisera la connexion de tous les flux vidéo de votre organisation/entreprise/école/...
Cela permettra d'économiser de la bande passante en n'utilisant qu'un seul flux externe pour tous les utilisateurs de votre réseau interne. La procédure suivante va permettre de configurer ce relais. Celui-ci diffusera les flux en utilisant le protocole HLS qui utilise le protocole HTTP. - Les tests ont été effectués sur une Debian stable à jour.
- Les performances du relais ne sont pas vraiment importantes, seul le débit réseau doit être suffisant.
/!\ Important /!\
Vous devez déclarer votre IP (publique) de relais en envoyant un mail à streaming@nosuchcon.org, afin de pouvoir autoriser le flux.

Installation :

1) Installer Debian Wheezy sur la machine et s'assurer de sa mise à jour (apt-get update && apt-get upgrade).
2) apt-get install build-essential libpcre3 libpcre3-dev libssl-dev unzip
3) wget http://nginx.org/download/nginx-1.7.5.tar.gz
4) wget --no-check-certificate https://github.com/arut/nginx-rtmp-module/archive/master.zip
5) tar zxvf nginx-1.7.5.tar.gz
6) unzip master.zip
7) cd nginx-1.7.5
8) ./configure --add-module=../nginx-rtmp-module-master --with-http_ssl_module
9) make && make install
10) mkdir -p /var/www/stat /var/www/hls /var/www/player
11) cp ../nginx-rtmp-module-master/stat.xsl /var/www/stat/
12) cd -
13) wget http://46.105.42.29/player.tar.gz
14) tar zxvf player.tar.gz -C /var/www/
15) sed -e 's/0.0.0.0/192.168.1.1/g' -i /var/www/player/index.html
(bien entendu, remplacez 192.168.1.1 par l'adresse IP ou hostname que vous aurez attribué au serveur relai)


Nginx est installé dans /usr/local/nginx/. La configuration est dans /usr/local/nginx/conf/nginx.conf.
Pour lancer le serveur : /usr/local/nginx/sbin/nginx Pour stopper le serveur : /usr/local/nginx/sbin/nginx -s stop Des statistiques sont présentes sur : http://IP/stat
Le fichier de configuration à mettre en place est le suivant (à copier dans /usr/local/nginx/conf/nginx.conf) :

#user nobody; worker_processes 1; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 8192; application hls { live on; hls on; hls_path /var/www/hls; hls_nested on; pull rtmp://46.105.42.29/hls/live_low name=live_low static; pull rtmp://46.105.42.29/hls/live_mid name=live_mid static; pull rtmp://46.105.42.29/hls/live_hi name=live_hi static; hls_variant _low BANDWIDTH=512000; hls_variant _mid BANDWIDTH=1024000; hls_variant _hi BANDWIDTH=2048000; allow publish 127.0.0.1; deny publish all; allow play all; } } } # HTTP can be used for accessing RTMP stats http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; # This URL provides RTMP statistics in XML location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /var/www/stat/; } location /hls { # Serve HLS fragments types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www; add_header Cache-Control no-cache; } location / { root /var/www/player; add_header Cache-Control no-cache; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } Pour toute question : streaming@nosuchcon.org