Aussetzer beim erstellen timer und streaming client (3 dev) [War:(Fehler?) meldungen streamdev]

  • Hallo,


    Benutzt jemand der letzte Version von streamdev aus dem git?
    Beim externremux streaming kommen da viele Meldungen:


    Ich hab zei Satelco's DVB-Cs und ein Sundtek USB receiver....
    Besonders 'ERROR: device 1 supports 7...', was sagt mir das?


    Grub, Carel

  • Quote

    Besonders 'ERROR: device 1 supports 7...', was sagt mir das?


    In VDR 1.7.15 wurde die Anzahl der möglichen Empfangssysteme erhöht. Ist an sich nicht sonderlich tragisch, habe streamdev aber jetzt darauf angepasst. Ist schon eingecheckt - danke für den Hinweis!


    Die externremux.sh-Meldungen mit Ausnahme der ersten und der letzten 3 dürften Ausgaben von mencoder sein. Wenn Dich die Meldungen stören und soweit alles funktioniert, kannst Du das Logging im externremux.sh ausschalten. Einfach die Zeile LOGGER=logger auskommentieren.

  • Eine kleine frage dazu:


    Wann ich ein stream starte, wird einmal nach das, schon aktive, Kanal mit dem livebild geschaltet.
    Das führt zu einen kürze Unterbrechung:

    Code
    Feb  1 14:57:55 woonkamer vdr: [31984] Streamdev: Accepted new client (HTTP) 145.58.200.11:16501
    Feb  1 14:57:55 woonkamer vdr: [31984] switching to channel 4
    Feb  1 14:57:56 woonkamer vdr: [31984] ttxtsubs: teletext subtitles replayer started with initial page 000
    Feb  1 14:57:56 woonkamer vdr: [15279] [xine..put] Detected video size 720x576


    Wiederhol ich der streaming (selber kanal) dan gibt es diesen verhalten nicht (mehr)!


    Mit fr. Gruß Carel

  • Patch applied:


    Kanal 12 liefert live Bild
    Mit VLC offene ich Kanal 4:


    Code
    Feb  1 17:14:49 woonkamer vdr: [12501] Streamdev: Accepted new client (HTTP) 145.58.200.11:41980
    Feb  1 17:14:49 woonkamer vdr: [12501] XX cur:12 ch:4 pri:0 dev:2 it2:0 use:1 rcv:2 pri:8 act:2
    Feb  1 17:14:49 woonkamer vdr: [12501] switching to channel 12
    Feb  1 17:14:50 woonkamer vdr: [12501] ttxtsubs: teletext subtitles replayer started with initial page 000
    Feb  1 17:14:50 woonkamer vdr: [19354] [xine..put] Detected video size 704x576
    Feb  1 17:14:57 woonkamer vdr: [12501] client (HTTP) 145.58.200.11:41980 has closed connection
    Feb  1 17:14:57 woonkamer vdr: [12501] streamdev: closing streamdev connection to 145.58.200.11:41980


    Warum 'switching to channel 12', der ist schon geschaltet? :whatever


    Danke im voraus für deine helfe,


    Carel


    PS: Ich hab dem Sundtek im verdacht, erinnere mich das es dieses verhalten nicht gab bei nur die 2 Satelco's...

  • Kanal 12 wird in diesem Fall über DVB-Karte 2 (= 3. DVB-Karte im System) empfangen. Streamdev soll nun Kanal 4 ebenfalls über DVB-Karte 2 beziehen. Kanal 12 und 4 liegen scheinbar nicht auf dem gleichen Transponder, somit wäre Live-TV vom Umschalten betroffen. Streamdev versucht daher Kanal 12 über eine andere DVB-Karte zu bekommen. Das funktioniert offenbar, der Kartenwechsel führt aber zu dem kurzen Aussetzer.


    Die Frage ist nun: Wo liegt der Fehler? Liegen Kanal 12 und 4 evtl. doch auf dem selben Transponder? Oder ist der Fehler, dass streamdev DVB-Karte 2 verwenden will obwohl noch andere frei wären?


    Den Code an der Stelle habe ich vor kurzem erst geändert, würde daher erstmal nicht die Sundtek verdächtigen.

  • Quote

    Original von schmirl
    würde daher erstmal nicht die Sundtek verdächtigen.


    Wie auch? Der Sundtek-Treiber switcht selbständig auf Kanal 12 und schreibt das über den VDR-Prozess ins Log? :lol2


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zur info:


    Code
    4: RTL 4;Ziggo:316000:C0M64:C:6875:58=2:80=dut@3:41;222=dut:604,602:19001:500:19:0
    
    
    12: Nickelodeon/Comedy Central;Ziggo:372000:C0M64:C:6875:42+41=2:43=dut@4:45:604,602:7021:500:7:0


    Quote

    Streamdev versucht daher Kanal 12 über eine andere DVB-Karte zu bekommen

    Warum? 12 liefert Live bild


    Quote

    Wie auch? Der Sundtek-Treiber switcht selbständig auf Kanal 12 und schreibt das über den VDR-Prozess ins Log?


    Mal eigensinnig: nun mal ohne Sundtek:

    Code
    Feb  1 17:45:58 woonkamer vdr: [1673] Streamdev: Accepted new client (HTTP) 145.58.200.11:13988
    Feb  1 17:45:58 woonkamer vdr: [1673] XX cur:12 ch:4 pri:0 dev:0 it2:0 use:0 rcv:1 pri:8 act:1
    Feb  1 17:46:50 woonkamer vdr: [1673] client (HTTP) 145.58.200.11:13988 has closed connection
    Feb  1 17:46:50 woonkamer vdr: [1673] streamdev: closing streamdev connection to 145.58.200.11:13988


    Funktioniert einwandfrei, ohne irgendwelchen Unterbrechungen.


    Carel

  • Quote

    Wie auch? Der Sundtek-Treiber switcht selbständig auf Kanal 12 und schreibt das über den VDR-Prozess ins Log?

    Besser wäre es zu Sprechen von dritte DVB device... der Sundtek soll nicht unbedingt der Übeltäter sein.

  • Quote

    Warum? 12 liefert Live bild


    VDR ist der Meinung, Streamdev soll Karte 2 zum Empfang von Kanal 4 verwenden. Da Karte 2 aber für LiveTV in Benutzung ist, versucht streamdev Kanal 12 über eine andere DVB-Karte zu empfangen bevor er Karte 2 auf Kanal 4 umschaltet. Es scheint so, als ob das Problem in VDRs Funktion cDevice::GetDevice(...) zu suchen ist. Wenn dem so ist, müsste das selbe Problem auftreten, wenn Du Kanal 12 live schaust und dann ein Timer auf Kanal 4 startet. Könntest Du dies ausprobieren? Auch wenn kein Aussetzer im LiveTV auftritt, prüfe bitte das Log nach "switching to channel 12".


    Hier noch die Erklärung zu den Debug-Meldungen mit 3 DVB-Karten (oben) und mit 2 DVB-Karten (unten):

    Code
    XX cur:12 ch:4 pri:0 dev:2 it2:0 use:1 rcv:2 pri:8 act:2
    XX cur:12 ch:4 pri:0 dev:0 it2:0 use:0 rcv:1 pri:8 act:1


    Aktueller Live Kanal ist 12 (cur) und wird oben über Karte 2, unten über Karte 1 (rcv/act) empfangen.
    Gewünscht wird Kanal 4 (ch). cDevice::GetDevice(...) schlägt oben Karte 2, unten Karte 0 (dev) vor.
    Damit ist oben LiveTV vom Umschaltvorgang betroffen (use:1), unten nicht (use:0)
    In beiden Fällen ist die Vorgeschlagene Karte noch nicht auf den richtigen Transponder eingestellt (it2:0).


    Quote

    Wiederhol ich der streaming (selber kanal) dan gibt es diesen verhalten nicht (mehr)!


    Vermutlich wird beim ersten Mal LiveTV von Karte 2 auf eine der anderen Karten verschoben. Beim nächsten Mal kann Kanal 4 bezogen werden ohne das LiveTV im Weg ist, daher kein Aussetzer. Solltest Du anhand der Debug-Ausgabe leicht nachvollziehen können.

  • Mit Hilfe von live plugin einen timer erstellt:


    Code
    Feb  2 09:39:28 woonkamer vdr: [15237] live timer 5 (4 0850-1015 'As the world turns') added
    Feb  2 09:39:28 woonkamer vdr: [15237] timer 5 (4 0850-1015 'As the world turns') start
    Feb  2 09:39:28 woonkamer vdr: [15237] record /files/VDR-opnamen/As_the_world_turns/2011-02-02.08.50.4-0.rec
    Feb  2 09:39:30 woonkamer vdr: [15237] switching to channel 12
    Feb  2 09:39:30 woonkamer vdr: [15237] ttxtsubs: teletext subtitles replayer started with initial page 000
    Feb  2 09:39:30 woonkamer vdr: [15237] timer 5 (4 0850-1015 'As the world turns') set to event Woe 02.02.2011 09:05-10:00 'As the world turns'
    Feb  2 09:39:31 woonkamer vdr: [26592] [xine..put] Detected video size 704x576


    Du Fuchs, das hat geklappt: 'switching to channel 12' :respekt


    Quote

    Vermutlich wird beim ersten Mal LiveTV von Karte 2 auf eine der anderen Karten verschoben. Beim nächsten Mal kann Kanal 4 bezogen werden ohne das LiveTV im Weg ist, daher kein Aussetzer. Solltest Du anhand der Debug-Ausgabe leicht nachvollziehen können.


    Stimmt auch

  • Bekommst Du beim Start des Timers auch einen kurzen Aussetzer im LiveTV oder läuft es beim Timer flüssiger als mit Streamdev?


    Um der Ursache auf den Grund zu gehen, müsstest Du in VDRs Datei device.c die Funktion "cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView)" mit entsprechenden Debug-Ausgaben anreichern. Als erstes würde ich das CAM-Handling und Veränderungen durch den Extension-Patch abklopfen.


    Falls Dir das ganz eine Nummer zu hoch ist, schick mir bitte Deine device.c per PN.

  • Hallo,


    Ja, es gibt eine kürze Unterbrechung wann ein client startet.
    Hab auch mal ein 'vanilla' vdr gebaut, selber verhalten:


    3 = live; client = 1:

    Code
    Feb  3 09:15:53 woonkamer vdr: [22944] Streamdev: Accepted new client (HTTP) 145.58.200.11:32960
    Feb  3 09:15:53 woonkamer vdr: [22944] XX cur:3 ch:1 pri:0 dev:2 it2:0 use:1 rcv:2 pri:8 act:2
    Feb  3 09:15:53 woonkamer vdr: [22944] switching to channel 3
    Feb  3 09:15:54 woonkamer vdr: [27584] [xine..put] Detected video size 720x576


    Willst du das ich du 'device.c' schicke ? Ist halt vanilla vdr...


    Carel

  • Quote

    Ja, es gibt eine kürze Unterbrechung wann ein client startet.


    Du meintest "wenn ein Timer startet"?
    Vom Vanilla VDR brauch ich die device.c nicht. Ich schick Dir bei Gelegenheit einen Patch per PN um dem Problem auf die Schliche zu kommen.

  • Das Problem tritt ab VDR 1.7.15 auf. Seit dieser Version sind auch DVB-C Karten unterschiedlich "wertvoll", je nachdem, wieviele verschiedene Modulationsverfahren sie unterstützten (vor 1.7.15 wurde nur zwischen einfachen DVB-S und DVB-S/S2 Karten unterschieden). Die Satelco-Karten melden ein Modulationsverfahren mehr als die Sundtek. Daher verwendet VDR nach Möglichkeit immer die Sundtek.


    LiveTV läuft bei Dir zunächst über die Sundtek. Wegen Aufnahme oder Streamdev wird nun die beste Karte gesucht. Die Anzahl Modulationsverfahren hat dabei höheres Gewicht als "Karte wird von LiveTV benötigt". Deshalb entscheidet sich VDR wieder für die Sundtek und verdrängt LiveTV auf eine der Satelcos, was zu dem kurzen Aussetzer im LiveTV führt.


    Die Motivation dahinter ist klar: Aufnahmen haben normalerweise Priorität gegenüber LiveTV. Kommt eine Aufnahme mit der "billigsten" Karte zurecht, wird diese genommen. Es könnten ja später Aufnahmen dazu kommen, die zwingend die besseren Karten benötigen. Nun kenne ich mich mit den DVB-C Modulationsverfahren nicht im geringsten aus, wenn ich dem VDR-Wiki aber glauben schenken darf, werden in Deutschland nur zwei Modulationsverfahren genutzt. Theoretisch mögen die Karten also durchaus unterschiedliche Fähigkeiten haben, ob dies in der Praxis relevant ist, steht auf einem anderen Blatt. Übertragen auf die SAT-Welt: Ich habe zwar eine DVB-S2 Karte, der angepeilte Satellit aber keine DVB-S2 Kanäle.


    Sollten sich einzelne Modulationsverfahren im Kernel-Modul deaktivieren lassen, könntest Du die Karten auf diese Weise "gleichwertig" machen. Andernfalls bleibt Dir wohl nur sowohl in Streamdev server/connection.c als auch in VDR device.c folgende Zeile zu entfernen:

    Code
    imp <<= 4; imp |= GetClippedNumProvidedSystems(4, device[i]) - 1;                                       // avoid cards which support multiple delivery systems
  • Einfach klasse! :prost2


    Alles was du schreibst stimmt genau mit meine Erfahrungen, ich fragte mich immer ab warum der Sundtek immer das Live bild gab, nun ist das erklärt!
    Übrigens benutzt mein Kabel TV Anbieter nur QAM64.


    Kernel Module Parameter gibt es nicht. Ich entferne mal die Zeile...


    VIELEN dank.


    Carel

  • Ich kenne mich mit dem Thema nicht so gut aus, also nicht hauen wenn ich Quatsch erzähle.

    Quote

    Original von schmirl
    Die Satelco-Karten melden ein Modulationsverfahren mehr als die Sundtek.


    Könnte dieser Changelog-Eintrag beim Sundtek-Treiber Auswirkungen auf das Problem haben?

    Quote

    * DVB-C QAM16, QAM32 wird nun auch als Supported angegeben (1. Februar 2011)


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Participate now!

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