Posts by carel

    Let's see if this is HLS related or something different.


    Can you replace one url from urls,conf with this one and switch to it:

    Code
    https://hse24.akamaized.net/hls/live/2006663/hse24/playlist.m3u8


    ffmpeg version and config, because I saw a version mismatch in the ffprobe dump:


    WARNING: library configuration mismatch - avcodec

    Maybe there's another version of the library floating around

    Code
    ffmpeg -version
    sudo find /usr -name "libavcodec.so.*" 


    And can you share the channels.conf channel line you tested with?

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

    Der Ton ist manchmal da, aber meistens kein Ton.

    Try following:

    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

    I’ve seen that VLC works, but ffmpeg needs above lines to get performant udp streaming


    Crap..


    Can you change the lines in urls.conf from


    1:http.. to 1,http.. as in:

    Code
    1,http://192.168.1.3:5000/api/zde/live/ard.m3u8


    And you need (random but unique) values for SID, and TID in channels.conf. NID can be 65281 for all channels. Example:

    Code
    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

    Here I chose 100 and 200

    Next line might have 300 and 400

    And so on


    Next try 😊


    Just try to start manually once to verify no errors are raised

    Code
    ./ffmpeg2iptv_raw 1 4321

    Some changes:


    #!/bin/bash dropped off

    HOST= line was wrong

    Simplified: use ‘sed’ to find and print the url line

    New URLS_CONF



    urls.conf line beispiel

    Code
    1050:http://192.168.1.3:5000/api/zde/live/ndr-niedersachsen.m3u8


    You can try and start it manually:


    ./ffmpeg2iptv_raw.sh 1050 4321


    The script should not throw an error

    Little update of the script

    Code
    ffmpeg2iptv_raw.sh



    channels.conf line, with video pid=100, audio pid=200, service ID=300, transponder id= 400 and network id = 65281

    All random values, parsed to ffmpeg.

    Let's hope IPTV plugin will not choke on the "A=url" .. If it does you will need to use a separate "urls.conf" or "CHANNELS.CONF"

    Code
    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

    Das ging eigentlich problemlos, lediglich bei der $SID und $TID musste ich raten.

    These values must be unique and match between what is used in the script and the channels.conf. The value themselves can be randomly chosen (< 0xFFFF)

    I used the 'cksum' command to generate them (see above)

    I used an urls.conf and didn't add the URL as parameter in channels.conf. That allows me to change it without having to restart VDR

    Quote

    Ich habe dem vdr-plugin-iptv noch eine Chance gegeben und die letzten Tage etwas mit dem Script iptvstream.sh getestet.

    Allerdings muss ich aber gleich sagen, es gab da keinerlei Erfolge, d.h. kein Bild und kein Ton. :(


    In order to be able to record and watch, VDR wants SID, NID and TID values that match with the values in the UDP Transport stream.

    I decided to generate these based on a 'checksum' taken from the tvg-id, like "ARD.de"

    Code
    CHKSUM=$(echo "$tvg_name" | cksum | cut -c 1-9 | sed 's/ //g')
    
    E.g.:
    echo "ARD.de" | cksum | cut -c 1-9 | sed 's/ //g'
    219542664


    Next I generate the channels.conf values as follows:


    I also keep (a list of) urls based on the 'CHKSUM' separated by '€' (with some supporting fields that describe the stream)

    Code
    cat urls.conf
    1€ARD.de€http://192.168.1.3:5000/api/zde/live/ard.m3u8€219542664€1920€0


    iptvstream.sh script reads the "CHKSUM" as it got passed from the iptv plugin from the channels.conf

    The original SID, and TID are generated on-the fly at the time you switch to channel

    It also reads the URL from urls.conf


    iptvstream snippet: (not meant to start working out of the box, more to give an idea)


    Ich nutze auf einem Raspberry PI4 softhddevice-drm. Funktioniert soweit nun auch (nach einigen Audio-Problemen) problemlos

    mrjoe hast Du einige details für mich wie du das Audio hinbekommen hast? Hier klappt das oft nicht, Bild is da aber während zappen es bleibt manchmal stumm.

    Im debug log ist nichts zu sehen ausser:

    Code
    ...
    dec 18 12:50:01 meterkast vdr[31276]: [31685] [softhddevice][Sound] audio: start? in Rb  461ms to skip 0ms
    dec 18 12:50:01 meterkast vdr[31276]: [31282] [softhddevice][Sound] audio: AudioPlayHandlerThread: nach pthread_cond_wait ----> 461ms start

    It runs fine with


    softhddevice -v nvdec


    For this, next to the Nvidia display driver, also CUDA (e.g. cuda_12.2.1_535.86.10_linux.run) has to be installed.

    Next an ffmpeg (git) configured with "--enable-cuda-nvcc" is needed.


    I installed all Nvidia drivers manually to avoid conflicts


    I have the idea the picture looks better compared with vdpau

    Selbst bauen hat mir auch geholfen.


    Musste allerdings nich dieses block aus tntconfig.cpp entfernen bzw auskommentieren:


    Code
                            if (std::ifstream( s_cert.c_str() ) && std::ifstream( s_key.c_str() ) ) {
                                    for ( Setup::IpList::const_iterator ip = ips.begin(); ip != ips.end(); ++ip ) {
                                            app.sslListen(s_cert, s_key, *ip, s_port);
                                    }
                            }