sporadisches kein epg mit epg2vdr über IPTV

  • Hallo zusammen,


    ich verwendet MagentaTV mit dem IPTV Plugin. Das EPG hole ich mir über epg2vdr

    [IPTV] T-Home MagentaTV - channels.conf - aktuelle Einträge


    Leider habe ich sporadisch das Problem, dass bei einigen Sendern immer mal wieder kein epg habe. Ich vermute das liegt daran, dass sich bei einigen Sendern mit der Tonspur auch die Channel ID ändert.


    Code
    1. Beispiel mit ZDF INFO HD
    2. vdr[820]: [820] switching to channel 16 I-1-11170-11130 (ZDFinfo HD)
    3. vdr[820]: [30022] IPTV streamer thread ended (pid=820, tid=30022)
    4. vdr[820]: [30021] IPTV: Detected 2 RTP packet errors
    5. vdr[820]: [30021] device 2 receiver thread ended (pid=820, tid=30021)
    6. vdr[820]: [30023] device 2 receiver thread started (pid=820, tid=30023, prio=high)
    7. vdr[820]: [30024] IPTV streamer thread started (pid=820, tid=30024, prio=high)
    8. vdr[820]: [1126] changing id of channel 16 (ZDFinfo HD) from 1-11170-11130-0 to 1-11170-11170-0

    Jetzt habe ich bei den jeweiligen Sendern im epgd in der channelmap.conf einfach mal, für die jeweiligen Sender, zwei Einträge mit der jeweiligen Channel ID angelegt. Das löst zwar nicht das Problem, das sporadisch bei einigen Sendern kein epg mehr vorhanden ist. Aber es verbessert die Problematik weil ich dann bei einem fehlenden epg im epg2vdr das epg neu laden kann und damit dann entsprechende Daten habe.


    Wie kann ich das Problem denn grundsätzlich lösen ?


    Vielen Dank Gruß dile :)

  • Niemand eine Idee ?


    Ist das Problem das die Channel ID sich bei einem Kanal eigentlich nicht temporär ändern dürfte und damit eher im IPTV Plugin zu suchen oder ist eher das Problem wie epg2vdr / epgd mit der sich ändernden channel id umgeht ?


    Vielen Dank Gruß dile :)

  • Sehr seltsam. In sdt.c wird hier bei channel 16 die SId von 11130 auf 11170 geändert, das ist eigentlich gar nicht mögich, da dieser channel zuvor über die Sid 11170 gesucht und gefunden wurde.

    Gehört die Sid 11130 nicht zu "ZDF_neo HD" ? Poste einmal deine channels.conf.

    Helmut

  • Bei ZDF Neo wechselt er zwischen der I-1-11130-11130 und I-1-11130-11110


    Hier meine aktuelle channels.conf


    Vielen Dank schon mal Gruß dile

  • Vielleicht noch ein Problem mit der ID in der channel.conf

    [IPTV] T-Home MagentaTV - channels.conf - aktuelle Einträge



    Die zweite Zahl der Channel ID scheint mit der Channel ID eines Kanalnachbarn zu variieren.


  • Habe die Magenta TV Liste mal aktualisiert, auf "Frequenzen" <20.000:


    [IPTV] T-Home MagentaTV - channels.conf - aktuelle Einträge

    HowTo: APT pinning

  • Ich denke, der Fehler liegt in cSidScanner::Process() des iptv-Plugins.

    Du wirst im Setup Use section filtering = 1 eingestellt haben, und durch "S=1" wird ser Sidscanner aktiviert. Dieser liest aus der PAT die Sids aus. Wenn eine gefunden wird, die nicht mit der des aktuellen Programms übereinstimmt wird diese dann einfach übernommen. Vielleicht hat sich in der PAT etwas geändert und es war bisher immer nur die Sid des aktuellen Programms enthalten.

    Deaktiviere einmal den SidScanner - entweder im Setup-menu oder mit "S=0".

    Wenn VDR die Programme mit falscher Sid nicht neu anlegt, korrigiere diese händisch in deiner channels.conf.


    LG Helmut


    Edit: Eine Debugausgabe vom iptv-Plugin würde mehr zeigen.

  • Du wirst im Setup Use section filtering = 1 eingestellt haben, und durch "S=1" wird ser Sidscanner aktiviert.

    Beides entspricht der Empfehlung des Plugin-Entwicklers rofafor ... ?

    HowTo: APT pinning

  • Beides entspricht der Empfehlung

    Das wird grundsätzlich auch auch richtig sein. Nur kann in diesem Fall der Fehler nur beim SidScanner und/oder an der Information der PAT der liegen. VDR selbst ändert die Sid eines Programms nicht weil er es in cChannels gar nicht finden kann. Es würde dann In sdt.c ein neuer Kanaleintrag erzeugt werden.

    Denkbar ist auch, dass die Sid aus einem alten PAT-Paket ausgelesen wird das sich noch im TS-Buffer befunden hat.

    Warum das aber nur bei dile geschieht ist natürlich die Frage.

    Helmut

  • Nach dem Log zu schliessen, gibt es tatsächlich fast immer ein altes PAT-Paket das die Sid des aktuellen "Channel" andert. Die nachfolgenden richtigen PATs können das aber nicht korrigieren weil im SidScanner nur der "Channel", aber nicht 'ChannelIdM' an die modifizierte (aber falsche) ChannelID angepasst wird. Ausserdem wird nach dem Empfang einer PAT und einer NIT der SidScanner beendet.


    Dieser Patch sollte helfen:

    Damit sollte im "Channel" die Sid nach der Änderung durch die alte PAT später ein zweites mal, nun wieder mit der richtigen Sid, modifiziert werden.

    Das ganze ist ungetestet da ich kein iptv empfange, das Plugin lässt sich mit dem Patch aber fehlerfrei bauen.

    Helmut

  • Ich hab den Patch gestern auf meinem Server installiert. Bisher sind mir keine Probleme aufgefallen. Beim durchzappen, wenn das Problem entsteht wird der Eintrag jetzt direkt wieder korrigiert.


    Code
    1. Mai 14 15:28:30 europa vdr[1659]: [1663] changing id of channel 29 (MDR Sachsen HD) from 1-10352-10352-0 to 1-10352-10355-0
    2. Mai 14 15:28:30 europa vdr[1659]: [1663] changing id of channel 29 (MDR Sachsen HD) from 1-10352-10355-0 to 1-10352-10352-0

    Das Problem mit dem EPG scheint dadurch gelöst. Ich werde das mal noch weiter beobachten. Außerdem muss ich das noch auf meine Raspi Clients bringen. Da ich dort nicht selbst kompiliere, sondern fertige Pakete verwende muss ich erstmal schauen wie ich das mache.


    HelmutB

    Wenn keine Probleme mit dem Patch auftauchen , ist es dann sinnvoll das dieser Patch im IPTV Plugin integriert wird? Ich gehe mal davon aus, das alle Nutzer von MagentaTV das Problem haben. Kann aber schlecht einschätzen ob es vielleicht auch Gründe gegen den Patch gibt.


    Außerdem auch diesmal wieder herzlichen Dank für deine Hilfe. :-)


    Gruß dile

  • ist es dann sinnvoll das dieser Patch im IPTV Plugin integriert wird?

    Ich denke schon, weil sonst - auch ohne dein PAT-Problem - ein Update entweder nur von SID oder nur von NID/TID gelingt, aber nie von allen drei Werten gleichzeitig, da nach einem SetId() das cChannel *IptvChannel = Channels->GetByChannelID(channelIdM); den Kanal nicht mehr finden kann. Die fehlenden Werte würden erst bei einem zweiten Tuning richtiggestellt.


    Es ist aber grundsätzlcih die Frage, warum bei dir eine alte PAT auftaucht (und, wie es aussieht auch nur genau einmal).

    Das iptv-plugin verwendet einen Ringbuffer für die Filterpakete, vielleicht wird der beim Umschalten nicht richtig geleert.

    LG Helmut


    @Edit: Du kannst ja NID/TID/SID bei einem Kanal auf 0,0,0 setzten und dann mit und ohne Patch das Updaten beobachten.

  • @Edit: Du kannst ja NID/TID/SID bei einem Kanal auf 0,0,0 setzten und dann mit und ohne Patch das Updaten beobachten.

    Da wird er keinen Unterschied mit und ohne Patch feststellen, bei den Werten kommt kein EPG mehr rein. NID, TID und SID muss(te) ich immer erst rausfinden für diese Kanaleinträge, damit eben überhaupt Now & Next reinkommt.


    Die Werte werden im Gegensatz zu DVB bei IPTV nicht automatisch gesetzt bzw. können es n.m.I. gar nicht ...

    HowTo: APT pinning

  • Wenn ich es richtig verstehe, versucht der SidScanner die Nid/Tid/Sid des Streams aus PAT und NIT zu erkennen und richtigzustellen deshalb soll er ja mit "S=1" aktiviert werden.

    Zumindest eine PAT und damit die Sid gibt es, wie man oben sieht. Ob es auch eine NIT gibt, ist aus den Logs nicht zu erkennen. Aber wie beschrieben - auch mit PAT+NIT, aber ohne Patch, müsste man zwei mal auf den Kanal tunen um alle drei Werte zu erhalten.


    Mit diesem Test würde man zumindest sehen, ob PAT und NIT im Stream enthalten sind.

    Und EPG geht natürlich erst, wenn alle drei Werte vorhanden und richtig sind.

    Helmut

  • MagentaTV/IPTV ≠ DVB ... zu was sollte denn eine PAT gut sein? Ist doch nur ein Programm pro Stream enthalten ...


    Für mein Dafürhalten unterliegen diese Streams keinem vergleichbaren Reglement wie Transportstreams, die dem DVB Standard folgen müssen. Daher kann es auch kaum eine Erwartungshaltung an ein gewünschtes richtiges Verhalten geben ...


    SID & TID sind aber im Stream enthalten, die lese ich ja für die Einträge aus und die ändern sich auch nie. NID ist immer 1, für alle Einträge, wie auch SID bei allen privat-rechtlichen Streams.

    HowTo: APT pinning

  • Ich empfange keine iptv Programme, kann also nicht sagen was so alles im Stream übertragen wird.


    Über über die PAT erfährt man aber die PMT-Pid für das Programm (Sid). Und über die PMT die Audio/Video Pids.

    dile empfängt sicher eine PAT und VDR kennt damit Sid<->PMT, hier gab es dann das Problem mit der falschen Pid-Zuweisung. Ob es eine NIT gibt, würde der Test zeigen.

    Die Nid und Tid kann man, falls vorhanden, auch aus der SDT erfahren (VDR erzeugt in sdt.c neue Programme oder ändert den Namen eines Programms).


    Helmut

  • HelmutB


    Ich habe da ein anderes Verständnis, IPTV ist in seiner Behandlung lösgelöst vom VDR. Das Plugin kann alle möglichen und unmöglichen (IPTV) Streams in VDR nutzbar machen, aber zu dem Preis das es einen korrekten DVB Eintrag in channels.conf simuliert.


    Du gehst in all Deinen Annahmen davon aus, die MagentaTV Streams müssen reguläre DVB Streams sein und müssen sich verhalten wie normale DVB Einträge. Das ist aber nicht so, vieles ist nur Zufall. Zum einen sind das Multicast Streams und das diese SID und TID enthalten ist auch mehr oder minder Zufall, weil die Telekom das für Ihr EntertainTV/MagentaTV Angebot Plattform-spezifisch so definiert hat. Und es wird auch kein regulärer EPG mitgeliefert, nur und aussschließlich 2 Events, Now/Next.


    Wie Du dile Ausführungen entnehmen kannst, verwendet er ja eine Liste die ich seit einigen Jahren Pflege. Die Einträge sind statisch, nichts dynamisches, da ändert sich nichts, ab und an kommt ein weiterer Kanal dazu. Das IPTV Plugin kann hier im Prinzip nur die APIDs anpassen, ansonsten gibt es nichts zu erkennen oder verändern. Es ist eher im Gegenteil so, das wenn man Änderungen durch den VDR zulässt, immer wieder etwas eben genau nicht funktioniert, z.B. keine Now/Next Events oder Ton tut nicht ...


    Auch ist seit Jahren bekannt, das man vollen EPG nur über Umwege für diese Einträge bekommt. Zwangsweise beglücken per epg2vdr oder xmltv2vdr, mit dem Umstand das es eben nicht zuverlässig funktioniert, weil eben nur Now/Next per Stream kommt und nur dafür dann auch 2 Event-IDs existieren. Oder man spiegelt EPG von einem DVB Pendant mit vdr-plugin-epgsync, passiert aber nicht dynamisch, nur beim VDR Start.

    HowTo: APT pinning

    The post was edited 3 times, last by fnu ().

  • Erstmal VDR mit dem Patch. Ich hab über das Menü den Kanal editiert und die NID/TID/SID auf 0 gesetzt.


    Nach dem Neustart das VDR passiert dann noch das:


    Ohne Patch muss ich mal schauen ob ich das heute noch schaffe. Brauchst du das mit Debug Mode des IPTV oder reicht das so?


    Gruß dile

  • dile : Danke, genügt so. Man sieht dass es keine NIT gibt, da Nid und Tid nicht geändert werden (die "3000" bei "switching to..." ist die Frequenz die VDR bei ChannelID als Ersatz hernimmt wenn Tid 0 ist)


    fnu Vielleicht sehe ich es wirklich zu einfach, aber ich denke VDR sieht einen Transportstream genauso wie bei DVB-S/C/T. Für das Holen und Extrahieren aus dem Netzwerkstream ist das iptv-Plugin zuständig, der Inhalt, also die die TS-Pakete werden dabei nicht verändert. Es sind vielleicht nicht alle Zusatzinformationen enthalten, aber genug um die Programme sehen zu können.

    Durch "P=0" werden die Audio- und Video-Pids von VDR aus den Informationen der PMT angepasst, nicht vom Plugin.

    Und die EPG Daten werden vom VDR wie sonst auch über die EIT-Pid 0x12 eingelesen. Jeder Event ist über Nid/Tid/Sid einer ChannelID zugeordnet. Wenn VDR diese ChannelId nicht findet wird der Event ignoriert - z.B. wenn der iptv SidScanner aufgrund einer alten PAT einem Programm die flasche Sid zugeordnet hat. Das kann man mit "S=0" verhindern.


    Wie findest du die richtige Nid/Tid/Sid - so wie hier beschrieben - also "zu Fuß" aus der EIT? Das könnte auch automatisch geschehen. Im Anhang ein Patch der versucht im iptv-SidScanner auch über SDT und EIT die passende Nid/Tid/Sid zu ermitteln.

    Helmut