Beiträge von Paulaner

    carel

    ich hatte jetzt nochmal Zeit zum Testen.

    Die Einträge in der channels.conf habe ich geändert:

    Code
    :@101 IPTV ffmpeg2iptv_raw-test
    Das Erste HD;IPTV:1010:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=1:I:0:258=27:256=@15;257=@122:0:0:100:65281:200:0
    HSE24 HD;IPTV:1020:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=2:I:0:258=27:256=@15;257=@122:0:0:300:65281:400:0

    Jetzt habe ich auch ein Bild + Ton bei dem Sender HSE24. ;)

    Allerdings ist das Bild ist ebenso teilweise ruckelnd und hat Artefakte wie bei dem Stream von "Das Erste HD", den ich immer zum Testen genommen habe.

    Am unteren Bildrand hat es Schlieren und Artefakte, was besondres bei viel Bewegung im Bild deutlich zu sehen ist.

    Der Ton kommt in Stereo und ist auch manchmal ruckelnd.


    Das Verhalten bei "HSE24" ist genauso wie bei den Streams, die ich eigentlich empfangen möchte.

    Damit kannst Du testen, ob und wie es bei Dir funktioniert.



    Im ffmpeg.log gibt es tausende von den Meldungen, die ich bereits beschrieben habe.

    Hier mal noch das stark gekürzte ffmpeg.log

    Ich musste meine Antwort teilen, weil sonst die maximal 10.000 Zeichen überschritten wurden. ;)


    Noch etwas zu dem Test mit der URL: https://hse24.akamaized.net/hls/live/2006663/hse24/playlist.m3u8

    Das geht überhaupt nicht, denn da kommen ca. 5.000 Meldungen mit dem gleichen Inhalt:

    [hls @ 0x55a214a58a00] Skip ('#EXT-X-PROGRAM-DATE-TIME:2024-03-25T12:54:03.601Z')


    Hier mal noch das stark gekürzte ffmpeg.log 

    carel

    Die Meldung "WARNING: library configuration mismatch - avcodec" hatte ich auch gesehen und nach einer kurzen Recherche konnte ich die Warnung beseitigen. Meine Lösung aus dem Internet war:

    Code
    apt install --reinstall libavcodec58 libavdevice58 libavfilter7 libavformat58 libavutil56 libpostproc55 libswresample3 libswscale5


    Wenn ich jetzt ffprobe http://192.168.1.3:5000/api/zde/live/ard.m3u8 ausführe, dann ist da keine Warnung mehr vorhanden:


    Hier noch die gewünschten Angaben zu dem verwendeten ffmpeg :

    Ausgabe von ffmpeg -version

    Ausgabe von  sudo find /usr -name "libavcodec.so.*" 

    Code
    root@yavdr:/home/yavdr# sudo find /usr -name "libavcodec.so.*"
    /usr/lib/x86_64-linux-gnu/libavcodec.so.58.134.100
    /usr/lib/x86_64-linux-gnu/libavcodec.so.58


    Meine Tests habe ich immer mit folgendem Eintrag in der channels.conf  gemacht:

    Code
    :@101 IPTV ffmpeg2iptv_raw-test
    Das Erste HD;IPTV:1010:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=1:I:0:258=27:256=@15;257=@122:0:0:100:65281:200:0
    Das Erste HD;IPTV:1010:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=1:I:0:258=27:0:0:0:100:65281:200:0

    Allerdings löscht mir der VDR jetzt immer die APID,DPID 256=@15;257=@122: aus dem Eintrag (2. Zeile), obwohl diese richtig sind.

    Dann habe ich immer nur noch die 3. Zeile in der "channels.conf" stehen.


    Die Werte wie ind der 2. Zeile verwende ich zum Beispiel bei den Tests, wenn ich den VLC-Player mit dem Script vlc2iptv_raw nutze.

    damit habe ich dann beide Tonkanäle: AAC-Stereo und eAC3-5.1

    Code
    Das Erste HD;IPTV:710:S=0|P=1|F=EXT|U=vlc2iptv_raw|A=710:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0

    carel

    ich habe die von Dir empfohlenen Werte auf der Konsole ausgeführt:

    Code
    sudo sysctl -w net.core.rmem_max=2097152
    sudo sysctl -w net.core.rmem_default=2097152
    sudo sysctl -w net.core.wmem_max=2097152
    sudo sysctl -w net.core.wmem_default=2097152

    aber es gab keinerlei Änderung.

    Das Bild ist immer noch zerhackt, bleibt manchmal stehen und Ton habe ich gar keinen mehr. :(


    Im syslog gibt es jetzt diese Meldungen:


    Im ffmpeg.log gibt es ständig diese Meldungen:

    carel

    mit der letzten Änderung habe ich das erste mal ein Bild und auch manchmal Ton. :)


    Das Bild ist allerdings zerhackt, ruckelt, bleibt stehen und es gibt viele Blockartefakte.

    Der Ton ist manchmal da, aber meistens kein Ton.


    Hier das ffmpeg.log:

    Ich musste das Log kürzen, da es sonst die 10.000 Zeichen überschritten hätte.

    Aber ich hoffe Du kannst mit dem Log etwas anfangen.

    Mit HOST=127.0.0.1 ergibt sich folgende Meldung im ffmpeg.log:

    Okay, next step next error ;)

    jetzt kommt in der /tmp/ffmprg.log diese Fehlermeldung (unterer Ausschnitt aus dem Log), siehe Zeile #28 + #29 :

    carel

    was hat diese Zahl 4096 in Zeile #5 zu bedeuten?

    Kann daraus der Fehler kommen?

    Code
    LC_NUMERIC=C ffmpeg \
    -y -hide_banner -user_agent "Mozilla/5.0" -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 1 $CORRECT_TS_OVERFLOW \
    $DISCARD_CORRUPT_PACKAGES -probesize $PROBESIZE -analyzeduration $ANALYZEDURATION $STREAM_FORMAT -i "${URL}${BUFFER}" \
    -codec:v $VCODEC $VCODEC_OPTIONS -codec:a $ACODEC $ACODEC_OPTIONS -streamid 0:$VPID -streamid 1:$APID $FLUSH_PACKETS \
    -f mpegts -mpegts_transport_stream_id $TID -mpegts_pmt_start_pid 4096 -mpegts_service_id $SID \
    -mpegts_original_network_id $NID udp://$HOST:$PORT?pkt_size=1316\&buffer_size=65536\&overrun_nonfatal=1 &>/tmp/ffmpeg.log &

    Mit dem VLC-Player unter Windows10 kann ich problemlos den Stream sehen.

    VLC-Player starten -> Medien -> Netzwerkstream öffnen -> Eingabe von: http://192.168.1.3:5000/api/zde/live/ard.m3u8 und nach ein paar Sekunden sind Bild+Ton da.



    Auch direkt mit dem VDR und dem vdr-plugin-iptv kann ich den Stream schon direkt anschauen.

    Dazu muss ich in der channels.conf folgenden Eintrag einfügen:

    Code
    Das Erste HD;IPTV:710:S=0|P=1|F=EXT|U=vlc2iptv_raw|A=710:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0

    und dazu gibt es dann noch in /etc/vdr/plugins/iptv/vlcinput eine Datei Das Erste HD.conf  mit dem Inhalt:

    Code
    URL="http://192.168.1.3:5000/api/zde/live/ard.m3u8"

    Hier gibt es nur einen wesentlichen Nachteil, das Umschalten zwischen den Sendern dauert sehr lange, ca. 20 Sekunden und manchmal klappt es gar nicht.

    Also nicht praktikabel für den produktiven Einsatz und deshalb gibt es ja den Versuch das Ganze ohne den VLC-Player zu machen, sondern mit  ffmpeg wie es auch im TVheadend verwendet wird.



    Hier noch die Ausgabe von: ffprobe http://192.168.1.3:5000/api/zde/live/ard.m3u8:

    carel

    ich habe alle Änderungen von Dir übernommen und es sieht nicht schlecht aus, obwohl noch kein Bild+Ton da sind. :)


    In der syslog gibt es folgende Meldung wenn ich zum Streamingkanal umschalte.

    Die Meldungen bedeuten, dass der Stream empfangen wird:

    Code
    Mar 24 12:08:47 yavdr vdr: [2759] switching to channel 101 I-65281-200-100 (Das Erste HD)
    Mar 24 12:08:47 yavdr api[1635]: 192.168.1.3 - - [24/Mar/2024 12:08:47] "GET /api/zde/live/ard.m3u8?buffer_size=16777216 HTTP/1.1" 200 -


    In der /tmp/ffmpeg.log gibt es jetzt folgende Meldungen:

    Das sieht schon nicht schlecht aus, bis auf die letzte Zeile: 4096: Permission denied

    Vielleicht hast Du dafür auch noch eine Lösung, denn der Rest scheint ja schon zu funktionieren! ;)


    PS: Ich weiß nicht ob das wichtig ist, aber die Zahl 4096 habe ich schon im TVheadend Status -> Stream gesehen, denn da wird eine PID list angezeigt.

    Diese PID list ist bei allen von mir verwendeten Streams gleich und sieht so aus:  0,1,16,17,256,257,258,4096 

    SHF

    wenn ich die Änderung von carel mit Deinem Script teste, dann habe ich auch im syslog nun keine Fehlermeldung mehr,

    aber dafür in der neuen /tmp/ffmpeg.log nur folgende Meldung:

    Code
    ?buffer_size=16777216: No such file or directory


    Mehr kommt da nicht. Kannst Du da mal nachschauen, wo es da noch hakt?


    Für heute ist allerdings dann erstmal Schluss, es geht dann frühestens Morgen weiter! ;)

    carel

    es geht vorwärts! ;)

    mit der Änderung >/tmp/ffmpeg.log bekomme ich keine Fehlermeldungen mehr im syslog, nur noch die Bestaätigung des Wechsels auf den Kanal 101:

    Code
     Mar 23 23:24:33 yavdr vdr: [32532] switching to channel 101 I-0-1010-1 (Das Erste HD)


    Dafür gibt es im neuen /tmp/ffmpeg.log jetzt folgende Meldungen:

    Code
    1:http://192.168.1.3:5000/api/zde/live/ard.m3u8
    1:http://192.168.1.3:5000/api/zde/live/ard.m3u8
    2:http://192.168.1.3:5000/api/zde/live/zdf.m3u8
    3:http://192.168.1.3:5000/api/zde/live/rbb-brandenburg.m3u8?buffer_size=16777216: Protocol not found
    Did you mean file:1:http://192.168.1.3:5000/api/zde/live/ard.m3u8
    1:http://192.168.1.3:5000/api/zde/live/ard.m3u8
    2:http://192.168.1.3:5000/api/zde/live/zdf.m3u8
    3:http://192.168.1.3:5000/api/zde/live/rbb-brandenburg.m3u8?buffer_size=16777216?


    Die dabei für die Streamingkanäle verwendete /var/lib/vdr/channels.conf und die entsprechende /etc/vdr/plugins/iptv/urls.conf habe ich im oberen Beitrag #103 bereits gepostet.


    Die Syntax in der urls.conf scheint hier noch nicht richtig zu sein. Oder?

    Hast Du da noch eine Idee, was ich testen kann?

    Ich habe heute noch etwas getestet.

    Meine channels.conf für die Streaming-Kanäle sieht jetzt folgendermaßen aus:

    Code
    :@101 IPTV-Sender Tel ffmpeg2iptv_raw-test
    Das Erste HD;IPTV:1010:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=1:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    ZDF HD;IPTV:1020:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=2:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    RBB Brandenburg HD;IPTV:1030:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw|A=3:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0


    Die Scripte von carel und SHF unterscheiden sich nur in der Funktion für die Auswahl der URLs für die einzelnen Kanäle/Streams.

    Zum testen werden beide Scripte jeweils über einen symbolischen Link als ffmpeg2iptv_raw benannt, also ohne *.sh. Deshalb musste auch die Zeile:

    local CHANNEL_RECORD=`grep "[:]S=[10][|]P=[10][|]F=EXT[|]U=ffmpeg2iptv_raw[|]A=$PARAMETER[:]I" $CHANNELS_CONF` entsprechend angepasst werden.


    Nach den Änderungen der Zeile HOST='127.0.0.1' habe ich in beiden Scripts nur noch 1 Fehlermeldung, die bei beiden gleich ist! :!:

    Beim Script von SHF gibt es noch in /etc/vdr/plugins/iptv/vlcinput jeweils ein Datei mit der URL, wie z.B. Das Erste HD, welche beim ursprünglichen alten Script: vlc2iptv_raw einwandfrei funktionieren:

    Code
    URL="http://192.168.1.3:5000/api/zde/live/ard.m3u8"

    Wenn ich nun auf den Streamingkanal 101 schalte, dann kommt folgende Fehlermeldung:

    Code
    Mar 23 17:17:43 yavdr vdr: [1245] switching to channel 101 I-0-1010-1 (Das Erste HD)
    Mar 23 17:17:43 yavdr vdr[3520]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw: Zeile 92: 1: Keine Berechtigung

    Die Zeile #92 ist folgende: LC_NUMERIC=C ffmpeg \




    Mein Test mit dem Script von carel zeigt genau die gleiche Fehlermeldung!

    Für die Verwendung vom Script carel habe ich noch folgende Datei /etc/vdr/plugins/iptv/urls.conf angelegt:

    Code
    1:http://192.168.1.3:5000/api/zde/live/ard.m3u8
    2:http://192.168.1.3:5000/api/zde/live/zdf.m3u8
    3:http://192.168.1.3:5000/api/zde/live/rbb-brandenburg.m3u8

    Hier kommt bei Aufruf von Streamingkanal 101 die Fehlermeldung:

    Code
    Mar 23 17:33:40 yavdr vdr: [2336] switching to channel 101 I-0-1010-1 (Das Erste HD)
    Mar 23 17:33:40 yavdr vdr[2620]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw: Zeile 70: 1: Keine Berechtigung

    Die Zeile #70 ist folgende: LC_NUMERIC=C ffmpeg \ . also genau an der gleichen Stelle, wie im anderen Script von SHF


    Ich hoffe das hilft Euch bei der Fehlersuche! ;)

    carel

    ich habe mal Deine neue ffmpeg2iptv.sh getestet.


    Mit der von Dir vorgeschlagenen Version eines Kanals in der channels.conf :

    NDR;IPTV:10:S=1|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=http://192.168.1.3:5000/api/zde/live/ndr-niedersachsen.m3u8:I:0:100:200:0:0:300:65281:400:0

    gab es überhaupt kein Bild mehr im VDR und der Kanal wurde sofort gelöscht.


    So geht es also nicht, sondern man muss den Parameter A=1...x verwenden und das als Parameter für die Auswahl der URLs verwenden.

    Ich habe deshalb folgende neue Einträge zum Testen in der channels.conf erstellt:

    Code
    :@101 IPTV-Sender Tel ffmpeg2iptv_raw-test
    Das Erste HD tel;IPTV:1010:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=1:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    ZDF HD tel;IPTV:1020:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=2:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    RBB Brandenburg HD tel;IPTV:1030:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=3:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    MDR Sachsen HD tel;IPTV:1040:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=4:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    NDR Fernsehen HD tel;IPTV:1050:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=5:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    RTL HD tel;IPTV:1060:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=6:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    ProSieben HD tel;IPTV:1070:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=7:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    Sat.1 HD tel;IPTV:1080:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=8:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0
    ARTE HD tel;IPTV:1090:S=0|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=9:I:0:258=27:256=@15;257=@122:0:0:1:0:0:0



    Und dazu zusätzlich eine /etc/vdr/plugins/iptv/vlcinput/urls.conf erstellt:



    Wenn ich auf den Kanal 101 "Das Erste HD" schalte und anschließend auf Kanal 102 "ZDF HD", dann gibt es kein Bild+Ton.

    In der syslog gibt es folgende Einträge:

    Code
    Mar 22 17:56:05 yavdr vdr: [26747] switching to channel 101 I-0-1010-1 (Das Erste HD tel)
    Mar 22 17:56:05 yavdr vdr[27066]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw.sh: Zeile 66: 127.0.0.1: Befehl nicht gefunden
    Mar 22 17:56:05 yavdr vdr[27067]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw.sh: Zeile 87: 1: Keine Berechtigung
    Mar 22 17:56:22 yavdr vdr: [26747] switching to channel 102 I-0-1020-1 (ZDF HD tel)
    Mar 22 17:56:22 yavdr vdr[27126]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw.sh: Zeile 66: 127.0.0.1: Befehl nicht gefunden
    Mar 22 17:56:22 yavdr vdr[27127]: /usr/share/vdr/plugins/iptv/ffmpeg2iptv_raw.sh: Zeile 87: 2: Keine Berechtigung


    Vielleicht kannst Du Dir das nochmal anschauen.

    Unsicher bin ich mit der Datei für die URLs: /etc/vdr/plugins/iptv/vlcinput/urls.conf.

    Ich weiß nicht ob das so überhaupt funktioniert, wie ich mir das ausgedacht habe.

    SHF

    ich habe das mal getestet, funktioniert noch nicht.


    Das ist mein Eintrag in der VDR-channels.conf:

    Code
    :@101 IPTV-Sender iptvstream-test
    Das Erste HD tel;IPTV:1010:S=1|P=1|F=EXT|U=ffmpeg2iptv_raw.sh|A=1:I:0:258=27:256=@15;257=@106:0:0:1:0:0:0


    Im syslog gibt es folgende Fehlermeldung, wenn ich zum Kanal 101 umschalte:

    Code
    Mar 21 10:56:24 yavdr vdr: [3957] switching to channel 101 I-0-1010-1 (Das Erste HD tel)
    Mar 21 10:56:24 yavdr vdr: ffmpeg2iptv_raw: error: no iptv channel with parameter 1 found


    Jetzt kommt die Frage, wo weise ich denn dem Script die URLs von der telerisin.api  zu, also den iptv channel?

    Wenn ich dein Script richtig lese, dann sollte das in /etc/vdr/plugins/iptv/vlcinput/ sein.

    Besser wäre dann wahrscheinlich einen anderen Ort zu wählen, wie z.B. /etc/vdr/plugins/iptv/ffmpeginput/ oder so ähnlich!


    Aber vor allem wie soll denn dann diese Datei aussehen Dateiname + Inhalt? :/

    Ich denke SHF hat da recht, dass im Eigentlichen nur ein "umpacken" in einen anderen Container nötig ist


    Ich habe mal das Tool MediaInfo-Portable auf meinem Windows-PC installiert um die gesendeten Streams zu analysieren.

    Dann noch eine Probeaufnahme von einem Stream http://192.168.1.3:5000/api/zde/live/ndr-niedersachsen.m3u8 genommen, so wie der von der telerising.api bereitgestellt wird.


    Wenn ich das richtig interpretiere, dann wird der Stream in avc1 gesendet.

    Hier mal die komplette Ausgabe vom MediaInfo:

    Ich hoffe es hilft Euch weiter.


    Aber nochmals der Tipp an die Leute, die echt ein Interesse daran haben, um das IPTV auf den VDR zu bekommen:

    Es ist wirklich sehr leicht den Zattoo-Free-Tarif zu abonnieren. Man braucht nur eine Email-Adresse, mehr nicht. Keine persönlichen Angaben usw.

    Dann kann man schon per Zattoo-App die Sender aus den Free-Tarif am Handy/Tablet anschauen.


    Wenn man dann wie ich etwas mehr will, dann sollte man sich das Script der telerising.api installieren.

    Einen allerdings Kodi-lastigen Thread dazu gibt es hier: Telerising API - Zattoo, blue TV & Sky CH für tvHeadend und VLC

    Da ist dann auch im 1. Beitrag der Downloadlink. gestartet wird das Script dann am Besten per systemd-service.