EPG Update steuern - die 100ste

  • seahawk1986 es war ein mcli bug ... den Helmutb wie immer schnell behoben hat ...


    Nochmal zu wget ... es ist aus Ressourensicht ja nicht gerade optimal, da sinnlos streams laufen zu lassen, also habe ich mal --limit-rate=1000 eingebaut ... aber das mag der streamdev-server nicht und trägt dann buffer Overflow errors ins syslog ein und ich vermute er bricht auch den stream ab...


    Hast du ev. noch eine kreative Idee ... Format PES = packen des streams ist ja auch nicht ökonomischer ? ... oder ist das ohnehin "overengeneering" ;) ?

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

  • Der VDR muss beim TS-Format eigentlich nur den nackten Stream weiterreichen und solange das auf dem selben Host bleibt, sollte ein Stream mit maximal 20 MBit/s, der auf /dev/null landet, wenig Einfluss haben (das Verschicken des kompletten Transponders durch den Netciever dürfte da mehr ausmachen). Die Stream-Rate zu begrenzen macht keinen Sinn, weil der streamdev-server die Daten sonst nicht los wird. Man könnte ggf. über http://www.vdr-wiki.de/wiki/index.php/Externremux.sh den Stream herunterrechnen lassen, bevor man ihn verschickt - aber dabei muss der Stream immer noch an irgendjemanden über eine lokale Pipe gesendet werden, der ihn einliest.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi, danke euch nochmal ... hier mein finales script ... bitte prüft es nochmal ... als Laie hab ich ein paar Änderungen gemacht :

    Das hatte so in einem Aufwasch nicht funktioniert # local channel="${1%-*}" # CAID entfernen und und der Umlaut von Kanäle wurde zum Sonderzeichen. Daher hab ich es channels genannt ;)


    Einen Wunsch hätte ich auch noch:


    Es wäre super wenn das

    => Schalte auf Kanal-ID: S19.2E-1-1107-17500 CAID: 0im Log, so aussehen würde:

    => Schalte auf Kanal: 6 SAT.1 S19.2E-1-1107-17500 CAID: 0

    Kanlnummer 6 entspricht dem 6. Eintrag in der channels.conf.

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

  • Ich schau mir das morgen mal an.

  • Hab es eingebaut: https://github.com/MegaV0lt/VDR-Scripts/raw/main/scanepg.sh


    Ausgabe ist nun so in dem Muster:

    Code
    => Schalte auf Kanal: 6 SAT.1 (S19.2E-1-1107-17500) CAID: 0
  • funkt super - danke.

    Code
    => 70 channels eingelesen. (/etc/vdr/channels.conf)
    => 38 Transponder
    => 38 channels

    channels und transponder müssen ja eig. immer gleich sein (wenn ein Transp. nur 1x gelesen wird) ... od was ist der Grund für die getrennte Angabe ?

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

  • Das stimmt. Kanäle und Transponder haben die gleiche Anzahl, da ja pro Transponder nur ein Kanal verwendet wird. Das ist ja auch der Sinn des Skripts. Ich nehme die zweite Zeile aus dem Skript noch raus, da überflüssig

  • Danke - damit ich was dazu lerne ;) ...

    - wozu ist der Tausch von " zu ' ?

    - und weshalb ist ein Array declare -A und das Andere "-a"

    Code
    declare -a CHANNELDATA                      # Arrays
    declare -A TRANSPONDERLISTE                 # assoziative Arrays

    Ist der Grund weil das CHANNELDATA+= mit Index arbeitet und den mit += erhöht ?

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

    Einmal editiert, zuletzt von gggggg ()

  • -a deklariert normale Arrays

    -A deklariert assoziative Arrays.


    Das += bei Variablen hängt an a=$a$b ist das gleiche wie a+=$b


    Das andere += ist innerhalb von (()) und das ist zum Rechnen gedacht... Nur mal grob.


    Hier kann man viel lernen:

    Advanced Bash-Scripting Guide

  • Hi,

    ich habe das Script auch seit drei Tagen Laufen, weil ich gern das EPG-Update zu einer festen Zeit möchte. Jetzt habe ich auf einigen Sendern wieder die ersten 'EPG-Löcher'...

    Ich ging davon aus das das Script die DVB-Daten holt, epgd merged und ich damit NUR epgd als Quelle benötige. Habe ich da was falsch verstanden (oder einen Fehler drin)?


    gggggg

    habe ich es richtig verstanden das auch DU die EPG-Aktualisierung vom VDR und im SatIP-Plugin komplett deaktiviert hast?

  • Vereinfacht gesagt, schaltet das Skript pro Transponder auf einen Kanal. Das EPG holt der VDR für alle Kanäle auf dem Transponder.

    Bei VDR's mit mehr als einem Tuner ist das nicht nötig, da der VDR das im Hintergrund automatisch macht.

  • @ MegaV0lt und gggggg

    Danke !

  • MegaV0lt  seahawk1986

    Hallo ihr Beiden u nachträglich ein gutes Neues !


    Bitte um Unterstützung...


    Das hilfreiche Scrip wirft bei mir seit einiger Zeit diese 3 Fehler :


    an 6 09:33:22 BM2LTS-MC rc.l.scanepg_ri: Neuer Transponder: 11758-hC34M2S0-S19.2E -> S19.2E-133-17-26 #170 (Disney Junior,DisneyJr;SKY)

    Jan 6 09:33:22 BM2LTS-MC rc.l.scanepg_ri: => 70 channels eingelesen. (/etc/vdr/channels.conf)

    Jan 6 09:33:22 BM2LTS-MC rc.l.scanepg_ri: => 36 Transponder

    Jan 6 09:33:22 BM2LTS-MC rc.l.scanepg_ri: => Schalte auf Kanal: 1 ORF1 HD (S19.2E-1-1007-4911) CAID: 648,650,D95,D98,6E2,500,98D,9C4,98C

    Jan 6 09:33:22 BM2LTS-MC vdr: [8807] Streamdev: Accepted new client (HTTP) 10.75.25.22:53376

    Jan 6 09:33:22 BM2LTS-MC vdr: [8807] ERROR: streamdev: write to client (HTTP) 10.75.25.22:53376 failed: Es ist eine Zieladresse notwendig

    Jan 6 09:33:22 BM2LTS-MC vdr: [8807] streamdev-server: closing HTTP connection to 10.75.25.22:53376

    Jan 6 09:33:22 BM2LTS-MC vdr: [8807] buffer stats: 0 (0%) used

    Jan 6 09:33:23 BM2LTS-MC vdr: [8807] Streamdev: Accepted new client (HTTP) 10.75.25.22:53390

    Jan 6 09:33:23 BM2LTS-MC vdr: [8807] ERROR: read from client (HTTP) 10.75.25.22:53390 failed: Socket-Vorgang an einem nicht-Socket

    Jan 6 09:33:23 BM2LTS-MC vdr: [8807] streamdev-server: closing HTTP connection to 10.75.25.22:53390

    Jan 6 09:33:23 BM2LTS-MC rc.l.scanepg_ri: => Schalte auf Kanal: 2 ORF2O HD (S19.2E-1-1005-13304) CAID: D98,650,D95,648,6E2,98C,9C4,98D,500

    Jan 6 09:33:23 BM2LTS-MC vdr: [8807] Streamdev: Accepted new client (HTTP) 10.75.25.22:53398

    Jan 6 09:33:24 BM2LTS-MC vdr: [8807] ERROR: read from client (HTTP) 10.75.25.22:53398 failed: Ungültiger Dateideskriptor

    Jan 6 09:33:24 BM2LTS-MC vdr: [8807] streamdev-server: closing HTTP connection to 10.75.25.22:53398


    Ich habe meine Version unten angehängt. Das Script wir aus rc.local gestartet: /etc/rc.l.scanepg_ri.sh &>/dev/null &


  • Nimm mal versuchsweise die Umlaute in den Kommentaren raus.

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Leider NEIN:

    Ev. hängt es mit meiner Art des Aufrufens der Scripte zusammen ... ich denke an das: &>/dev/null &

    Als Linux DAU hab ich davon leider k.A.


    Zum Ablauf:


    rc.local

    #!/bin/sh -e

    #

    # rc.local

    /etc/rc.l.sh &>/dev/null &


    rc.l.sh:

    #!/bin/sh

    #

    /usr/bin/logger -t ri_rc "rc start und wait"

    sleep 50 #r warten bis vdr hochgefahren min. 10s

    /usr/bin/logger -t ri_rc "rc EPG update"

    /etc/rc.l.scanepg_ri.sh &>/dev/null &

    sleep 135 #r vorausgesetzt 6 min vorher geweckt ist das nach ca. 3min

    /usr/bin/logger -t ri_rc "rc timer update"

    /usr/sbin/svdrpsend.sh PLUG epgsearch UPDS

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

  • Könnt ihr mir bitte sagen, wie die korrekte Anforderung aussehen müsste:

    wget "http://127.0.0.1:3000/TS/ZDF.ts"

    oder nur KAnalnummer ?
    wget "http://127.0.0.1:3000/TS/5.ts"

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

  • Die Website http://127.0.0.1:3000/ (streamdev) aufrufen und "no scripts" oben wählen.

    Dann die in der Statuszeile angezeigten URLs je Kanal ansehen.

  • cinfo  M-Reimer VDR-Plugin 2.6.5, streamdev-server (0.6.3-BM2LTS)

    ERROR: read from client (HTTP) 10.75.25.22:57434 failed: Ungültiger Dateideskriptor

    ERROR: streamdev-server: couldn't send data: Ungültiger Dateideskriptor


    Was könnte das Prob mit dem Streamdevserver sein ... ev. hat sich da über die Jahre was geändert und das wget muss anders lauten ...

    Code
    root@BM2LTS-MC:~# wget "http://10.75.25.22:3000/TS/S19.2E-1-1115-13104.ts"
    --2024-01-08 14:06:39--  http://10.75.25.22:3000/TS/S19.2E-1-1115-13104.ts
    Verbindungsaufbau zu 10.75.25.22:3000 … verbunden.
    HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 Keine Header, vermutlich ist es HTTP/0.9.
    Länge: nicht spezifiziert
    Wird in ‘S19.2E-1-1115-13104.ts.3’ gespeichert.
    
    S19.2E-1-1115-13104.ts.3                   [ <=>                                                                       ]      63  --.-KB/s    in 0s
    
    2024-01-08 14:06:39 (19,7 MB/s) - ‘S19.2E-1-1115-13104.ts.3’ gespeichert [63]

    der Stream bricht sofort wieder ab und im syslog kommt dann

    Code
    Jan  8 14:06:39 BM2LTS-MC vdr: [1458] Streamdev: Accepted new client (HTTP) 10.75.25.22:57434
    Jan  8 14:06:39 BM2LTS-MC vdr: [1458] ERROR: read from client (HTTP) 10.75.25.22:57434 failed: Ungültiger Dateideskriptor
    Jan  8 14:06:39 BM2LTS-MC vdr: [1458] streamdev-server: closing HTTP connection to 10.75.25.22:57434


    Ein 2. Versuch nach VDR restart, wobei hier der Stream OK zu laufen scheint, aber trotzdem ein anderer ERROR im syslog aufscheint .
    Dann hab ich mit CTRL-C abgebrochen:

    Code
    root@BM2LTS-MC:~# wget "http://10.75.25.22:3000/TS/S19.2E-1-1089-12060.ts"
    --2024-01-08 14:33:40--  http://10.75.25.22:3000/TS/S19.2E-1-1089-12060.ts
    Verbindungsaufbau zu 10.75.25.22:3000 … verbunden.
    HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
    Länge: nicht spezifiziert [video/mpeg]
    Wird in ‘S19.2E-1-1089-12060.ts.1’ gespeichert.
    
    S19.2E-1-1089-12060.ts.1                              [                                                                                            <=>            ]   7,29M   432KB/s               ^C
    root@BM2LTS-MC:~#

    Liebe Grüße g ;)

    NCV6dvbS2+Alphacrypt+ORF, BM2LTS4.4 NUC11i3 NVMe+HDD, BM2LTS2.94.4 AVG1 T7400 SSD+HDD NvidiaGT720

    6 Mal editiert, zuletzt von gggggg ()

  • Hi,


    heute hatte ich mal Zeit die aktuelle streamdev-server Version in der aktullen BM2LTS v4.4.10 zu testen.


    ich nutze dazu die bm2lts-zapperlist.m3u Datei die automatische über den WEB-CLIENT AM PORT: 8002 erstellt wird


    Code
    EXTM3U
    #EXTINF:-1,Das_Erste_HD
    http://192.168.1.128:3000/1
    #EXTINF:-1,ZDF_HD
    http://192.168.1.128:3000/2
    #EXTINF:-1,ZDFinfo_HD
    http://192.168.1.128:3000/3
    #EXTINF:-1,zdf_neo_HD
    http://192.168.1.128:3000/4

    Diese läuft z.B. jetzt seit ca. 1 Stunde und mehr incl. Umschalten der Kanäle hier ohne Abstürze.


    Code
    Jan 10 19:17:25 BM2LTS-DD vdr: [1721] streamdev-server: closing HTTP connection to 192.168.1.106:58468
    Jan 10 19:18:58 BM2LTS-DD vdr: [1721] Streamdev: Accepted new client (HTTP) 192.168.1.106:58479
    Jan 10 19:26:10 BM2LTS-DD vdr: [1721] streamdev-server: closing HTTP connection to 192.168.1.106:58485

    Hm, sieht für mich so alles normal aus

    (VDR) NUC11PAH & GEEKOM MINI-IT11-11. Generation * BM2LTS * DD NET S2 Max * NC * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2022) *

    (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65G29LA

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!