Zeichnen Sie einige der Prozesse der Verwendung des Node-Media-Servers auf. Die Umgebung dieses Artikels ist Windows. Dieser Artikel ist für Anfänger geeignet. Verwendete Dinge: Hier einige Punkte (bitte weisen Sie auf etwaige Fehler hin): Node-Media-Server ist ein Streaming-Media-Server. Man kann ihn sich als eine Transitstation vorstellen, die dazu dient, das Stream-Format zu konvertieren oder einige Operationen am Video-Stream durchzuführen und die Stream-Adresse nach außen zu übertragen. ffmpeg wird als Streaming-Tool verwendet, um das Video oder den Videostream, den Sie konvertieren müssen, auf den Streaming-Medienserver zu übertragen. Beim Pulling-Stream wird der Videostream vom Streaming-Server abgerufen, und die Zuschauer sehen ihn, indem sie die vom Streaming-Server veröffentlichte Stream-Adresse abrufen. Wenn Sie es mit einem Videoplayer abspielen, ziehen Sie den Stream. InstallierenDer Node-Media-Server wird auf Basis von Node.Js entwickelt, Sie müssen ihn daher zuerst mit npm installieren. npm installiere Node-Media-Server Schreiben und Ausführen von Node-Media-ServerErstellen Sie eine neue app.js. Und schreiben Sie den folgenden Code, dann führen Sie app.js aus const NodeMediaServer = erfordern('node-media-server'); const konfiguration = { rtmp: Hafen: 1935, Blockgröße: 60000, gop_cache: wahr, Ping: 60, ping_timeout: 30 }, http: { Port: 8000, allow_origin: '*', } }; var nms = neuer NodeMediaServer(Konfiguration) nms.run(); Sie können auf die Adresse localhost:8000/admin zugreifen, um auf die Node-Media-Server-Verwaltungsschnittstelle zuzugreifen. Die Screenshots sind wie folgt: Verwenden Sie den FFmpeg-Befehl, um die Adresse zu pushen.Pushen von Videodateien Wenn Sie den folgenden Code ausführen, müssen Sie den Node-Media-Server starten. ffmpeg -re -i ./video.mp4 -c copy -f flv rtmp://localhost:1935/live/STREAM_NAME Der obige Befehl generiert zwei Stream-Adressen, nachdem er den Node-Media-Server durchlaufen hat. Eine Art RTMP. Ein flv. Ersteres kann auf einem Computer gespielt werden, Letzteres sowohl auf einem Mobiltelefon als auch auf einem Computer. Die RTMP-Adresse ist die Befehlsadresse in FFmpeg Die FLV-Adresse lautet: http://localhost:8000/live/STREAM_NAME.flv RTSP-Stream pushenUm RTSP (Kamera-Videostream) zu pushen, ändern Sie einfach das obige ./video.mp4. Während des Tests stellte der Blogger fest, dass das Pushen von RTSP-Streams entweder zu einem grünen Bildschirm oder zu Paketverlusten führte. Insbesondere in Kombination mit HLS war die Paketverlustrate sogar noch höher. Daher wird die Verwendung von Befehlen zum Pushen von RTSP-Streams nicht empfohlen. Konvertieren Sie das HLS-Stream-FormatBeachten Sie beim Konvertieren von HLS-Streams, dass Sie den Mediaroot-Parameter angeben müssen. Obwohl der Standardwert im Node-Media-Server festgelegt ist, wird dennoch empfohlen, ihn einmal festzulegen. Verwenden Sie dann die folgende Konfiguration. const NodeMediaServer = erfordern('node-media-server'); const ff = erfordern('ffmpeg'); const konfiguration = { rtmp: Hafen: 1935, Blockgröße: 60000, gop_cache: wahr, Ping: 60, ping_timeout: 30 }, http: { Port: 8979, mediaroot: './media/', // Es wird empfohlen, allow_origin: '*' zu schreiben, }, trans: { // Der Parameter hier ist der Trans-Parameter, nicht der Relay-Parameter. Die HLS-Konfiguration im Relay-Parameter ist ungültig ffmpeg: './bin/ffmpeg.exe', //Geben Sie den FFmpeg-Standort an tasks: [ { App: 'live', ac: "ac", vc: "libx264", hls: stimmt, hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]', Bindestrich: wahr, dashFlags: '[f=dash:Fenstergröße=3:extra_Fenstergröße=5]' } ] } }; var nms = neuer NodeMediaServer(Konfiguration) nms.run(); Nachdem Sie den obigen Code gestartet haben, verwenden Sie FFmpeg, um den Stream zu pushen. Nach einer Weile werden Sie feststellen, dass im Verzeichnis, auf das mediaroot verweist, ein Ordner live/STREAM_NAME generiert wird, der die m3u8-Datei enthält. Da zunächst die m3u8 Datei erzeugt werden muss, kommt es bei einer Streaming Kamera zu einer relativ großen Verzögerung. Die m3u8-Adresse lautet: http://localhost:8000/live/STREAM_NAME/index.m3u8 Wenn bei der M3U8-Wiedergabe Probleme auftreten, versuchen Sie, die Parameter „ac“ und „vc“ zu entfernen. Der OP hat diese beiden Parameter in der Praxis nicht verwendet. Verwenden Sie Code, um RTSP zu streamenFür einige Benutzer kann es erforderlich sein, den Videostream der RTSP-Kamera zu pushen, um eine Cross-End-Vorschau zu erhalten. Der Blogger empfiehlt diese Methode. Bei dieser Methode muss zum Ausführen des FFmpeg-Befehls nicht cmd verwendet werden. Beim Test des Bloggers betrug die Verzögerung 3 Sekunden (Intranet, da keine externe Netzwerkadresse vorhanden ist, ist das externe Netzwerk nicht sehr klar). Weniger Verzögerung. Der Code lautet wie folgt: const NodeMediaServer = erfordern('node-media-server'); const konfiguration = { rtmp: Hafen: 1935, Blockgröße: 60000, gop_cache: wahr, Ping: 60, ping_timeout: 30 }, http: { Port: 8979, Medienstamm: "./media/", allow_origin: '*', }, Relais: { ffmpeg: './bin/ffmpeg.exe', Aufgaben: { App: 'live', Modus: "statisch", Rand: 'rtsp://admin:****@192.168.4.167:554/Streaming/Channels/101', //rtsp Name: "Technologie", rtsp_transport: "tcp", //["udp", "tcp", "udp_multicast", "http"] } ] }, }; var nms = neuer NodeMediaServer(Konfiguration) nms.run(); Mit dieser Methode können zwei Videostreams generiert werden, ein RTMP- und ein FLV-Stream. ZusammenfassenWeil der Blogger einen Streaming-Media-Server hauptsächlich für das Projekt zur Übertragung des Kamera-Streams erstellt hat, die JAVA-Kollegen sich jedoch zuvor damit befasst hatten und feststellten, dass dies viele Hardwareressourcen verbrauchen würde. Der Blogger konnte jedoch nicht herausfinden, wie viele Ressourcen bei Verwendung des Node-Media-Servers verbraucht wurden, sodass noch spezifische Tests erforderlich sind. Um unnötigen Leistungsverbrauch beim Kamera-Streaming zu vermeiden, beabsichtigt der OP außerdem, den Server die Streaming-Media-Umschaltfunktion (mit Code zum Umschalten des RTSP-Streams) nur starten zu lassen, wenn der Beobachter die Vorschau initiiert. Wenn der Beobachter die Vorschau schließt, wird die Streaming-Media-Funktion sofort deaktiviert. Dadurch wird unnötiger Leistungsverbrauch vermieden. Schließlich kann es direkt über Code bedient werden, was bequemer ist und auch den Server etwas entlasten kann. Dies ist das Ende dieses Artikels über die Verwendung von Node-Media-Server zum Erstellen eines einfachen Streaming-Media-Servers. Weitere Informationen zur Verwendung von Node-Media-Server zum Erstellen eines Streaming-Media-Servers finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des geplanten Ausführungsbefehls von Crontab unter Linux
>>: So fügen Sie einer großen Datentabelle in MySQL Felder hinzu
Entwicklungsumgebungsfenster Entwicklungstools Vi...
Es zeigt hauptsächlich, wie X-Frame-Options, X-XS...
Inhaltsverzeichnis 1. Projektbeschreibung 2. Ngin...
Offizielle Docker-Dokumentation: https://docs.doc...
1. Hintergrundausführung Im Allgemeinen werden Pr...
Pure js implementiert eine mit einem Klick bearbe...
1. Einleitung Beim Schreiben einer Seite stoßen w...
Szenarioanforderungen 1. Wir können die Skriptfun...
MySQL-Abfragedaten aus einer Tabelle und Einfügen...
So ändern Sie das MySQL-Tabellenpartitionierungsp...
So verwenden Sie CSS, um die Bogenbewegung von El...
Inhaltsverzeichnis Beim Einrichten einer MySQL-Ma...
VMware Workstation ist eine leistungsstarke virtu...
Vorwort Aufgrund der unterschiedlichen Codiergewo...
js-Ausführung Phase der lexikalischen Analyse: um...