Maison > Article > Opération et maintenance > Comment nginx utilise le module nginx-rtmp-module pour implémenter la fonction de salle de diffusion en direct
Environnement système
wujianjun@wujianjun-work ~ $ uname -a linux wujianjun-work 4.10.0-37-generic #41~16.04.1-ubuntu smp fri oct 6 22:42:59 utc 2017 x86_64 x86_64 x86_64 gnu/linux
Environnement logiciel
obs (logiciel de diffusion ouvert) v20.0.1 (linux)
version nginx : nginx/1.13.6
construite par gcc 5.4.0 20160609 (ubuntu 5.4.0-6ubuntu1~16.04 .5)
construit avec openssl 1.0.2g 1 mars 2016
support tls sni activé
configurer les arguments : –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11
Installation et configuration de nginx+obs Installez obs
wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install ffmpeg wujianjun@wujianjun-work ~ $ sudo apt-get install obs-studio wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:obsproject/obs-studio wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install obs-studio
nginx et installez le module rtmp
nginx-rtmp-module ( )
wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential wujianjun@wujianjun-work ~ $ wget wget http://nginx.org/download/nginx-1.13.6.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf v1.1.11.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf pcre-8.38.tar.gz wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all 总用量 748 drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:39 . drwxr-xr-x 63 wujianjun wujianjun 4096 10月 15 11:33 .. drwxr-xr-x 6 wujianjun wujianjun 4096 10月 15 11:33 auto -rw-r--r-- 1 wujianjun wujianjun 282456 10月 10 23:22 changes -rw-r--r-- 1 wujianjun wujianjun 430416 10月 10 23:22 changes.ru drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 conf -rwxr-xr-x 1 wujianjun wujianjun 2502 10月 10 23:22 configure drwxr-xr-x 4 wujianjun wujianjun 4096 10月 15 11:33 contrib drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 html -rw-r--r-- 1 wujianjun wujianjun 1397 10月 10 23:22 license drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 man drwxrwxr-x 6 wujianjun wujianjun 4096 2月 13 2017 nginx-rtmp-module-1.1.11 drwxr-xr-x 7 wujianjun wujianjun 4096 11月 23 2015 pcre-8.38 -rw-r--r-- 1 wujianjun wujianjun 49 10月 10 23:22 readme drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:33 src wujianjun@wujianjun-work ~/nginx-1.13.6 $ ./configure --with-pcre=pcre-8.38 --add-module=nginx-rtmp-module-1.1.11 wujianjun@wujianjun-work ~/nginx-1.13.6 $ make && sudo make install wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all /usr/local/nginx/ 总用量 24 drwxr-xr-x 6 root root 4096 10月 15 16:11 . drwxr-xr-x 11 root root 4096 10月 15 16:11 .. drwxr-xr-x 2 root root 4096 10月 15 16:11 conf drwxr-xr-x 2 root root 4096 10月 15 16:11 html drwxr-xr-x 2 root root 4096 10月 15 16:11 logs drwxr-xr-x 2 root root 4096 10月 15 16:11 sbin
Ajouter la configuration du protocole rtmp
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf
Ajoutez la configuration du protocole rtmp suivante à la fin du nginx. conf file
rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } }
Start & Test
Start nginx
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx
Start obs
Ouvrez le logiciel obs nouvellement installé, configurez la source push de l'image à la source (je choisis la capture de fenêtre ici), cliquez sur "Paramètres" dans le coin inférieur droit, comme indiqué ci-dessous Configurez l'adresse push de streaming
Une fois la configuration terminée, cliquez sur "Démarrer le streaming"
Démarrez le lecteur vidéo qui prend en charge la lecture en streaming réseau (la démonstration utilise le lecteur vlc)
Configurez l'adresse pour la lecture en streaming réseau, comme indiqué ci-dessous :
Après avoir cliqué sur "Play", attendez quelques secondes et vous verrez le lecteur afficher l'image capturée par obs.
Étant donné que le flux vidéo doit être transmis via le réseau, il y aura un retard de plusieurs secondes dans l'image en direct.
Accès http à la vidéo en direct
1. Modifiez la configuration dans nginx.conf, ajoutez la configuration hls (hls est un dossier utilisé pour stocker les médias en streaming dans le serveur multimédia en streaming) et définissez le répertoire où se trouve hls sur http. à nouveau le répertoire d'accès au protocole. , la configuration modifiée est la suivante :
rtmp { server { listen 1935; chunk_size 4096; application live { live on; hls on; hls_path /usr/share/nginx/html/hls; hls_fragment 5s; } } } http { server { listen 80; ..... location / { #root html; root /usr/share/nginx/html; index index.html index.htm; } ..... } }
Remarque : l'utilisateur de nginx dans le répertoire où se trouve hls doit avoir l'autorisation d'écriture.
2. Le logiciel Obs configure le nom du flux d'enregistrement
Sous la configuration de l'URL du flux push obs, il y a un endroit pour définir le "nom du flux". Vous pouvez remplir un nom ici (je remplis "test" dans l'exemple ici)
3. Redémarrez les logiciels nginx et obs, et nous pouvons saisir http://ip/hls/test.m3u8 dans le navigateur mobile pour lire la vidéo en direct sur le téléphone mobile. (Le délai de diffusion en direct est un peu important, et l'article sera optimisé ultérieurement)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!