Beiträge von kfb77

    Ich versuche mich mal dran und kommentiere ein paar Meldungen. Ist nicht einfach, weil zumindest eine weitere Aufnahme da gerade zu Ende ist.

    Code
    Jul 2 00:43:06 rpi4s vdr: [1425755] timer 37 (32 0045-0215 VPS 'Sauerkrautkoma') entered VPS margin 

    -> 2 Minuten vor Timer Start will der VDR auf den Kanal umschalten, um die VPS Events mitzubekommen. Das scheint aber nicht zu funktionieren, weil er kein freies Device findet.

    Code
    Jul 2 00:45:00 rpi4s vdr: [1518386] recording thread ended (pid=1425755, tid=1518386)
    Jul 2 00:45:00 rpi4s vdr: [1425755] menu.c switching device 1 to channel 32 S19.2E-1-1019-10303 (SWR BW HD)
    Jul 2 00:45:00 rpi4s vdr: [1425755] timer 37 (32 0045-0215 VPS 'Sauerkrautkoma') start
    Jul 2 00:45:00 rpi4s vdr: [1425755] Title: 'Sauerkrautkoma' Subtitle: 'Spielfilm Deutschland 2018'

    Erst exakt zum Timer Start scheint eine andere Aufnahme zu Ende zu sein und jetzt hat VDR ein freies Device um umzuschalten. VDR startet ohne einen VPS Event abzuwarten direkt die Aufnahme . Vermutlich weil er befürchtet eh zu spät zu sein (Irrtum: Sendung startet heute erst 4 Minuten später). Kann man so machen, erzeugt aber die abgebrochen Aufnahmen, falls die Sendung tatsächlich noch nicht gestartet ist.

    Code
    Jul 2 00:45:01 rpi4s vdr: [1425755] markad: cStatusMarkAd::GetEventID(): recording <Sauerkrautkoma>, timer <Sauerkrautkoma>, eventID 37437, eventNextID 37438, timer start 1688251500 stop 1688256900
    Jul 2 00:45:01 rpi4s vdr: [1425755] markad: cStatusMarkAd::Recording(): added recording <Sauerkrautkoma> event ID 37437, eventNextID 37438 at index 2 only for VPS detection
    Jul 2 00:45:02 rpi4s vdr: [1518351] markad: ------------------------------------> new VPS VDR Event: ID: 37437, state: 1 -> not running
    Jul 2 00:45:02 rpi4s vdr: [1518351] markad: 00:00:01 state: 0, event: 37437, new state: 1 -> before recording start

    markad ist jetzt mit dabei und bekommt auch gleich den VPS Event 1 (not running) mit. VDR scheint diesen nicht ins Syslog zu schreiben.

    Code
    Jul 2 00:45:02 rpi4s vdr: [1425755] timer 37 (32 0045-0215 VPS 'Sauerkrautkoma') finished with 0 errors

    VDR reagiert aber darauf, in dem er die Aufnahme beendet. Das wiederholt sich, bis der VPS Event 4 kommt. Soweit geht aber der Syslog Log Auszug nicht.


    Wenn meine Interpretation stimmt, war der Auslöser des Problems, dass du um 00:43 kein freies Device hattest, damit VDR auf den Kanal umschalten konnte. Ich hatte den Effekt bei Tests auch schon mal beobachtet. Das erzeugt keinen Timer Konflikt, die 2 Minuten vorher werden nicht geprüft.

    Sollte meine Vermutung stimmen, wäre der Praktikant entlastet ;)

    OK, meine Debug Meldung sind etwas verwirrend.

    Es gibt zwei verschiedene Status Variablen:

    Code
    ------------------------------------> new VPS VDR Event: ID: 37437, state: 1 -> not running

    Alles mit "------" davor ist der ankommende VPS Event: 0 -> keine Info, 1 -> not running ..., 2 -> starts in a few seconds, 4 -> running


    Code
    new VPS VDR Event: ID: 37437, state: 1 -> not running

    Das ist der markad interne Status der VPS Überwachung von markad:

    0 -> habe noch keinen VPS Event bekommen

    1 -> war in Status 0, habe VPS Event "not running" empfangen, erwarte also, dass bald der VPS Event 2 kommt

    2 -> war in Status 1, habe VPS Event 2 empfangen, erwarte dass Sendung in Kürze startet

    4 -> war in 2, habe VPS Event 4 empfangen, Sendung startet

    1 -> war in 4, habe VPS Event 1 empfangen, Sendung zu Ende


    Das wäre eine gültige Sequenz und es wird die marks.vps geschrieben. VPS Event 1 oder 2 vor Start kann auch fehlen, aber nicht beide.

    Wenn was anderes kommt:

    -1 -> Status ungültig (z.B. ungültige Sequenz empfangen)

    Dann wird auch keine marks.vps geschrieben.


    Noch ein Hinweis zum Lesen der Debug Meldungen:

    Mit jeder Zeile "recording index ...." ist es nach Ende/Neustart der Aufnahme durch VDR für markad wieder eine neue Aufnahme und somit wieder eine neue Sequenz. Darum fängt er auch jedes Mal wieder mit dem internen Status 0 an.


    Nach diesem Neustart der Aufnahme geht dann die Sendung um 00:49:09 wirklich los, aber dann direkt mit VPS Event 4. Und das ist dann eine ungültige Sequenz.

    Hast du das syslog noch dazu ? Mich würde interessieren, warum VDR die Aufnahme gestartet hat. VPS Event 1 ist eigentlich kein Grund dazu, das ist eher der Grund dafür, warum er sie gleich wieder beendet.

    Letztendlich gilt auch hier: VPS Sequenz vom Sender ist nicht gültig.

    Scheint kein grundsätzliches Problem des Senders zu sein, bei mir haben die Events heute Nacht gepasst.

    Code
    VPSTIMER=NO
    START: 26.06.2023-00:07:01 239
    STOP: 26.06.2023-00:36:58 2036
    Code
    channel not under control of epg2vdr, use HandleEvent() and ignore HandleEitEvent()

    In dem Fall nehme ich die VPS Events, wie sie vom VDR aufbereitet kommen. Und mein Log und das VDR passt exakt zusammen.

    Ich nehme mal heute Nacht von o.g. Sender die 00:05 Uhr Sendung mit epg2vdr auf (dann natürlich ohne VPS Timer). Da ich in diesem Fall vom VDR eh keine Events bekomme, muss ich den EIT Handler auswerten. Da ist dann keine VDR Aufbereitung beteiligt (außer natürlich, dass der EIT Handler ja auch Bestandteil vom VDR ist). Mal sehen, was da im markad Log steht.

    Was bedeutet "new state: -1"?

    Bedeutet, die Sequenz ist ungültig und es wird nichts in marks.vps gespeichert.

    Ungültig ist sie, weil aus Sicht von markad gleich zum Timer Start der Event 4 (running) kommt. Also war Timer Start nach VPS Start und somit habe ich keine gültige Sequenz.

    Den Grund sieht man auch gut in den VDR Syslog Einträgen:

    Code
    Jun 24 00:07:56 rpi4s vdr: [1324790] channel 19 (zdf_neo HD) event Fr. 23.06.2023 23:35-00:00 (VPS: 23.06. 23:35) 'Suspect' status 1
    Jun 24 00:07:56 rpi4s vdr: [1324790] channel 19 (zdf_neo HD) event Sa. 24.06.2023 00:00-00:20 (VPS: 24.06. 00:00) 'Suspect' status 4
    Jun 24 00:07:57 rpi4s vdr: [1299003] timer 9 (19 0000-0020 VPS 'Suspect') start

    Hier kommt 4 direkt nach 1. Status 2 wird ausgelassen, wo sonst normalerweise VDR die Aufnahme startet.

    Also startet der VDR auf Event 4 und erst ab da bekommt markad die Events mit. Das kann ich nicht unterschieden von einer wirklich zu spät gestarteten Aufnahme und betrachte es als ungültig.

    Die Version 3.3.0 ist auf vdr-plugin-markad verfügbar.

    Code
    2023-06-22: Version 3.3.0
    - new feature: detect scene change and use it to optimize marks
    - performance improvement by saving unnecessary detection
    - fix unsuported DVB subtitel codec id for ffmpeg >= 5.1.1
    - some minor bug fixes and optimizations, see git

    Wie angekündigt, vermeide ich damit die ca. 2s vor und nach jedem ein/aus geblendetem Logo abzuschneiden.

    yavdr ist eine Distribution. Die bedient sich aus dem Quellcode der Entwickler.

    Entweder holst du dir den Quellcode aus den Paketen (apt-get source) oder aus den Quellen der Entwickler.

    Die aktuellste Liste wo was zu finden ist, dürfte diese sein.

    Leider oft auch nur bis zum geplanten Ende.

    Das ist sogar noch komischer: Private senden keinen VPS Stop Event, VDR nutzt dann den Start Event der folgenden Sendung. Und der kommt dann zum geplanten Termin und so wird aus dem zu frühen Start der nächsten Sendung, ein zu frühes Ende der aktuellen Sendung.

    Fazit: Den VPS Event kann man nicht trauen. Darum nehme ich ohne VPS auf, und lasse markad den Anfang und das Ende suchen. Bei manchen Sender geht das nicht. Das sind aber auch oft die, die ein gutes VPS senden. Da kann markad dann die VPS Events zu Hilfe nehmen.

    markad gibt doch nur Meldungen aus, und ändert nichts am Verhalten von VDR.

    Das ist richtig, ich log nur die Events, die vom VDR kommen.

    Ich habe bei meinen Tests sehr viele Fälle gefunden, wo die VPS Events nicht gepasst haben. Ganz gute haben ARD und ZDF (oder ich hatte nur Glück), der Rest wohl je nach Tagesform. Viele privaten Sender senden den VPS Start Event grundsätzlich zum geplanten Start Zeitpunkt.

    info von "zeigt Radio an":

    Info von "zeigt SD an":


    Edit: copy/paste Fehler, jetzt ist ist richtige info drin.

    Kann es am fehlenden Video Stream (X1) im ersten Beispiel liegen ? Das fehlt aber bei VDR öfters, darauf kann man nicht bauen.