Thumbnails von Bildern erzeugen

  • Neben 2.000 Filmen und 150 Serien habe ich 1.500.000 Bilder auf meinem Server auf die Kodi zugreift.

    Die Bilder sind in 20.000 Verzeichnisse und Unterverzeichnisse aufgeteilt.

    Um Thumbnails zu generieren hätte ich jedes Verzeichnisse und Unterverzeichnis aufrufen müssen.

    Mir ist aufgefallen, dass, wenn Bilder in den Favoriten abgelegt werden, Thumbnails automatisch erzeugt werden.

    Also habe ich mir erstmal ein Skript gebaut das auf meinem Server eine favourites.xml meiner Bilder erzeugt:

    #!/bin/bash

    OUT="/home/user/bin/txt/favourites/favourites.xml"

    echo "<favourites>" > "$OUT"

    for BILD in $(find /mnt/data/Bilder/ -mindepth 3 -maxdepth 3 -type f -name "*.jpg"|sort)

    do

    echo -e " <favourite name=\"$(basename $BILD|sed 's/.jpg//')\" thumb=\"image://%2fstorage$(echo "$BILD"|sed 's/\/data//;s/\//%2f/g')/transform?size=thumb\">ShowPicture("/storage$(echo $BILD|sed 's/\/data//')")</favourite>" >> "$OUT"

    done

    echo "</favourites>" >> "$OUT"

    Das Skript lief mehre Stunden und hat eine 500MiB große favourites.xml erzeugt.

    Die favourites.xml habe ich auf per scp in das entsprechende Verzeichnis auf dem LibreELEC-Client kopiert.

    Nach mehreren Stunden LibreELEC-Start, wobei das kodi.bin mit 100% Prozessorauslastung lief, habe ich den Startvorgang abgebrochen.

    Das Skript habe ich dann angepasst, so dass es 150 favourites[COUNTER].xml mit jeweils 10.000 Einträgen erzeugte.

    Ein erster Test mit einer solchen favourites[COUNTER].xml verzögerte dann den LibreELEC-Start nur noch um 15 Sekunden.

    Seit einigen Tagen läuft jetzt über den autostart auf dem LibreELEC-Client mein Skript das die Thumbnails erzeugt:

    #!bin/bash

    ANZ=$(ls /storage/.kodi/userdata/favourites/favourites*|wc -l)

    if [[ $ANZ -gt 0 ]]

    then

    DAT=$(ls /storage/.kodi/userdata/favourites/favourites*|head -n$(($RANDOM % $ANZ+1))|tail -n1)

    mv /storage/.kodi/userdata/favourites.xml /storage/.kodi/userdata/favourites_fertig/favourites_$(date +%s).xml

    mv "$DAT" /storage/.kodi/userdata/favourites.xml

    sleep 4m

    while true

    do

    FAVALT="$(ls -tr /storage/mnt/OpenELEC/thumbnails/schlaf/0|tail -n1)"

    sleep 2m

    FAVNEU="$(ls -tr /storage/mnt/OpenELEC/thumbnails/schlaf/0|tail -n1)"

    if [[ $FAVALT = $FAVNEU ]]

    then

    reboot

    fi

    done

    else

    mv /storage/.kodi/userdata/favourites.xml /storage/.kodi/userdata/favourites_fertig/favourites_$(date +%s).xml

    fi

    Das /storage/mnt/OpenELEC/thumbnails/schlaf/0 zeigt auf das 0-te Unterverzeichnis des über nfs gemountete Thumbnail-Verzeichnis vom LibreELEC-Client im Schlafzimmer auf den Server.

    Wenn alle Thumbmails einer Teil-favourites.xml abgearbeitet sind erfolgt ein reboot mit der nächsten Teil-favourites.xml

    Das $RANDOM % $ANZ+1 hätte ich mir sparen können, resultiert aber aus einigen Testläufen. Dabei war mir aufgefallen, dass das sort unter LibreELEC kein sort -R kann.

    Soweit läuft das jetzt erstmal.

    Hat jemand eine Idee wie man das Erstellen von Thumbnails für Bilder eleganter lösen kann?

    • Offizieller Beitrag

    Also erstmal willkommen bei den Nerds und HUT AB! vor diesem Projekt.

    Kodi ist bei Bildern eher hinten dran als ganz vorn dabei.

    Und dein Datensatz ist ja der absolute Wahnsinn.

    Ich würde da (bedingt durch die Menge) weg von Kodi gehen und separat arbeiten.

    Ist es ein reines LibreELEC (wobei das auch Docker kann)?

    Wenn die Hardware die Power hat, dann etwas mit PhotoPrism.

    Hier im Forum haben schon viele Kodi als Bildbetrachter einfach aufgegeben.

    Und "richtig rund" läuft es nur mit Downscaling (vorher). Aber wer will schon alles doppelt haben.

    In deinem Fall undenkbar.

  • Vielen Dank für die Begrüßung.

    Auf den Clients im Wohn- und Schlafzimmer läuft bei mir ein immer aktuelles LibreELEC.

    Die Clients sind Micro-ATX-Boards mit einem Intel Celeron in einem Mini-Skeleton-Gehäuse. Die Grafikeinheit des Celeron reicht auch für eine 4k-Auflösung voll und ganz aus. Hatte mal eine nVidia 1030 drin, die ist aber schon zu viel des Guten. Ich hatte noch keine 4k-Filme die auch nur annähernd 30Hz Bildwiederholfrequenz liefern, und das kann der Celeron.

    Auf dem Server läuft ein Arch-Linux mit einem wassergekühlten AMD Ryzen 5 3600X der auf 32GiB Speicher zugreift. Für die Grafik sorgt eine AMD Radeon RX 5500.

    Aber auch damit kommt digiKam auf dem Server mit einer SQL-Datenbank im Rücken auf einem 4k-Monitor hin und wieder ins straucheln.

    Für die Clients hatte ich große Bilder auf FullHD runtergerechnet. Das betraf ca. ein Viertel meiner Bilder. Damit kann ich leben. Bilder in 4k-Auflösung haben KODI zum Absturz gebracht.

    Die Thumbnails für das Schlafzimmer-KODI liegen jetzt, nach einigen Tagen Rechenzeit, vollständig auf dem Server und belegen knapp 70GiB Speicher auf der Platte. Für das Wohnzimmer werde ich die Thumbnails auf der Platte in ein paralleles Verzeichnis hard-verlinken und die textures13.db vom Schlafzimmer- auf den Wohnzimmer-Client kopieren.

    Soweit ist der Käs erstmal gegessen.

    Das Problem bei dem Projekt war für mich, dass ich nicht ermitteln konnte was KODI genau macht. Bei allen Aktionen schießt nur die CPU-Zeit der kodi.bin in die Höhe, aber ich konnte nicht feststellen was der Eimer eigentlich treibt.

    Ach ja, nebenbei: Vor zwei Jahren hatte ich mich mal drangesetzt mein 235 jahrzehntealten alten LP's zu digitalisieren. Das Ergebnis waren 280GiB flac-Dateien. Audacity, ein ordentlicher Plattenspieler und ein A/D-Wandler von Steinberg haben mir dabei gute Dienste geleistet.

    Einmal editiert, zuletzt von kpfroemel (26. April 2023 um 19:17)

  • Hi.

    Bei mir sind es nur rund 1/3 so viele Fotos wie bei kpfroemel aber auch mir geht das Bilder Gewese in Kodi auf den Keks. Aber ich lasse gerne Musik laufen, während ich Bilder als Slideshow laufen habe. Deswegen mache ich das immer noch mit Kodi. Neben den nicht gespeicherten Thumbnails geht mir noch mehr das nicht speichern der Metadaten auf den Senkel. Jedes Mal, wenn man nach einem Kodi Neustart in ein Bilder- Verzeichnis wechselt, werden erneut die Metadaten (Exif, usw.) geladen, was bei bis zu 5000 Fotos pro Ordner schon mal 10 - 15 Minuten dauern kann. Und da das, im gegensatz zum Thumb erstellen, nicht im Hintergrund abläuft ist das natürlich total ätzend. Da ich noch nicht wusste, das die Thumbs gespeichert werden, wenn man die Bilder zu Favoriten hinzufügt, muss ich unbedingt mal ausprobieren, ob dabei nicht auch die Metadaten gespeichert werden. Dann muss ich eben alle Bilder zu Favoriten hinzufügen.

    Und "richtig rund" läuft es nur mit Downscaling (vorher). Aber wer will schon alles doppelt haben.

    Zumindest das habe ich ein für alle Mal erledigt. Das macht mein Media-Buddy nämlich vollautomatisch. Ich brauche die Fotos sehr oft auch in einer Web- Auflösung. Deswegen muss ich sie sowieso durcharbeiten. Dabei mache ich auch gleich eine Ausführung auf 4K skaliert für die Anzeige auf dem TV. Ist ein Abwasch. Die RAW Dateien lagern auf einer externen HDD, die normalerweise nicht angeschlossen ist, nachdem ich die Fotos einmal durchgearbeitet habe. Neben den RAW Dateien habe ich auch die aufgearbeitet Fotos in Web- und 4K Auflösung sowie in Originalgröße (aktuell 6000x4000). Auf eine 8TB HDD passen Millionen derartig aufgearbeiteter Fotos. Da mache ich mir keine Gedanken um den Speicherplatz.

    -------------------------------------
    Danke fürs lesen, Claus

Jetzt mitmachen!

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