[dash2ts] Stream IPTV/Zattoo mit inputstream-adaptive und widevine

  • Ich kann dir nicht sagen welchen Level der N2 hat und auch nicht welchen Level die Filme anfordern. Das wird leider nicht protokolliert. Aber was ich oben geschrieben habe ist halt das was ich beobachtet habe beim testen. Auf dem PC und dem N2 ist die gleiche widevine Version. Die Auflösung hilft hier nicht weiter weil die bei Zattoo fix ist und in dem Fall ist sie HD (1280x720).

    Du kannst es ja mal selber testen. Ein Zattoo Free account ist ja umsonst.

  • Ich habe jetzt unter yavdr/Ubuntu jammy Kodi 21 via flatpak installiert. inputstream.adaptive ist auch gleich dabei:
    #> find /var/lib/flatpak/ -name inputstream.adaptive
    /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/0180df27c0a874e9a52c70c8f94195c51b80ee3b6d54242ea4d3a5b87020e333/files/lib/kodi/addons/inputstream.adaptive
    /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/0180df27c0a874e9a52c70c8f94195c51b80ee3b6d54242ea4d3a5b87020e333/files/share/kodi/addons/inputstream.adaptive

    Leider fehlt libssd_wv.so.
    #> ls -l /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/0180df27c0a874e9a52c70c8f94195c51b80ee3b6d54242ea4d3a5b87020e333/files/lib/kodi/addons/inputstream.adaptive
    insgesamt 3740
    lrwxrwxrwx 1 root root 28 Feb 5 22:35 inputstream.adaptive.so -> inputstream.adaptive.so.21.2
    lrwxrwxrwx 1 root root 30 Feb 5 22:35 inputstream.adaptive.so.21.2 -> inputstream.adaptive.so.21.5.9
    -rwxr-xr-x 2 root root 3828832 Jan 1 1970 inputstream.adaptive.so.21.5.9

    #> find /var/lib/flatpak/ -name "*libssd_wv*"
    #>

    Gibt es noch eine andere Möglichkeit an eine passende libssd_wv.so für Kodi 21 zu kommen?

  • Ich habe mich mal wieder an dash2ts mit flatpak Kodi 21 versucht. Die Links aus den README sollten soweit passen. Das aktuelle DCB-C Fernsehbild friert beim Umschalten auf einen IPTV/Zattoo Sender aber ein.

    Leider scheint libstdc++ von Ubuntu 22.04. zu alt für Kodi zu sein. Nach meinem Verständnis bringt doch flatpak alle nötigen Bibliotheken mit, um "unabhängig" zu funktionieren?

    #> strings /lib/x86_64-linux-gnu/libstdc++.so.6.0.30|grep GLIBCXX_3.4.3
    GLIBCXX_3.4.3
    GLIBCXX_3.4.30

    Gebraucht wird aber GLIBCXX_3.4.32:

    Mär 05 20:52:56 vdr vdr[2449]: [2485] SVDRP vdr < 127.0.0.1:58398 client connection accepted
    Mär 05 20:52:56 vdr vdr[2449]: [2485] SVDRP vdr > 127.0.0.1:58398 server created
    Mär 05 20:52:56 vdr vdr[2449]: [2485] SVDRP vdr < 127.0.0.1:58398 connection closed
    Mär 05 20:52:56 vdr vdr[2449]: [2485] SVDRP vdr < 127.0.0.1:58398 server destroyed
    Mär 05 20:52:57 vdr vdr[2449]: [2449] switching to channel 12 I-1457518131-80-1 (ONE HD)
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]SetPlayMode: 0
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]SetVolumeDevice: 255
    Mär 05 20:52:57 vdr vdr[2449]: Set Playmode 0
    Mär 05 20:52:57 vdr vdr[2449]: video: set closing
    Mär 05 20:52:57 vdr vdr[2449]: video: set clock --:--:--.---
    Mär 05 20:52:57 vdr vdr[2449]: video: reset start
    Mär 05 20:52:57 vdr vdr[2449]: video: set clock --:--:--.---
    Mär 05 20:52:57 vdr vdr[2449]: video: new stream start
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]SetVideoDisplayFormat: 1
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]GetSpuDecoder:
    Mär 05 20:52:57 vdr vdr[2449]: [2486] device 1 TS buffer thread ended (pid=2449, tid=2486)
    Mär 05 20:52:57 vdr vdr[2449]: [2484] buffer stats: 194768 (1%) used
    Mär 05 20:52:57 vdr vdr[2449]: [2484] device 1 receiver thread ended (pid=2449, tid=2484)
    Mär 05 20:52:57 vdr vdr[2449]: video/cuvid: closing eof
    Mär 05 20:52:57 vdr vdr[2591]: Error Open inputstream-adaptive lib: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9)
    Mär 05 20:52:57 vdr vdr[2591]: -------Start---------
    Mär 05 20:52:57 vdr vdr[2591]: Path /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi
    Mär 05 20:52:57 vdr vdr[2591]: drm_token:
    Mär 05 20:52:57 vdr vdr[2591]: Server Port 4321
    Mär 05 20:52:57 vdr vdr[2591]: Open lib /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9
    Mär 05 20:52:57 vdr vdr[2449]: [2595] device 2 receiver thread started (pid=2449, tid=2595, prio=high)
    Mär 05 20:52:57 vdr vdr[2449]: [2596] IPTV streamer thread started (pid=2449, tid=2596, prio=high)
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]SetPlayMode: 1
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]SetVolumeDevice: 255
    Mär 05 20:52:57 vdr vdr[2449]: Set Playmode 1
    Mär 05 20:52:57 vdr vdr[2449]: video: set trick-speed 0
    Mär 05 20:52:57 vdr vdr[2449]: [softhddev]GetVideoSize: 1280x720 1,77778
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]CreateOsd: left 154, top 621, level 0, using OpenGL OSD support
    Mär 05 20:52:57 vdr vdr[2449]: [2449] [softhddev]cOglOsd osdLeft 154 osdTop 621 screenWidth 1920 screenHeight 1080

  • Habe ich eigentlich schon :/:

    #> sudo systemctl status zattood.service
    zattood.service - Zattoo Daemon
    Loaded: loaded (/lib/systemd/system/zattood.service; bad; vendor preset: enabled)
    Active: active (running) since Fri 2025-03-07 17:05:47 CET;
    Main PID: 2027 (zattood)
    Tasks: 3 (limit: 18890)
    Memory: 6.0M
    CPU: 142ms
    CGroup: /system.slice/zattood.service
    └─2027 /usr/local/bin/zattood -v -k /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi>

    #> grep exec /usr/share/vdr/plugins/iptv/zattoostream.sh
    exec /usr/local/bin/zattoostream -v -p ${PORT} -u $PARAMETER

  • Leider nicht. Dash2ts wird von zattoostream aufgerufen und das wird aus zattoostream.sh heraus aufgerufen. Und in zattoostream.sh musst du das -v dazupacken.

    Gibt es noch ein anderes zattoostream.sh?

    #> grep exec /usr/share/vdr/plugins/iptv/zattoostream.sh
    exec /usr/local/bin/zattoostream -v -p ${PORT} -u $PARAMETER

  • Ok wer lesen kann ist klar im Vorteil....

    Ich hatte mich nur gewundert weil da nicht mehr debug kam. Wie sieht es denn mit Kodi aus ? Läuft es denn da und du kannst da Zattoo schauen ? Wenn ja dann scheint es ja einen mischmasch mit der glibc zu geben.

    Das dash2ts und das inputstream-adaptive.so plugin scheinen dann mit unterschiedlichen glibc übersetzt zu sein. Evtl. kannst du einen LD_PRELOAD der "fehlenden" glibc in das zattoostream.sh einbauen.

  • Wie sieht es denn mit Kodi aus ? Läuft es denn da und du kannst da Zattoo schauen ?

    Funktioniert ohne Probleme.

    Das dash2ts und das inputstream-adaptive.so plugin scheinen dann mit unterschiedlichen glibc übersetzt zu sein. Evtl. kannst du einen LD_PRELOAD der "fehlenden" glibc in das zattoostream.sh einbauen.

    zattoostream.sh habe ich jetzt ergänzt:

    LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6
    exec /usr/local/bin/zattoostream -v -p ${PORT} -u $PARAMETER

    Das hat sich leider nichts geändert und die Logs geben keine Hinweise.

    Ein direkter Aufruf von /usr/local/bin/zattoostream -v -p 4321 -u 1457518131 gibt auch keine Meldungen aus. :/

    Edited once, last by pluto (March 9, 2025 at 9:37 AM).

  • Schau doch mal mit ldd welche libs dash2ts und inputstream.adaptive.so.21.5.9 so brauchen. Wenn Kodi läuft dann müsste es doch auch standalone laufen.

    Ich vermute mal das inputstream.adaptive.so in flatpack eine eigene libc mitbringt. Dann müsste dein LD_PRELOAD dorthin zeigen.

    Übersetzt du das dash2ts selber ?

  • Ein direkter Aufruf von /usr/local/bin/zattoostream -v -p 4321 -u 1457518131 gibt auch keine Meldungen aus

    Ein direkter Aufruf funktioniert nicht weil dash2ts zuerst die TCP Verbindung zum port 4321 aufbauen will. Und wenn da kein listen zu existiert dann bleibt er da hängen.

    Um das so zu testen musst du vorher ein nc -l localhost 4321 aufrufen damit jemand auf dem Port ein listen macht.

  • Schau doch mal mit ldd welche libs dash2ts und inputstream.adaptive.so.21.5.9 so brauchen.

    #> ldd /usr/local/bin/dash2ts |grep libstdc
           libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000076b6a6e00000)

    #> ldd /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9|grep libstdc
    /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9)
    /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.15' not found (required by /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9)
           libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007507fba00000)

    #> ls -l /lib/x86_64-linux-gnu/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Mai 13 2023 /lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.30

    Ich vermute mal das inputstream.adaptive.so in flatpack eine eigene libc mitbringt. Dann müsste dein LD_PRELOAD dorthin zeigen.

    Stimmt:
    #> ls -l /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Mär 5 20:44 /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.33

    Müsste das dann nicht funktionieren?
    #> export LD_PRELOAD=/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libstdc++.so.6
    #> ldd /var/lib/flatpak/app/tv.kodi.Kodi/x86_64/stable/active/files/lib/kodi/addons/inputstream.adaptive/inputstream.adaptive.so.21.5.9
    /bin/bash: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libstdc++.so.6)
    /bin/bash: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libstdc++.so.6)

    Übersetzt du das dash2ts selber ?

    Ja. Mir ist bisher kein fertiges Paket für yaVDR bekannt.

  • Ich habe in dash2ts ein reuse der TCP Verbindungen eingebaut. Damit geht die Gesamtlast runter weil nicht jedesmal beim lesen eines Streampaketes eine neue Verbindung aufgebaut wird.

    Das gleiche habe ich euch beim zattood eingebaut und nun werden die EPG Daten recht flott aktualisiert. Auch werden damit die DNS Anfragen deutlich weniger.

    Hier noch das passende package.mk

  • Ließen sich damit auch BBC Kanäle im vdr streamen? Oder läuft das streaming bei BBC technisch anders ab als bei Zattoo?

    Könnte das am Wochenende mal testen..

    Klick für meine Hardware

    vdr1: Odroid N2+ 4GB | VDR*ELEC CE21-ng 64GB eMMC | Video über USB: 4TB SATA Rec (XFS) + 8TB SATA Archiv (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr2: Odroid N2+ 4GB | VDR*ELEC CE22-no 256GB eMMC | Video: 1TB microSD (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr3: HP ProDesk 400 G3 SFF (i3) | NVidia Quadro T400 | 2x 8GB | System: Ubuntu 24.02 LTS, yavdr ansible (vdr 2.7.3) auf 30GB mSATA SSD | Video: 3TB SATA (XFS) | 1x WinTV dualHD | IRMP RP2040 KBD

    TV: Philips 55OLED805

  • Aber ich habe gelesen das die BBC das streamen ausserhalb von UK unterbinden will. Also Geoblocking.

    Komme mit IP aus dem Land. Das ist kein Problem.

    Also bleibt zu prüfen ob BBC vdr iptv kompatible streamt... am besten mache ich dazu ein extra Thema auf.

    Klick für meine Hardware

    vdr1: Odroid N2+ 4GB | VDR*ELEC CE21-ng 64GB eMMC | Video über USB: 4TB SATA Rec (XFS) + 8TB SATA Archiv (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr2: Odroid N2+ 4GB | VDR*ELEC CE22-no 256GB eMMC | Video: 1TB microSD (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | IR onboard

    vdr3: HP ProDesk 400 G3 SFF (i3) | NVidia Quadro T400 | 2x 8GB | System: Ubuntu 24.02 LTS, yavdr ansible (vdr 2.7.3) auf 30GB mSATA SSD | Video: 3TB SATA (XFS) | 1x WinTV dualHD | IRMP RP2040 KBD

    TV: Philips 55OLED805

  • Erweitere doch mal /etc/ld.so.conf um den Pfad zu der flatpack libstdc

    Ich habe den Pfad zu den flatpack Libraries in der /etc/ld.so.conf bzw. unter /etc/ld.so.conf.d/flatpack.conf ergänzt und den Cache via ldconfig aufgefrischt. Das hat leider zu einem Hänger beim Booten des Systems geführt. Mit einem chroot auf die yavdr Partition bekomme ich folgende Fehlermeldung:

    #> chroot /mnt/yavdr
    /bin/bash: /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libtinfo.so.6: no version information available (required by /bin/bash)
    /bin/bash: symbol lookup error: /var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/24.08/active/files/lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __tunable_is_initialized, version GLIBC_PRIVATE

    Nach einem Löschen des Caches läuft das System wieder.

Participate now!

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