Dieses Projekt nutzt die Architekturlösung von TP+Redis+Nginx+nginx-rtmp-module+ffmpeg+HLS +Swoole
Es gibt zwei Haupttypen von RTMP-Servern: kommerzielle und Open Source. Kommerzielle unterstützen mehr Funktionen als Open-Source-Server. Sie können je nach Bedarf auswählen
Kommerzielle Server umfassen FMS Wowza
Open-Source-RTMP-Server
red5 java java Nach häufigem Gebrauch ist die Leistung ziemlich gut!
crtmpserver c++ unterstützt mehrere RTMP-Protokolle, mobile Geräte und IPTV-bezogene Netzwerkprotokolle http://www.rtmpd.com/ Erlyvideo erlong verfügt über Open-Source- und kommerzielle Versionen https//github.com /erlyvideo/erlyvideo h
aXeVideo haXe Ein experimenteller, leichter Server http://code.google.com/p/haxevideo/
FluorineFx .Net Zu definieren http://www/fluorinefx.com
nginx-rtmp c Das Nginx-Modul unterstützt RTMP und HLS https://github.com/arut/nginx-rtmp -module
Ich verwende das fünfte Nginx-rtmp. Als nächstes erkläre ich den Installationsprozess.
1. Nginx-rtmp-module herunterladen: Die offizielle Github-Adresse von nginx-rtmp-module: https://github.com/arut/nginx-rtmp- Modul
Verwenden Sie den Befehl:
git clone https://github.com/arut/nginx-rtmp-module.git
Laden Sie das Nginx-RTMP-Modul unter Linux herunter.
2. Nginx installieren: Die offizielle Website von Nginx ist: 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
Das Standardinstallationsverzeichnis ist: /root, add -module ist der heruntergeladene Dateipfad des Nginx-RTMP-Moduls. Während der Installation wird möglicherweise ein Fehler gemeldet, dass openssl nicht installiert ist. Sie müssen den Befehl ausführen:
yum -y install openssl openssl-devel
3. Ändern Sie die Nginx-Konfigurationsdatei:
vi /usr/local/nginx/conf/nginx.conf
Fügen Sie den folgenden Inhalt hinzu:
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 erfordert Lese- und Schreibberechtigungen. Ändern Sie das Servermodul in 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; }
Natürlich kann Root es entsprechend Ihren eigenen Anforderungen ändern. Dann starten Sie nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4. Starten Sie das Streaming. Nachdem Sie die obige Konfiguration abgeschlossen haben, können Sie mit dem Streamen beginnen.
Geben Sie die Informationen unter Einstellungen-> Streaming ein: Die URL lautet rtmp://xxx:1935/hls, xxx ist die IP-Adresse Ihres Servers und hls dient zum Speichern von Streaming-Medien. Sie können einen beliebigen geheimen Schlüssel eingeben, um zu identifizieren, welche Streaming-Medien beim Abspielen abgespielt werden sollen, z. B. beim Ausfüllen von Tests usw. Klicken Sie nach dem Ausfüllen auf „Streaming starten“, was bedeutet, dass unser Streaming-Medienserver erfolgreich eingerichtet wurde.
5. Live-Übertragung ansehen (Pull-Stream) Das Ansehen einer Live-Übertragung ist relativ einfach. Sie können zum Ansehen einfach den Vedio-Tag verwenden. Sie können http://xxx:81/hls/mystream.m3u8 besuchen, um die Live-Übertragung anzusehen, wobei xxx die IP-Adresse Ihres Servers ist, oder
Ihr Browser unterstützt kein HTML5-Video.
Wie oben, was xxx schreibt, ist die IP-Adresse Ihres Servers. Rufen Sie dann mit Ihrem Mobiltelefon diese Website auf, um die Live-Übertragung anzusehen. Die Verzögerung beträgt ca. 20S. (Es kann normal im Safari-Browser von iOS angezeigt werden) Geschrieben am Ende Warum ist die Verzögerung so hoch? Dies liegt daran, dass der Server den Videostream in kleine Dateien mit der Endung .ts zerlegt.
Der Inhalt dieser Datei ist eine Reihe miteinander verbundener ts-Dateien. Dadurch wird ein Wiedergabeeffekt erzielt, sodass es wie dort aussieht ist eine große Verzögerung
Wenn es keine Möglichkeit gibt, die Verzögerung zu reduzieren, können Sie die Größe der Slice-Generierung und die Zugriffsgeschwindigkeit festlegen, aber das erhöht den Druck erheblich Der Server. Natürlich können wir auch RTMP-Streaming-Tools (VLC usw.) verwenden, um die Live-Übertragung anzusehen. Die Verzögerung beträgt etwa 2-5 Sekunden und die Pull-Adresse ist dieselbe wie die Push-Adresse.
Mit Bootstrap3 können Sie Lyui nicht nur 100 %ig anpassen, sondern auch noch mehr Frontend-Komponenten, die für Chinesen geeignet sind. Und ein Codesatz passt sich an mehrere Bildschirmgrößen an.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Thinkphp zum Erstellen von Web-Live-Übertragungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!