n-thumann / IPTV-ReStream

An app to forward source specific multicast streams via HTTP
BSD 3-Clause "New" or "Revised" License
104 stars 36 forks source link

Stream überträgt keinen Inhalt #5

Closed kobaje closed 4 years ago

kobaje commented 4 years ago

Hallo, hier bin ich nochmal, nachdem ich das Webinterface erreiche hängt es nun an der Übertragung des Streams. Wenn ich mittels VLC und der Adresse http:\192.168.2.110:3000\live\87.141.215.251@232.0.20.35:10000 den Stream von meinem Server (192.168.2.110) abrufe wird eine Verbindung aufgebaut aber weder Bild noch Ton übertragen. Das Webinterface zeigt die Verbindung wie im Screenshot an. Webinterface Was mache ich falsch? Vielen dank für die Hilfe!

n-thumann commented 4 years ago

Kannst du in der Senderliste neben einem Sender auf "View Now" klicken? Dann sollte sich ein Downloadfenster deines Browsers öffnen. Lade die Datei herunter und achte darauf, wie viel Daten übertragen werden. Bei z.B. Das Erste HD sollte 1 MB/s (8 MBit/s) als Downloadgeschwindigkeit angezeigt werden. Auf den ersten Blick vermute ich, dass es in Docker ohne Host Networking (--network host) gestartet wurde 😊 Kannst du zudem den Debug Output (App mit Umgebungsvariable DEBUG="iptv-restream:*" starten) posten? ✌️

kobaje commented 4 years ago

Wenn ich view now anklicke bekomme ich "Cannot GET /://127.0.0.1:3000/live/87.141.215.251@232.0.20.35:10000". Selbst wenn ich die seltsame URL auf "127.0.0.1:3000/live/87.141.215.251@232.0.20.35:10000" bekomme ich nur "Warten auf 127.0.0.1...".

Ich habe Docker (Win 10) so "docker run -d --restart always -p 3000:3000 -e HOST="0.0.0.0" --name IPTV-ReStream nthumann/iptv-restream:latest" gestartet.

Wo finde ich das Debug Log? Habe Docker so "docker run -d --restart always -p 3000:3000 -e HOST="0.0.0.0" --name IPTV-ReStream nthumann/iptv-restream:latest DEBUG="iptv-restream:*"" gestartet.

n-thumann commented 4 years ago

Selbst wenn ich die seltsame URL auf "127.0.0.1:3000/live/87.141.215.251@232.0.20.35:10000" bekomme ich nur "Warten auf 127.0.0.1...".

Dieses Verhalten müsste korrekt sein, da dein Browser sich zwar mit dem Server verbindet, dieser aber keine Daten losschickt.

Ich habe Docker (Win 10) so "docker run -d --restart always -p 3000:3000 -e HOST="0.0.0.0" --name IPTV-ReStream nthumann/iptv-restream:latest" gestartet.

Docker unterstützt unter Windows und macOS leider kein Host Networking, sondern nur unter Linux. Deshalb kannst du IPTV-ReStream leider nur ohne Docker betreiben. Die Anleitung dazu findet du hier ✌️

Wo finde ich das Debug Log? Habe Docker so "docker run -d --restart always -p 3000:3000 -e HOST="0.0.0.0" --name IPTV-ReStream nthumann/iptv-restream:latest DEBUG="iptv-restream:*"" gestartet.

Damit die Umgebungsvariable DEBUG richtig erkannt wird, musst du sie vor das Image im Befehl ziehen und mit -e markieren: docker run [...] -e DEBUG="iptv-restream:*" nthumann/iptv-restream:latest. Dann kannst du die Logs mitdocker logs -f IPTV-ReStream` einsehen 😊 Aber wie gesagt: Unter Windows kannst du Docker hier leider nicht verwenden.

kobaje commented 4 years ago

Ok, danke. Dachte mit der Portzuweisung ginge es. Wenn ich es als JS laufen lasse bekomme ich nach "view now": "receiver): Error (receiver): Error: bind EADDRNOTAVAIL 232.0.20.35:10000"

kobaje commented 4 years ago

ich bekomme auch keine Station im Webfront angezeigt wenn ich mit VLC einen Stream abgreifen will. VLC zeigt mir:

Ihre Eingabe konnte nicht geöffnet werden: VLC kann die Medienadresse 'http://192.168.2.110:3000/live/87.141.215.251@232.0.20.35:10000' nicht öffnen. Für Details bitte im Fehlerprotokoll nachsehen.

In der Eingabeaufforderung in der ich das JS gestartet habe bekomme ich:

daserstehd zdfsd daserstesd zdfsd zdfhd zdfsd zdfsd zdfsd 127.0.0.1 - - [11/May/2020:09:25:04 +0000] "GET /live/station/ZDFSD HTTP/1.1" 302 58 "-" "VLC/3.0.8 LibVLC/3.0.8" 127.0.0.1 - - [11/May/2020:09:25:04 +0000] "GET /live/87.141.215.251@232.0.10.234:10000 HTTP/1.1" 500 73 "-" "VLC/3.0.8 LibVLC/3.0.8" 127.0.0.1 - - [11/May/2020:09:25:04 +0000] "GET /live/87.141.215.251@232.0.10.234:10000 HTTP/1.0" 500 73 "-" "VLC/3.0.8 LibVLC/3.0.8"

n-thumann commented 4 years ago

Ich glaube da ist mir ein kleiner Fehler unterlaufen: Kannst hier (https://github.com/n-thumann/IPTV-ReStream/blob/master/src/providers/stream.ts#L19) mal den zweiten Parameter (mcast_group) entfernen, neu transpilieren (tsc) und schauen, ob es dann geht? ✌️

kobaje commented 4 years ago

Optimal, jetzt kann ich mit VLC auf dem Server den Stream abrufen.

Wenn ich das jetzt mit der Adresse "http://192.168.2.110:3000/live/87.141.215.251@232.0.10.234:10000" von einem anderen Rechner im Netzwerk versuche gehts nicht (der server hat die 192.168.2.110). VLC meldet "VLC kann die Medienadresse nicht öffnen".

Firewall des Servers habe ich testweise ausgeschaltet, daran liegt es nicht. Hast du da noch ne Idee?

n-thumann commented 4 years ago

Ist die Umgebungsvariable HOST auf 192.168.2.110 oder 0.0.0.0 gesetzt? Standardmäßig läuft die App nur auf dem Loopback Interface.

kobaje commented 4 years ago

Ich hab an den Variablen nichts geändert. Also muss ich Host auf die IP des Servers setzen? Wo sind die Variablen hinterlegt?

n-thumann commented 4 years ago

In der Windows CMD klappt das meines Wissens nach mit set, also set HOST=192.168.2.110 (bzw. 0.0.0.0, wenn du auf allen Interfaces lauschen willst) und danach npm start ✌️

kobaje commented 4 years ago

Ok, vielen dank. Das hat geklappt. Eigentlich wollte ich den Stream über eine WireGuard Verindung übertragen, um mir den Reverse Proxy zu sparen. das klappt aber leider nicht. Dann werde ich mich jetzt mal mit nginx beschäftigen. Die nächste Frage kommt bestimmt ;-) Vielen Dank soweit

n-thumann commented 4 years ago

Habe es bei mir gerade mit OpenVPN und Wireguard probiert und bei mir klappt es einwandfrei 😊 Hast du auf das richtige Interface geachtet (im VPN hat dein Rechner eine andere IP als die im normalen Netzwerk)?

kobaje commented 4 years ago

Echt? Also geht das doch und ich bin nur schon wieder unfähig. Das war eigentlich der Grund mit dem ganzen Projekt anzufangen. Ich will von Unterwegs die Streams über iPad schauen.

Mein Server hat im WireGuard-Netz die IP 192.168.3.1. Ich habe mein iPad per WG mit dem Server verbunden und versucht per VLC App über http://192.168.3.1:3000/live/87.141.215.251@232.0.10.234:10000 den Stream anzufordern. Ich habe auch die lokale IP versucht. HOST habe ich testweise als 192.168.2.110 (lokale IP), 192.168.3.1 (WG IP) und localhost gesetzt.

Wie du merkst eher Try and Error. Leider bisher nur Error

kobaje commented 4 years ago

Das Problem muss irgendwo bei WG liegen. Wenn ich im lokalen WLAN bin kann ich den Stream über 192.168.3.1:3000/... abrufen wenn ich das Interface per Set HOST auf diese Adresse gesetzt habe.

Ich kann den Server über WG auch anpingen.

n-thumann commented 4 years ago

Es scheint in der Tat an WG zu liegen. Vielleicht HOST auf 0.0.0.0 setzen, um testweise auf allen Interfaces zu lauschen? 🤔 Sind denn andere Dienst des Servers (z.B. Webserver, netcat) über WG erreichbar?

kobaje commented 4 years ago

0.0.0.0 als Host habe ich versucht. Ich kann meinen Router und mein Smart Home Server durch den Tunnel erreichen. Remote Desktop geht auch. Ich habe aber mittlerweile einen nginx reverse proxy (inklusive SSL, BASIC Auth und cloudflare) was für mich schon eine ziemliche Leistung ist :-) Jetzt finde ich leider keinen ordentlichen Streaming Player für iOS. VLC spielt den Stream zwar, aber die Playlisten funktionieren weder als Xspf noch als m3u. Neverending Story

n-thumann commented 4 years ago

Sehr schön! 👏 In der XSPF sind eigentlich nur die einzelnen URLs zu den Streams hinterlegt. Kannst du prüfen, ob die URLs in der XSPF der entsprechen, die bei manueller Eingabe funktioniert?

kobaje commented 4 years ago

Die Playlist funktioniert auf dem Laptop ohne Probleme mit VLC. Nur die iOS Version kommt nicht damit zurecht. Liegt aber an vlc. Finde leider bisher keine andere App die streams mit Playlisten unterstützt.

Am 18.05.2020 um 22:01 schrieb Nicolas Thumann notifications@github.com:

 Sehr schön! 👏 In der XSPF sind eigentlich nur die einzelnen URLs zu den Streams hinterlegt. Kannst du prüfen, ob die URLs in der XSPF der entsprechen, die bei manueller Eingabe funktioniert?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

n-thumann commented 4 years ago

Konntest du das Problem mit VLC unter iOS lösen? Würde die Issue gerne schließen, wenn die Probleme mit IPTV-ReStream behoben sind? ✌️

kobaje commented 4 years ago

Hallo,

Ja, läuft einwandfrei. Habe die App GSE IPTV gefunden und die taugt auch. Nur falls jemand mitliest

Grüße und vielen Dank

Am 29.05.2020 um 14:09 schrieb Nicolas Thumann notifications@github.com:

 Konntest du das Problem mit VLC unter iOS lösen? Würde die Issue gerne schließen, wenn die Probleme mit IPTV-ReStream behoben sind? ✌️

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.