[iptv] m3u, stream, radio Erweiterung

  • To Dr. Seltsam

    Code
    Also mit vlc extern (vlc2input) funktioniert die Wiedergabe auch noch nach dem Starten einer Aufnahme. Störgeräusche habe ich keine. Allerdings habe ich von jeher mit vlc2input das Problem, dass Script und/oder vlc beim Kanalwechsel nicht beendet werden und man dann plötzlich mehrere Instanzen laufen hat. Dann kommt der Ton abgehackt und in Fetzen.

    Adding "killall -9 vlc" at the beginning of vlcinput solve the problem

    what if a recording runs on another iptv-device and uses also vlc?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Ich habe das Fehlerhandling stark verbessert. Als Resultat wird auch im OSD angezeigt, daß ein Stream nicht geöffnet werden kann.


    Mit vlc hatte ich gerade im Fehlerfall auch so meine Probleme. Der Aufruf

    Code
    vlc -I dummy --verbose=2 --no-stats "https://streams.radiobob.de/ritter/mp3-192/mediaplayer" --sout "#transcode{acodec=mpga,ab=320}:standard{access=file,mux=ts{pid-audio=257,pid-spu=4096,tsid=160},dst=vlc_test.ts}"

    funktioniert nicht. Empfangen wird der HTTP Error 404. Allerdings stoppt sich der Prozess nicht. vlc lief einfach weiter und machte ... irgendwas. FFMpeg beendet sich einfach und alles ist gut. Das sollte z.B. jetzt auch abgefangen werden.


    Den Script-Aufruf muss ich mir mal anschauen. Vielleicht gibt es da ja ein ähnliches Problem.


    Die Radioaufnahmen... Da muss ich auch noch schauen.

  • Can you specify the problem? Is there some function implementation missing?

  • Which version of the radio plugin?

    This version can create Pes packets instead of stillpicture. Unfortunately all packets have the same timestamp, which will confuse vdr‘s GetSTC() function during replay of radio recordings. But Live Radio should work with background image

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • I will have a look into StillPicture, maybe there is sth wrong. But this will take some time due to vacation ;)

  • Kann man während des Radio laufens nicht einfach ein "sandard" Bild anzeigen lassen wie z.B. hier:

    http://vdr-wiki.de/wiki/index.…_Bildanzeige_.28Webcam.29

    Also anstatt eine Webcam einfach ein TEST.jpg anzeigen lassen?

    Wohnzimmer: NUC10I3 - Logitech z-5500 - Panasonic 55" TV - Hauppauge Dual DVB-C Stick - Ubuntu 22.04 LTS - yavdr ansible
    Schlafzimmer: NUC10I3 - LG 42" TV - Hauppauge Dual DVB-C Stick - Ubuntu 22.04 LTS - yavdr ansible

    Streamingserver: -im Aufbau-
    diverse Test Clients: -Raspberry Pi + openelec, i3 mit Geforce1030

  • Kann man während des Radio laufens nicht einfach ein "sandard" Bild anzeigen lassen wie z.B. hier:

    Wenn man das Radio Plugin nicht nutzt, besteht natürlich die Möglichkeit, daß das iptv Plugin ein Bild der Wahl darstellt. Aber dann verliert man evt. andere Möglichkeiten wie z.B. RDS. Falls das Radio Plugin aktiviert ist "erkennt" es den Radio Stream und schaltet sich dazwischen und macht eben alles Radio-mäßiges und evt. ein Hintergrundbild.

    Wenn ich das richtig sehe, dann kann Radio auch einen Pseudo-Video-Stream mitspielen - allerdings ohne Bild, mit dem dann auch VDR Aufnahmen erlaubt. Ohne Videostream lande ich immer im Emergency Exit. Aber vielleicht liegt das auch an anderen Problemen. So ganz klar ist mir das noch nicht.


    Die Kombination iptv/radio ist schwieriger, als ich befürchtet habe, weil ich auf der einen Seite das Radio-Plugin für viele Radio-Streams nicht brauche, aber auf der anderen Seite für DVB-Radio Streams ganz nützlich ist. Die beiden Plugins kommen sich etwas in die Quere und VDR mischt dann auch noch mit bei den Radio-Aufnahmen.

  • Allerdings habe ich von jeher mit vlc2input das Problem, dass Script und/oder vlc beim Kanalwechsel nicht beendet werden und man dann plötzlich mehrere Instanzen laufen hat. Dann kommt der Ton abgehackt und in Fetzen.

    Ich glaube, das Problem liegt nicht daran, daß das Script nicht beendet wird, sondern ganz anders liegt. Es passiert manchmal das das Script doppelt gestartet wird und damit der Sound sehr gewöhnungsbedürftig wird.


    Kannst du mal den Patch für das iptv Plugin probieren. Ich habe es zumindest nicht mehr geschafft, das Problem zu erzeugen, aber ich habe auch nur wenige Test-Channels eingerichtet.


    protocolext.cpp.patch.txt

  • Ich habe die Threads für das Streaming überarbeitet. Es gab seltene Dead-Locks (meist nach > 300 Kanalwechseln), verwirrende Fehlermeldungen und dergleichen. Aktuell scheint der Stand stabil zu sein und bisher gab es keine weiteren Fehler.

    In dem Zusammenhang habe ich auch eine neue Fehlermeldung kennenlernen dürfen "pure virtual method called". Was genau schief ging, habe ich nicht herausgefunden, an den Destruktoren lag es jedenfalls nicht.


    In der letzten Woche bin ich per Script die Kanalliste rauf- und runter gerannt und bisher läuft es gut. In dem Zusammenhang haben mich aber die IPTV-Kanäle gestört, die gar nicht angezeigt werden können. Ich habe/hatte alle Kanäle von Kodinerds in der channels.conf. Siehe hier.

    Dazu gibt es jetzt das neue SVDRP Kommando CHKU mit den 3 möglichen Parametern START, STATUS und STOP.


    Aber Vorsicht. Es wird über alle IPTV-Channels (RADIO, STREAM, M3U) iteriert und

    a) versucht eine Verbindung zur URL herzustellen und

    b) innerhalb einer bestimmten Zeit müssen x Bytes empfangen worden sein.

    Sollte alles nicht zutreffen, wird der Kanal mit " - 404" markiert.

    So konnte ich einiges aus der channels.conf werfen.


    Der Patch aus #112 ist auch standardmäßig drin. Das scheint zu funktionieren. Ich habe aber nur wenige vlc2iptv Kanäle in der channels.conf.

  • Moin Zabrimus,

    ich habe in VDR*Elec ein Problem beim Beenden von vdr, wenn das iptv-Plugin mit geladen ist:


    Code
    Aug 26 11:54:51 VDRELEC start_vdr.sh[6361]: /usr/local/bin/start_vdr.sh: line 52:  6419 Aborted                 (core dumped) sh -c "LD_PRELOAD=$LD_PRELOAD_MALI LD_LIBRARY_PATH=$LIB_DIR:$LIB_DIR/vdr:$LD_LIBRARY_PATH ${BIN_DIR}/$arg"

    Das backtrace des coredumps weist auf einen Fehler beim Stoppen der Plugins hin:


    Ich erinnere mich, dass es da bis vor 10 Jahren ständig Probleme mit dem iptv-Plugin gab. Die hatte rofafor dann gefixt:

    Vielleicht kannst Du für Deine neuen Threads mal schauen, ob das analog umgesetzt werden kann, z.B. die Stop-Funktion in diversen Handler-threads. Ich verstehe da im Detail leider zu wenig von, meine aber, dass der Check auf Running() und dann ein Cancel() die gängigere Lösung ist.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Program terminated with signal SIGABRT, Aborted.

    Der Fehler ist typisch, wenn ich einen Thread aufmache, den aber nicht mit join() tatsächlich beende. In den Destruktoren habe ich eigentlich versucht darauf zu achten, alle Threads wieder dicht zu machen. Im BT sieht man auch einen entsprechenden Versuch.


    Ich hatte auch noch keinen core dump beim schliessen und dachte, ich hätte alles erwischt. Hast du einen iptv-Kanal laufen beim stoppen? Falls ja, welches Protokoll? vlc2iptv, radio, stream, m3u oder ein anders?


    Genau zwischen #8 und #9

    Code
    #8  0xf549f8ac in std::thread::join() () from /usr/lib/libstdc++.so.6
    #9  0x000fd108 in cPluginManager::StopPlugins() ()

    fehlt der Hinweis, welches Plugin oder welche Stelle genau da betroffen ist. Ich werde aber mal alle Thread noch einmal prüfen.

  • Nein, es war kein iptv-Kanal aktiv. Dass ich das Plugin nicht explizit genannt bekomme, hat mich auch gewundert. Kann es an fehlenden Debug-Symbolen liegen? So eine Meldung kam nämlich. Sind vdr und libs gestrippt?

    In der chroot-Umgebung ist mir der Crash noch nicht aufgefallen. Vielleicht ist das aber auch erst mit den letzten Änderungen entstanden? Ich muss mal auf die logs achten. Auffallen tut es mir nur, wenn vdr bei einem Neustart nicht mit dem letzten Kanal startet oder settings nicht gemerkt werden.


    Mir fiel auf, dass ich beim gdb-Aufruf auch den vollen Pfad von vdr eingeben musste (/usr/local/bin/vdr), weil /usr/local/bin nicht im PATH ist, der in /etc/environment definiert ist. Dort fehlt auch beim LD_LIBRARY_PATH alles, was in /usr/local/lib liegt. Vielleicht sollten die Pfade erweitert werden? Sonst muss man ja akribisch darauf achten, alles zu exportieren oder volle Pfade anzugeben.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Kann es an fehlenden Debug-Symbolen liegen? So eine Meldung kam nämlich. Sind vdr und libs gestrippt?

    Standardmäßig ja, siehe https://wiki.libreelec.tv/development/build-advanced . Du kannst beim build allerdings DEBUG setzen. Ich mache das z.B. so: https://github.com/rellla/VDRSternELEC/blob/pNext/buildp.sh

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!