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?