Live Streaming VLC -> Kodi (Raspi)

  • Moin VLC'ler,


    nachdem ich jetzt drei Tage gegoogelt und gefuddelt habe und mit meiner Zeit auch gerne mal wieder was anderes anfangen würde, bin ich kurz vorm Aufgeben,


    live encodeten Sound vom VLC (Win7) an Kodi (auf Raspberry Pi) zu streamen.

    Ich probiere es per http und per udp. Auf dem Kodi habe ich entsprechende .strm-Dateien, die ich nach dem Start des VLC-Streamings aufrufe. Bei udp klappt es, wenn ich MP3-Dateien streame. dshow:// klappt dagegen nie, trotz aller möglichen versuchten Variationen beim Transcoding. Bei http funktioniert das live Encoden/Transcoden und streamen zwar manchmal, aber unvorhersehbar. An Firewalls o.ä. kann es also auch nicht liegen, denn dann würde es ja nie gehen.


    Grundsätzlich nie funktioniert es, wenn ich die Parameter als Kommandozeile oder per Playlist übergebe. Ich muss im VLC jedesmal im Streaming-"Wizard" alles eintragen, damit es überhaupt geht (mit exakt den gleichen Parametern natürlich). Also, das hier hat z.B. noch nie funktioniert (obwohl das Streaming auch hier ohne Fehlermeldung startet):


    vlc dshow:// :dshow-vdev=none :dshow-adev="Monitor (M-Audio Delta Audiophi" :live-caching=300 --sout=#transcode {vcodec=none,acodec=mp3,ab=64,channels=1,samplerate=44100,afilter=mono}:http{dst=:8080/vlc.mp3} :sout-keep


    Was läuft da falsch? Kennt jemand sich mit Streaming von Live-Content mit dem VLC aus und weiß vielleicht auch, wie man den VLC dazu bringen kann, das über die Kommandozeile tatsächlich auch auszuführen? Ich kann auch gerne noch mehr Einzelheiten zu den probierten Parametern ergänzen.

  • Hallo hans444,


    wäre es Dir möglich, Dein Vorhaben emotionslos und sachlich so zu beschreiben, dass jemand, der nicht sehen kann, was Du machst, trotzdem versteht, um was genau es Dir geht.

    • Was ist mit "live encodeten Sound" gemeint?
    • Was sagt der Satz "Ich probiere es per http und per udp." aus?
    • Was ist mit "entsprechende .strm-Dateien" gemeint?
    • Was streamst Du mit ... dshow:// :dshow-vdev=none :dshow-adev="Monitor (M-Audio Delta Audiophi" ...

    So könnte ich noch weiter fragen.


    MfG, kodela

  • Lieber kodela,


    danke (oder ist das schon zuviel Emotion?) für die schnelle Reaktion. Ich finde meine Anfrage relativ sachlich und für den Einstieg in die Debatte auch schon ganz ordentlich mit Fakten bestückt. Aber nochmal der Reihe nach:


    - Der VLC soll ein Signal vom Audio-Eingang "on-the-fly" encoden und streamen
    - Also so ähnlich wie das Video-Streamen des Desktops, nur als Ton
    - Der VLC hat dafür unter "Medien / Stream..." den Bereich "Aufnahmegerät öffnen"
    - Dort stelle ich Video auf "none", Audio auf mein Sound-Device
    - Dann klicke ich auf "Stream" und "Nächstes"
    - Als "Neues Ziel" gebe ich http an
    - (http ist eins von mehreren verfügbaren Übertragungsprotokollen, udp ist ein anderes)
    - Als "Pfad" gebe ich "/vlc.mp3" an
    - Im nächsten Schritte wähle ich "Transkodierung aktivieren" und in der Liste das Format "Audio - MP3"
    - Dann starte ich den "Stream"
    - Dann zeigt mir der VLC an einer undefinierbar hochzählenden Zeit, dass er am Streamen ist


    - Empfängerseitig gibt es die "entsprechende .strm-Datei"
    - Das ist eine Playlist-Datei (wie .m3u), in der sich einfach nur die IP des Sende-Rechners befindet
    - Also dieser Inhalt: "http://192.168.1.100/vlc.mp3"
    - Starte ich diese "Playlist" auf dem Mediacenter "Kodi", passiert nichts
    - Oder aber es funktioniert einwandfrei - mal so, mal so
    - Wenn ich die o.g. Parameter per Kommandozeile an den VLC übergebe (siehe erster Post), klappt es nie
    - Zum testen kann ich den Stream auch im Browser und auf anderen Geräten aufrufen
    - Es klappt entweder auf allen Clients oder auf keinem
    - Also tippe ich drauf, dass das Problem beim VLC liegt
    - Nur wo?


    Wenn dir die Begriffe http oder udp im Zusammenhang mit Streaming unbekannt sind, überlasse das Antworten vielleicht jemand anderem?

  • Wenn dir die Begriffe http oder udp im Zusammenhang mit Streaming unbekannt sind, überlasse das Antworten vielleicht jemand anderem?


    Hallo hans444


    hm - ja, irgend wie habe ich zwar von den Begriffe http oder udp im Zusammenhang mit Streaming schon einmal etwas gehört. Trotzdem glaube ich, es ist besser, wenn ich das Antworten jemand anderen überlasse.


    MfG, kodela



    Nachtrag:
    Auf meine Frage: "Was sagt der Satz "Ich probiere es per http und per udp." aus?" erwartete ich keine Aufklärung zu den Netzprotokollen http und udp. Ich erwartete Aufklärung darüber, was und wie probiert wird.

  • Hallo Hans444,


    ich möchte mich ungern hier einbringen, aber es ist sicherlich nicht immer einfach die Dinge so zu beschreiben, dass andere es genauso verstehen. Man übersieht leicht das ein oder andere Detail und von Flüchtigkeitsfehlern mal ganz zu schweigen.


    Mir ist aufgefallen, dass in Deinem Skript z.B. eine runde Klammer einen Ausdruck öffnet aber keine runde Klammer abschließt.
    Bsp.: "Monitor (M-Audio Delta Audiophi" oder sollte es heißen: "Monitor (M-Audio Delta Audiophile)"
    Bsp.: auf Serverseite arbeitest Du mit einer Port-Nummer, die auf der Empfängerseite nicht berücksichtigt wird.


    Es sind möglicherweise diese Details die vom Erfolg abhalten. Das kann man aber nur herausfinden, wenn man das eigene Vorgehen möglichst genau beschreibt.
    Probiere doch mal aus, ob die hier genannten Beispiele etwas ändern. Im Fehlerprotokoll (Sender/Empfänger) findet man weitere Hinweise.


    MfG
    Thomas

  • Hallo thweiss,


    danke fürs Einbringen. Ja, es ist schwierig, komplexe Dinge allgemeinverständlich zu beschreiben. Ich wende mich daher an ein Expertenforum.


    Mein Script ist korrekt. Die fehlende schließende Klammer bei der Gerätebezeichnung kommt von der Beschränkung der Zeichenzahl durch Windows. Längere Namen von Geräten schneidet Windows unter bestimmten Verhältnissen ab. VLC gibt den Namen genau so aus.


    Sorry, die Portnummer 8080 steht auch beim Empfänger. Also "http://192.168.1.100:8080/vlc.mp3" - hatte ich beim letzten Post vergessen.


    Aber wie gesagt: Immer wieder mal hat es funktioniert. Daher waren meine Parameter schon korrekt.


    Inzwischen habe ich aber nochwas gefunden und bin der Lösung näher:
    Einstellungen - Alle - Streamausgabe - Zwischenspeichern des Muxer: 0 ms (statt standardmäßig 1500 ms)


    Seitdem geht es auch per Kommandozeile.

  • Hallo Hans444,


    sorry, wir sind hier im VLC-Forum. Das Expertenforum findet man hier: http://experten-forum.org.


    Zum eigentlichen Thema:
    Wenn Du festgestellt hast, dass Live-Streaming mit http bei Dir teilweise funktioniert, aber irgendwie nur unvorhersehbar, dann könnte man vermuten, dass auf dem gleichen Port (:8080, http-Streaming) auf dem Server oder Client oder beiden andere Anwendungen oder Dienste laufen, die den gleichen Port verwenden und sich gegenseitig stören.
    Link zur Port-Belegung in Wikipedia: https://de.wikipedia.org/wiki/…er_standardisierten_Ports


    1) Ändere mal bitte den Port für das http-Streaming und teste dieses Beispiel.
    2) Was steht in den VLC-Fehlerprotokollen?


    Schaue Dir mal bitte das VLC-Fehlerprotokoll auf dem Server und auf dem Client an (Menü Werkzeuge/Meldungen/Ausführlichkeit auf 2-Fehlerdiagnose einstellen).


    Sind die Treiber der angeschlossenen oder eingebauten Hardware (M-Audio Audiophile) aktuell?
    Falls die Hardware über USB-Schnittstelle am Computer angeschlossen ist, sind Probleme mit der Stromversorgung vorstellbar. Mitunter hilft der Wechsel der USB-Schnittstelle am Computer.


    Sind Dein Server und Dein Client per LAN oder WLAN oder Powerline miteinander verbunden?


    MfG
    Thomas

  • Hallo Thomas,


    in meinen Netzwerk geht es recht beschaulich zu. Ich will es zwar nicht ausschließen, glaube aber kaum, dass hier ein großes 8080-Gezerre stattfindet.


    Aber es funktioniert zuverläassig, seitdem ich den Wert für "Zwischenspeichern des Muxer" (VLC - Einstellungen - Alle - Streamausgabe) auf 0 ms gestellt habe. Das hatte ich bei jemandem gelesen, der wohl ein ähnliches problem hatte und mit dem Wert experimentiert hatte.


    Kodi (Empfänger) meldete im Logfile ebenfalls ein Problem beim Demuxing. Das VLC logfile habe ich noch nicht gesehen.


    Also der Haken bei mir war der o.g. Zwischenspeichern-Wert. Mit 0 ms läuft es problemlos per http - auch wenn sich mir der Sinn nicht erschließt. udp klappt zwar weiter nicht, aber die jetzige Lösung reicht mir. Wenn es wieder Probleme auch bei http gibt, probiere ich deine Vorschläge mit den geänderten Ports mal aus und werde berichten.


    Viele Grüße

  • Hallo Hans444,


    danke für die Rückmeldung. Ich bin auch etwas überrascht, dass Deine http-Streaming-Lösung ohne Muxer-Cache im VLC-Player besser läuft als mit. Man erwartet eher das Gegenteil.


    Ich habe zum Thema auch etwas gefunden, aber in englischer Sprache.
    Siehe Link: http://superuser.com/questions…ream-from-pc-to-kodi-xbmc
    Im obigen Beispiel wird der IP-Port 10803 verwendet, der keiner Anwendung zugeordnet ist (http://www.iana.org/assignment…ce-names-port-numbers.txt).


    In Deiner ersten Nachricht hast Du noch geschrieben, dass Du *.mp3 Dateien mit UDP erfolgreich "streamen" kannst. Jetzt aber nicht mehr. Liegt es an der Änderung der Cache-Größe im VLC-Player?


    Hast Du bereits Erkenntnisse aus einer Port-Änderung für das http-Streamen?


    MfG
    Thomas

  • Hallo Thomas,


    das mit UDP habe ich nicht mehr probiert. Senden per HTTP klappt soweit zuverlässig, allerdings NUR per Kommandozeile, NICHT per Playlist.


    Das Phänomen äußert sich z.B. so: Starte ich das Senden per Hand, gebe also im Wizard alles ein, wird korrekt übertragen. In der Playliste erscheint dann "Streaming" als aktueller Track. Speichere ich diese Playliste ab und rufe sie dann mit dem VLC auf, funktioniert die Übertragung - trotz exakt gleicher Daten - nicht. Starte ich VLC mit wieder exakt den gleichen Daten per Kommandozeile, funktioniert es immer. Aber natürlich nur unter der Voraussetzung, dass dieser Muxer-Cache auf 0 steht.

  • Hallo Hans444,


    den von Dir beschriebenen Effekt habe ich auch schon kennengelernt. Möglicherweise ist der von Dir verwendete Kommandozeilen-String nicht exakt an den Vorgaben, die der VLC-Player erwartet. Die Vorgaben des Videolan-Teams sind nicht immer selbst-erklärend und könnten aus meiner Sicht mehr Beispiele enthalten (vgl. https://wiki.videolan.org/Documentation:Streaming_HowTo/Advanced_Streaming_Using_the_Command_Line/).
    Kodela hat hier im Forum einige Beispiele (https://www.vlc-forum.de/index.php/Thread/1867) eingestellt, die man als sehr gute Grundlage zum testen verwenden kann.


    Der VLC-Player bietet über seine Benutzeroberfläche bereits viele Möglichkeiten für die Wiedergabe oder Aufnahme von Audio-/Video-Dateien an. Mit der Kommandozeile stehen jedoch weitaus mehr Möglichkeiten zur Verfügung, die in der Benutzeroberfläche nicht enthalten sind. Hier liegt auch die Schwierigkeit herauszufinden, ob die Befehlseingaben in der Kommandozeile zum gewünschten Ziel führen. Ein Blick in das Fehlerprotokoll kann meist helfen. Oder man durchsucht die VLC-Player Foren nach Lösungen. Mitunter schleichen sind Fehler bzw. Probleme in neue Programmversionen ein, die man z.B. durch testen der eigenen Scripte unter älteren Versionen erkennen kann.


    Du könntest mal versuchen, Dein Script leicht zu verändern und als unterschiedliche Versionen speichern. Danach jeweils Als Wiedergabeliste speichern und die Ergebnisse vergleichen.


    MfG
    Thomas

  • Wie gesagt: Beim Start per Kommandozeile (mit allen Parametern) wird anschließend korrekt gestreamt.


    Startet man eine Playlist (m3u) mit genau den Parametern, wird nicht korrekt gestreamt.


    Das nur info-halber. Mit der Kommandozeilen-Methode kann ich gut leben.