Mit Python rechnen

  • Hallo Nerds.

    Ich komme wieder mal nicht weiter.
    Python unterscheidet sich wohl doch um einiges zu php.
    Ich möchte nun rechnen.

    Python
    //funktioniert
    zahl = xbmc.getInfoLabel('VideoPlayer.ChannelNumberLabel')
    
    
    //funktioniert nicht
    ergebnis = zahl+2
    print ergebnis

    Kann mir bitte einer helfen?

  • Infolabels, Settings usw. liegen immer als Strings vor. Wenn Du damit rechnen willst, solltest Du die in Int (oder Float usw.) umrechnen.

    Code
    //funktioniert
    zahl = xbmc.getInfoLabel('VideoPlayer.ChannelNumberLabel')
    
    
    //funktioniert nicht
    ergebnis = int(zahl) + 2
    print ergebnis

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Dass scheint aber immer noch nicht zu wollen.

    Das ist aber eine vage Aussage. Gibt es denn eine Fehlermeldung oder ähnliches? Was soll denn dabei herauskommen?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Um mein Vorhaben mal genauer zu beschreiben.

    Ich möchte gerne per PVR IPTV Simple Aufnahmen starten.
    Dies ist ja von Haus aus nicht möglich, also habe ich:

    1. Den Record Button in C:\Program Files\Kodi\addons\skin.estuary\xml\VideoOSD.xml umgeändert.


    Python
    <control type="radiobutton" id="606">
    <include content="OSDButton">
    <param name="texture" value="osd/fullscreen/buttons/record.png"/>
    </include>
    <onclick>XBMC.RunScript(special://home/userdata/ffmpeg.py)</onclick>
    </control>


    2. ffmpeg.py liest die m3u aus PVR Simple ein.
    Anhand von zahl = xbmc.getInfoLabel('VideoPlayer.ChannelNumberLabel') wird der aktuelle Channel ermittelt, dann muss der eine + 2 bekommen, wege dem Zeilenunterschied in der m3u. // Das funktioniert ja noch nicht richtig.


    3. Dann wird ein .bat File ausgeführt. Das .bat File startet ffmpeg und somit die Aufnahme.

    Code
    @echo off
    set input=%1
    set name=%2
    start /d "C:\Users\TV\AppData\Roaming\Kodi\userdata\" ffmpeg.exe -y -i "%input%" -c:v copy -c:a copy "C:\Users\TV\Videos\Aufnahmen\%name%" &

    Wie gesagt, funktioniert alles, nur ich bekomme diese Rechnerei mit + 2 nicht hin.


    Edit:
    Man hätte auch infolabel Player.Filenameandpath nehmen können, dann würde die rechnerei wegfallen, aber das spuckt ja nur nur eine pvr:// adresse aus. Damit kann FFMPEG nichts anfangen.

  • Ich muss die Stream Adresse irgendwie ausgelesen bekommen, daran scheitert es.

    Entweder:

    url = xbmc.getInfoLabel('Player.Filenameandpath')
    print url
    // Ergibt eine pvr://adresse.pvr - Damit kann ffmpeg nichts anfangen.

    Oder:

    m3u URL Zeile für Zeile auslesen und mittels
    zahl = xbmc.getInfoLabel('VideoPlayer.ChannelNumberLabel') + 2

    print zeile[zahl]


    Beides bekomme ich nicht hin.


    Setze ich allerdings print zeile[3] ohne den Rechnebefehl funktioniert es alles.

    Also mache ich ja beim Rechnen irgendwas falsch.

  • Ok, so funktioniert es schonmal halb:


    Jetzt stimmt aber trotzdem irgendwas mit dem Zeilenoffset nicht. Lese ich die m3u falsch aus?

Jetzt mitmachen!

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