Beiträge von Odys001kn

    Hallo,

    wenn dann stattfindet...

    Eine Idee,

    Wofür: möglichst viele Events aufzeichnen und später "nachsehen"

    Bin ein leidenschaftlicher Tvheadend Server Nutzer (DVB-S, IPTV) mit Kodi auf Android-TV

    Vorüberlegungen:
    Quelle:
    - ARD und ZDF Live (DVB-S)
    - ARD Live-Eventstreams (täglich bis zu zehn) und ZDF Live-Eventstreams (per IPTV)

    Mit EPG zur automatischen Aufzeichnung, bei DVB-S kein Problem, bei IPTV ein Problem.

    Beispielsweise war 2018 im Beitrag "Olympia 2018" schon eine prima Lösung von "eminga" vorhanden.
    -------------------------------------------------------------------------------
    Zum jetzigen Zeitpunkt sind noch keine Livestreams bekannt.

    Wenn sie dann bekannt sind, diese dann mit pipe:///usr/bin/ffmpeg ... in Tvheadend integrieren.

    und einfach in Tvheadend die Events mit einer xmltv importieren.

    Wie an die EPG Daten kommen?

    ein Kalender ist schon verfügbar:
    https://tokio.sportschau.de/tokio2020/tv/index.html
    https://www.zdf.de/sport/olympia

    und ein Zeitplan mit einer Auflistung zu den einzelnen Wettkämpfen auch:
    https://tokio.sportschau.de/tokio2020/zeitplan/index.html
    https://www.zdf.de/sport/olympia

    und bei vielen Wettkämpfen sind auch Links mit ICS Dateien vorhanden:
    https://tokio.sportschau.de/tokio2020/erge…n554-termin.ics

    dann noch mit einem Tool wie dieses die ICS in eine xmltv wandeln:
    https://github.com/ultimate-pms/ical-to-xmltv


    Oder/und

    mit EPG-Rohdaten im JSON-Format

    und dann mit einem Tool wie dieses:
    https://github.com/Jalle19/openwebif-xmltv-converter

    oder:
    https://github.com/andreask/convert_jsontv

    oder abgeleitet von hier:
    https://github.com/mclenburg/plutoTV-tvheadend

    einfach in eine xmltv wandeln.


    VG

    Vielen Dank für die Rückmeldungen, einige ToDo sind aber noch:
    - ein Switch von Mosaic zu Mosaic klappt nicht, die ffmpeg Instanzen werden nicht korrekt beendet, dann kommt es zur doppelten Anzahl von den temporären Aufzeichnungen
    -- workaround zur Zeit, Mosaic-Kanal in Kodi stoppen dann nächstes Mosaic starten
    - woher, wie die m3u aktuell halten
    - alle ZDF Streams sind im Moment nicht verfügbar
    - die Lösung kann auf alle verfügbaren Streams angewendet werden, sofern genügend Quellen verfügbar sind oder geschickt die Transponder/Services vom DVB Stream kombiniert werden
    - auf einem anderen Proxmox Server läuft der Container nicht, bringt Proxmox Server zum Absturz (Z68 Pro3 Gen3 mit Intel i5-2500 CPU 3,30GHz)

    Hätte jemand einen Tip zur Optimierung, Lösung?

    Die Konfiguration in tvHeadend:
    General: IPTV threads: 12, Packet backlog: on

    DVB Inputs Networks: ohne "Use A/V library" Maximum timeout: 15
    als Automatic Network die Event m3u von "Kodinerds IPTV - Fertige Liste mit freien IPTV-Kanälen"
    54 Muxes vorhanden, 19 Services
    als Automatic Network eine Liste von "EmBeEins" (Github)
    44 Muxes vorhanden, 35 Services
    als Automatic Network eine Liste von Nutzer "buers" hier aus dem Forum
    94 Muxes vorhanden, 55 Services
    als IPTV Network einen zuverlässigen Stream von intern (DVB) als Backup
    als IPTV Network "3x3-pip" für die manuellen 3x3 Streams

    DVB Inputs Muxes: EPG scan bei allen deaktiviert
    Muxe der m3u's mit Service aktiviert
    zusätzlich 6 Stück manuelle Muxe mit pipe im Format: pipe:///home/hts/5xx-5xx.mosaic.sh, Respawn: on, kill timeout: 30

    DVB Inputs Services: Prio alle Services auf 0, nur Backup Service auf -5


    Stream Stream Profiles: pass: default, Restart on error, Rewrite 0 alles deaktiviert

    Configuration Channel / EPG: Name aus Mux/Service der Streams, jedem Stream noch den "Backup-Stream" zugeordnet weil sonst die Scripte zum erstellen der temporären Dateien nicht funktionieren wenn einer der Event Kanäle gerade nicht verfügbar ist, die Nummern der Streams von 500 bis 551 gegeben, zusätzlich die 3x3-pip Streams als Channel mit Namen "Event-Mosaic-500-508" "Event-Mosaic-509-517" ... erstellt/benannt


    der LXC Container ist eine eigene tvHeadend "Instanz" die Playlist wird an den eigentlichen tvHeadend Server übergeben und somit die Kanäle dann dem PVR von Kodi zur Verfügung gestellt.

    hmm, hoffe nichts vergessen zu haben.

    Die Scripte für pipe und ffmpeg.
    500-508.3x3.sh.txt
    500-508.mosaic.sh.txt
    509-517.3x3.sh.txt
    509-517.mosaic.sh.txt
    518-526.3x3.sh.txt
    518-526.mosaic.sh.txt
    527-535.3x3.sh.txt
    527-535.mosaic.sh.txt
    536-544.3x3.sh.txt
    536-544.mosaic.sh.txt
    545-553.3x3.sh.txt
    545-553.mosaic.sh.txt

    Eine Vorstellung meiner Lösung oder auch Inspiration für ein neues/vorhandenes Add-On.
    Der Wunsch war, eine Übersicht zu erhalten was läuft im Moment auf den EVENT Kanälen der ÖR Sender.
    Entstanden durch zum Beispiel:
    ... die weitere Sport Live Übertragung findet im Livestream statt ...
    ... Sendung XY im Livestream am ... um ... Uhr ...
    nicht zuletzt kürzlich, Format des TV Beitrag mit DGS, die nach wie vor vermisste HBBTV Funktion "Auf ROT geht's los!"
    Der Anspruch, Lösung mit tvHeadend und Kodi.

    Die Lösung pip Funktion 3x3 Streams zur Übersicht gleichzeitig sehen und dann zum Kanal schalten.
    Es sind nun 6 Streams mit je 3x3 pip Funktions-Streams verfügbar, welche im Loop jeweils den Stream für 10 Sekunden
    abspielen.
    Die Hardware Anforderungen an den tvHeadend Server mit zusätzlichen 9 einzelnen ffmpeg Instanzen sind schon gewaltig.
    Mit Hilfe der integrierten Intel-Grafik wird aktiv die GPU genutzt, die CPU Last wird mit zusätzlichen
    ffmpeg Parametern beschränkt.
    Die Adressen der Streams kommen von den Listen "Kodinerds IPTV - Fertige Liste mit freien IPTV-Kanälen", einer Liste von "EmBeEins" (Github) und einer Liste von Nutzer "buers" hier aus dem Forum.
    Das pip-tvheadend-System selber ist ein LXC-Container auf einem Proxmox Server.
    Mainboard: PRIME Z370-P, CPU: Intel i7-8700K 3,7 GHz, 32 GB Ram
    Container: Ubuntu 18.04, tvHeadend last 4.3.0, standard ffmpeg, 4 Cores, 2 GB Ram, vaapi mit durchgereichten /dev/dri/renderD128

    Quellen:
    Der Ausgang des Projekts war ein Eintrag im tvHeadend Forum:
    https://tvheadend.org/boards/5/topics/33581
    weitere Ressourcen:
    https://mrod.space/2019/10/04/bra…ith-ffmpeg.html
    https://trac.ffmpeg.org/wiki/Hardware/VAAPI
    https://superuser.com/questions/1124…ture-in-picture
    xttps://http://gist.github.com/elalemanyo/5d7d607b5d4d8b966d5f
    https://www.oodlestechnologies.com/blogs/PICTURE-…t-using-FFMPEG/
    https://tvheadend.org/issues/4155
    https://tvheadend.org/boards/4/topics/36842
    https://stackoverflow.com/questions/1155…redirect=1&lq=1

    zur CPU Cptimierung:
    https://www.reddit.com/r/ffmpeg/comme…caling_hdsdlow/
    https://lorenzo.mile.si/limiting-cpu-u…ith-ffmpeg/114/
    https://askubuntu.com/questions/3651…recording-video

    Bilder: pip-last Snapshot der GPU/CPU Auslastung, die Aufnahme und Wiedergabe der Sendung "Sho... Que..."
    durfte nicht beeinträchtigt werden bei den Tests, sonst hinge der Haussegen schief :) und auch andere Container und VM's sollten weiter gut laufen.

    Snapshot der einzelnen Streams, es wird dann eben gezählt und umgeschaltet, Beispiel: in pip509-517 möchte ich 2:2 sehen, dann wähle 513...

    Die Konfiguration in tvHeadend und die Scripte dann im nächsten Thead.

    Viele Grüße
    Mike

    Hallo,

    mit tvheadend nutzen:

    pipe m3u:

    Code
    #EXTM3U
    #EXTINF:-1 tvg-id="olympia1",Olympia 1
    pipe:///usr/bin/ffmpeg -loglevel fatal -i https://olympia1ardmsl-lh.akamaihd.net/i/ows1_msl@167397/master.m3u8 -vcodec copy -acodec copy -f mpegts pipe:1
    #EXTINF:-1 tvg-id="olympia2",Olympia 2
    pipe:///usr/bin/ffmpeg -loglevel fatal -i https://olympia2slmsl-lh.akamaihd.net/i/ows2_msl@37191/master.m3u8 -vcodec copy -acodec copy -f mpegts pipe:1
    #EXTINF:-1 tvg-id="olympia3",Olympia 3
    pipe:///usr/bin/ffmpeg -loglevel fatal -i https://olympia3slmsl-lh.akamaihd.net/i/ows3_msl@37201/master.m3u8 -vcodec copy -acodec copy -f mpegts pipe:1


    Backup pipe m3u:

    Code
    #EXTM3U
    #EXTINF:-1 tvg-id="olympia1",Olympia 1
    pipe:///usr/bin/ffmpeg -loglevel fatal -i http://o2018.hbbtvlive.de/zdf/6001.ts -vcodec copy -acodec copy -f mpegts pipe:1
    #EXTINF:-1 tvg-id="olympia2",Olympia 2
    pipe:///usr/bin/ffmpeg -loglevel fatal -i http://o2018.hbbtvlive.de/zdf/6002.ts -vcodec copy -acodec copy -f mpegts pipe:1
    #EXTINF:-1 tvg-id="olympia3",Olympia 3
    pipe:///usr/bin/ffmpeg -loglevel fatal -i http://o2018.hbbtvlive.de/zdf/6003.ts -vcodec copy -acodec copy -f mpegts pipe:1

    xml in tvheadend mit xmltv.sock Script (/home/hts/olympia2018-xml.sh):

    Bash
    #!/bin/sh
    
    
    cd /home/hts/
    wget http://olympiaepg.duckdns.org/epg.xml
    cat /home/hts/epg.xml | socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock
    rm /home/hts/epg.xml

    crontab als hts:

    Code
    15 * * * * /home/hts/olympia2018-xml.sh

    Hallo,

    vielen Dank für die Umsetzung der Funktion. Ich habe die Daten nun erfolgreich in Tvheadend einfügen können. Dabei habe ich folgende Erfahrungen gemacht:
    der Import erfolgt mit dem internen xmltv.sock von Tvheadend so:

    Code
    cat /home/hts/xmltv.xml | socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock

    dabei trat dieser Fehler auf:

    Code
    2017-07-22 18:11:18.465 xmltv: xmltv: htsmsg_xml_deserialize error Unexpected end of file during parsing of label reference
    2017-07-22 18:11:18.465 xmltv: xmltv: failed to read data

    ein Prüfung des xml File brachte:

    also habe ich im File xmltv.xml "Pop & Rock" durch "Pop" ersetzt und der Import konnte mit cat ... erfolgreich ausgeführt werden.Jedoch wurde kein EPG bei Tvheadend oder Kodi angezeigt.
    Anschließend habe ich das File xmltv.xml noch im UTF-8 Format gespeichert und alle Umlaute (ä durch ae; usw.) ersetzt. Anschließend noch einmal mit cat .. importiert und EPG ist in Tvheadend und Kodi verfügbar.

    Grüße und Guten Abend!