So einfach wie möglich über RTMP-Stream über HTTP veröffentlichen

614
Marko

Ich bin auf der Suche nach einer einfachen Frei- / Open-Source-Serversoftware, mit der ich Folgendes tun könnte: Veröffentlichen Sie den Videostream über RTMP vom lokalen Computer hinter NAT auf den Server (Linux). Der Server sollte diesen Stream über http und / oder rtmp bereitstellen. Es ist momentan nicht erforderlich, auf mehreren Clients zu arbeiten.

Ich habe crtmpserveroder versucht rtmpd, aber es gibt keine Dokumentation dafür und ich weiß nicht, wie ich diese spezifische Konfiguration einrichten soll. Ich habe es aber versucht, aber kein Erfolg. Ich habe es geschafft, Stream mit OBS zu veröffentlichen (oder zumindest schien es mir so), konnte aber keinen Weg finden, ihn abzuspielen. Wenn Sie mir bei der Konfiguration helfen können, wäre das eine gute Lösung.

Ich habe es versucht, rtmpliteaber es funktioniert nicht. Ich habe keinen Stream veröffentlicht.

Ich habe es ant media server(basierend auf Red5) ausprobiert und war erfolgreich, aber es scheint ziemlich langsam zu sein, stört die ganze Zeit mit 50 MBit / s Upload und Download und Videos in niedriger Qualität. Und ich mag es nicht, dass die http-Stream-Version zuerst die m3u8-Liste liefert. Wenn Sie Hinweise zur Lösung dieser Probleme haben, wäre das eine gute Lösung.

Ich habe nachgesehen nginx with rtmp module, konnte aber den Weg zum Konfigurieren des HTTP-Downloads eines über RTMP veröffentlichten Streams nicht finden. Wenn Sie mir eine Anleitung geben können, wäre das eine gute Lösung.

Irgendein anderer Server vielleicht?

Vielen Dank!

BEARBEITEN:

Es ist mir gelungen, dies mithilfe des Moduls nginx und BLSS (rtmp) zu erreichen, um den veröffentlichten Stream zu akzeptieren und ihn an VLC weiter zu streamen. VLC akzeptiert einen RTMP-Stream und stellt ihn Clients zur Verfügung, die HTTP verwenden. Das wollte ich jedoch, VLC führt hier eine Verzögerung von 6 Sekunden ein, und es ist komplexer, als wenn man nur eine einzelne Software dafür benötigt. nginx führt keine Verzögerung ein, und ich würde mich freuen, wenn ich die Verzögerung von VLC mindestens auf 3 Sekunden reduzieren könnte. VLC-Befehl, den ich verwende:

cvlc "rtmp://address:port/stream" --sout "#standard"

Verzögerung ist ein größeres Problem als Komplexität. Ich habe Nginx mit HLS ausprobiert, aber es wurde eine Verzögerung von über 15 Sekunden eingeführt und .m3u8 bedient, die ich aus bestimmten Gründen vermeiden möchte.

Vielen Dank.

0

1 Antwort auf die Frage

0
Texxi

Warum möchtest du in http spielen? VLC kann den nativen RTMP-Stream lesen.

Ich benutze nginx, um von OBS zu meinem Linux-Server zu streamen und meinen Live-Desktop-Bildschirm in Full HD für andere Benutzer mit VLC freizugeben.

HTTP and RTMP are two different things. There is no way to transfer RTMP package through HTTP, because if a client sends an HTTP request, the server will return an HTTP response and then the client would consume HTTP package. In theory, the client can then unpack the HTTP package, but there would require extra work.  A much better solution is using HTTP Live Streaming (HLS). nginx-vod-module supports HLS. It can be easily configured in the config file. When a video is put in the server, the client can use a URL like http://127.0.0.1/vod/sample.mp4/index.m3u8. The Nginx server automatically partitions the video to HTTP package and provide a playlist. So the client can play it. HLS is widely supported by many open source players (for browsers) and mobile devices (both ios and android). And it can be easily configured with HTTPS for secure transformation. 

Quelle

Weil es von Anwendungen verwendet werden sollte, die nur mit http umgehen und sich hinter Firewalls befinden. Ich weiß Ihre Hilfe zu schätzen und denke auch, dass Ihre Antwort ein Kommentar sein sollte. Marko vor 5 Jahren 0
Ich verstehe Ihre Anforderungen und habe meine Antwort aktualisiert. Texxi vor 5 Jahren 0
Ein Client veröffentlicht Stream als RTMP, ein anderer verwendet ihn als HTTP. Marko vor 5 Jahren 0
Das ist nicht möglich, Sir. Sie müssen es konvertieren. Texxi vor 5 Jahren 0
Würden Sie bitte meine obige Antwort bestätigen, wenn ich Ihre Frage gelöst habe? merci. Texxi vor 5 Jahren 0
:) Ich werde meine Frage aktualisieren, da du mich offensichtlich nicht verstehst. Marko vor 5 Jahren 0