Maison > Article > développement back-end > Comment utiliser Thinkphp pour créer une diffusion Web en direct
Ce projet utilise la solution architecturale de TP+Redis+Nginx+nginx-rtmp-module+ffmpeg+HLS +Swoole
Il existe deux principaux types de serveurs rtmp, commerciaux et open source. Les commerciaux prennent en charge plus de fonctions que les open source. Vous pouvez choisir en fonction de vos besoins
Les commerciaux incluent FMS Wowza
Serveur RTMP open source
red5 java java Après l'avoir beaucoup utilisé, les performances sont plutôt bonnes !
crtmpserver c++ prend en charge plusieurs protocoles rtmp, appareils mobiles et protocoles réseau liés à l'IPTV http://www.rtmpd.com/ Erlyvideo erlong a des versions open source et commerciales https//github.com /erlyvideo/erlyvideo h
aXeVideo haXe Un serveur expérimental et léger http://code.google.com/p/haxevideo/
FluorineFx .Net A définir http://www/fluorinefx.com
nginx-rtmp c le module nginx prend en charge rtmp et HLS https://github.com/ arut/nginx-rtmp -module
J'utilise le cinquième Nginx-rtmp Ensuite, j'expliquerai le processus d'installation.
1. Téléchargez nginx-rtmp-module : L'adresse github officielle de nginx-rtmp-module : https://github.com/arut/nginx-rtmp- module
Utilisez la commande :
git clone https://github.com/arut/nginx-rtmp-module.git
Téléchargez nginx-rtmp-module sur Linux.
2. Installez nginx : Le site officiel de nginx est : http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.8.1.tar.gz tar -zxvf nginx-1.8.1.tar.gz cd nginx-1.8.1 ./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module make && make install
Le répertoire d'installation par défaut est : /root, ajoutez -module est le chemin du fichier nginx-rtmp-module téléchargé. Lors de l'installation, une erreur peut être signalée indiquant que openssl n'est pas installé. Vous devez exécuter la commande :
yum -y install openssl openssl-devel
3. Modifiez le fichier de configuration nginx :
vi /usr/local/nginx/conf/nginx.conf
. Ajoutez le contenu suivant :
rtmp { server { listen 1935; #监听的端口 chunk_size 4000; application hls { #rtmp推流请求路径 live on; hls on; hls_path /usr/share/nginx/html/hls; hls_fragment 5s; } } }
hls_path nécessite des autorisations de lecture et d'écriture. Modifier le module serveur en http :
server {listen 81;server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
Bien entendu, root peut le modifier selon vos propres besoins. Ensuite, démarrez nginx :
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4. Démarrez le streaming Après avoir terminé la configuration ci-dessus, vous pouvez démarrer le streaming. Nous pouvons utiliser obs pour pousser le flux.
Remplissez les informations dans Paramètres-> Streaming : l'URL est rtmp://xxx:1935/hls, xxx est l'adresse IP de votre serveur, et hls est de stocker des médias en streaming. Vous pouvez remplir n'importe quelle clé secrète pour identifier le média de streaming à lire lors de la lecture, comme remplir un test, etc. Après avoir rempli, cliquez pour démarrer la diffusion, ce qui signifie que notre serveur multimédia de diffusion en continu a été configuré avec succès.
5. Regarder une diffusion en direct (pull stream) Regarder une diffusion en direct est relativement simple. Vous pouvez simplement utiliser la balise vidéo de h5 pour regarder. Vous pouvez visiter http://xxx:81/hls/mystream.m3u8 pour regarder la diffusion en direct, où xxx est l'adresse IP de votre serveur, ou utiliser
Votre navigateur ne prend pas en charge la vidéo HTML5.
Comme ci-dessus, ce que xxx écrit est l'adresse IP de votre serveur. Utilisez ensuite votre téléphone mobile pour accéder à ce site Web et regarder la diffusion en direct. Le délai est d'environ 20S. (Il peut être visualisé normalement dans le navigateur Safari d'iOS) Écrit à la fin Pourquoi le retard est-il si élevé ? En effet, le serveur découpe le flux vidéo en petits fichiers se terminant par .ts.
Ce à quoi nous accédons est le fichier .m3u8. Le contenu de ce fichier est une série de fichiers ts connectés entre eux. Cela permet d'obtenir un effet de lecture, il ressemble donc à là. est un délai important
S'il n'y a aucun moyen de réduire le délai, vous pouvez définir la taille de génération de tranche et la vitesse d'accès, mais cela augmente considérablement la pression sur le serveur. Bien sûr, nous pouvons également utiliser des outils de streaming rtmp (VLC, etc.) pour regarder la diffusion en direct. Le délai est d'environ 2 à 5 secondes et l'adresse pull est la même que l'adresse push.
Utilisant Bootstrap3 pour personnaliser précisément lyui, en plus d'avoir une expérience bootstrap à 100%, il intègre également plus. composants frontaux adaptés aux Chinois. Et un ensemble de codes s’adapte à plusieurs tailles d’écran.
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!