Photo Station Fragen/Diskussion/Feedback zu Wikieintrag Thumbnailerzeugung / convert beschleunigen

Status
Für weitere Antworten geschlossen.

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

habe das Skript etwas veränndert, dass es jedesmal wenn unsharp wieder auftaucht es auf jeden Fall entfernt.

Anna
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
@ Portboy:

hast Du die Veränderung von "völlig inakzeptabel" zu akzeptabel gemessen? Wie und was kam raus?
Danke!
Grüße, Anna
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Darf ich bitte nachfragen, ob das Script jetzt zur Zufriedenheit läuft?
 

Peter Lustig

Benutzer
Mitglied seit
10. Mrz 2012
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Ich habe das Script ausprobiert und es funktioniert. Allerdings bringt es nach meinen Messungen nicht so viel:
- ohne Script: 0,73 Bilder pro Minute
- mit Script: 0,83 Bilder pro Minute
 

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
Danke für dein Feedback
 

wastl2000

Benutzer
Mitglied seit
13. Dez 2011
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hi,
Ich habe das Thema länger nicht mehr weiter bearbeitet, bin aber gerade dabei.

Leider scheint die das Imagemagick Object nicht so recht zu funktionieren, also habe ich es über das Shell Command versucht. Hier mein Script, mit dem es leider ein Problem gibt:

Global n As Integer

Sub DateiInformationen_auslesen()
n = 1
PFAD = InputBox("Startverzeichnis")
With ThisWorkbook.Worksheets(1)
Call list_files(CreateObject("Scripting.FileSystemObject").GetFolder(PFAD))
End With
End Sub

Sub list_files(ordner As Variant)
Dim file As Variant
Dim subordner As Variant
'Dim imMgk As New MagickImage - wieder verworfen, weil problem mit dem ActiveX Control

iseadir = InStr(CStr(ordner), CStr("@eaDir"))

If iseadir = 0 Then
MkDir (ordner.Path & "\@eaDir")
End If

For Each file In ordner.Files
MkDir (ordner & "\@eaDir\" & file.Name)

'groesstes Thumbnail als Test
Call Shell("convert " & file.Name & " -resize 1280x960 " & ordner & "\@eaDir\" & file.Name & "\SYNOPHOTO_THUMB_XL.jpg", vbNormalFocus)

Cells(n, 1) = file.Name
Cells(n, 2) = ordner.Path
n = n + 1

Next

For Each subordner In ordner.SubFolders
If (subordner.Attributes And 4) = 0 Then '/System-Ordner/
'hier sollte man den Ordner erstellen
Call list_files(subordner)
End If
Next
End Sub

Leider wird der convert Befehl nicht ausgeführt...ich weiß aber nicht wieso. Vielleicht kann ja jemand weiterhelfen... Nachdem meine NAS gerade einmal 1 Bild pro 2min berechnen kann, wäre das schon sehr viel schneller (in meinem Test unter 1 sek pro Bild am Rechner).
 

wastl2000

Benutzer
Mitglied seit
13. Dez 2011
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hab's gerade gelöst... 13 Bilder in 28 sekunden (alle Thumbnails). Das ist mehr als 20x so schnell wie mit der NAS (3 Tage statt 2 Monate Thumbnails berechnen sind eine Ansage).

Leider muß in den Dateinamen der Thumbnails ein ":" hinein, was unter Windows nicht möglich ist. arrrr! :-(

Rich (BBCode):
Global n As Integer

Sub DateiInformationen_auslesen()
n = 1
   PFAD = InputBox("Startverzeichnis")

   With ThisWorkbook.Worksheets(1)
      Call list_files(CreateObject("Scripting.FileSystemObject").GetFolder(PFAD))
   End With
End Sub

Sub list_files(ordner As Variant)
   Dim file      As Variant
   Dim subordner As Variant
    Dim imMgk As Object
    Set imMgk = CreateObject("ImageMagickObject.MagickImage.1")

   iseadir = InStr(CStr(ordner), CStr("@eaDir"))
   If iseadir = 0 Then
            MkDir (ordner.Path & "\@eaDir")
   End If
 
   For Each file In ordner.Files
    thumbnail = InStr(CStr(file.Name), CStr("SYNOPHOTO_THUMB"))
    If thumbnail = 0 Then
        MkDir (ordner & "\@eaDir\" & file.Name)
        Open file For Binary Access Read Lock Write As #1
    '        x = Shell("C:\WINDOWS\system32\convert.exe " & file.Name & " -resize 1280x960 " & ordner & "\@eaDir\" & file.Name & "\SYNOPHOTO_THUMB_XL.jpg", vbNormalFocus)
            imMgk.Convert CStr(file), "-resize", "1280x960", ordner & "\@eaDir\" & CStr(file.Name) & "\SYNOPHOTO_THUMB_XL.jpg"
            imMgk.Convert CStr(file), "-resize", "800x600", ordner & "\@eaDir\" & CStr(file.Name) & "\SYNOPHOTO_THUMB_L.jpg"
            imMgk.Convert CStr(file), "-resize", "320x240", ordner & "\@eaDir\" & CStr(file.Name) & "\SYNOPHOTO_THUMB_M.jpg"
            imMgk.Convert CStr(file), "-resize", "120x90", ordner & "\@eaDir\" & CStr(file.Name) & "\SYNOPHOTO_THUMB_S.jpg"
        Close #1
       
'          Cells(n, 1) = file.Name
'          Cells(n, 2) = ordner.Path
'          n = n + 1
    Else
    End If
   Next

   For Each subordner In ordner.SubFolders
      If (subordner.Attributes And 4) = 0 Then '/System-Ordner/
      'hier sollte man den Ordner erstellen
         Call list_files(subordner)
      End If
   Next
End Sub


Sub ElapsedTime()
'Timer zum Messen...
   Dim StartTime As Double, EndTime As Double
   StartTime = Timer
   Call DateiInformationen_auslesen
   EndTime = Timer
   MsgBox CStr(EndTime - StartTime)
End Sub
 
Zuletzt bearbeitet:

jemue

Benutzer
Mitglied seit
11. Jan 2009
Beiträge
615
Punkte für Reaktionen
0
Punkte
42
@wastl2000, es freut mich, wenn du Erfolg hattest.
Noch mehr würde es mich freuen, wenn du uns deinen Lösungsweg evtl. in einer kurzen Anleitung oder im wikki näherbringen würdest.
Kann mit dem Code jetzt nicht soviel ohne einen Lösungsansatz anfangen - Danke.
 

wastl2000

Benutzer
Mitglied seit
13. Dez 2011
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hi jemue,

Damit das hier nicht falsch verstanden wird:
Mein Programm ist ein Visual Basic Programm und kein Script das auf der Synology läuft! Insofern hat das mMn nichts im Wiki oder sonst wo verloren. Ich wollte nur eine Lösung, um die Thumbnails schnell am PC erstellen zu können.

Wie funktioniert es?
Imagemagick muss inklusive der Objekt DLL für VB installiert sein (das wird auch auf der DS verwendet und ist ein Kommandozeilen-Tool zur Bildbearbeitung). Mein Programm macht nichts anderes, als dass es ausgehend von einem Ordner alle Unterordner durchforstet, das @eaDir Verzeichnis und die Unterverzeichnisse für die Thumbnails anlegt (wenn noch nicht vorhanden) und dann die 4 Thumbnails pro Ursprungsbild erzeugt. Mehr tut's nicht...

Einziger Wermutstropfen derzeit ist, dass die Thumbnails einen Doppelpunkt ":" im Dateinamen haben, welcher unter Windows nicht erzeugt werden kann und auch zB auf einer externen USB Festplatte mit FAT oder NTFS nicht im Dateinamen enthalten sein darf. Aus diesem Grund habe ich einen Unterstrich verwendet, den ich später auf der NAS mit einem mini Script (Einzeiler) durch den Doppelpunkt ersetze. Ich werde diese Woche mein Programm über alle meine Fotos jagen (eigentlich irre, wenn man bedenkt daß man die Dateianzahl verfünffacht!). Danach kann ich euch mehr sagen. Ein erster Test hat gezeigt, daß das Kopieren der fertigen Ordnerstruktur mit @eaDir Verzeichnis und den Thumbnails darin erfolgreich war.

ABER!
In Wahrheit sollte der Fotouploader nichts Anderes machen als mein Programm. Komischer Weise ist meines aber deutlich schneller auf dem Test-PC und irgendwie finde ich es - für den einmaligen Kopiervorgang hunderter Ordner und mehr als 100.000 Bildern praktischer als mit dem Upload Tool.
 

Provider

Benutzer
Mitglied seit
15. Jan 2012
Beiträge
128
Punkte für Reaktionen
0
Punkte
0
Ich lade die Bilder auf die DS212j mit dem Assistenten hoch und bei mir schafft die DS 300 Bilder/ Stunde.
Ein Foto hat 20MB im Canon CR2 Format. Knapp 1 Bild/Minute wie bei Peter ist zu wenig.
 

lota

Benutzer
Mitglied seit
26. Sep 2010
Beiträge
100
Punkte für Reaktionen
0
Punkte
16
nach der migration auf dsm 4 waren alle ca. 10k pics / vorschaubilder weg - die @ea dirs waren aber noch da, es wurden aber trotzdem keine thumbs angezeigt.

hab mich dann durch diesen thread durchgelesen und folgendes gemacht:
via konsole /usr/syno/etc/rc.d/S77synomkthumbd.sh stop

/usr/syno/etc.defaults/thumb.conf angepasst:

[thumb 120]
size=120
quality=50
filename=SYNOPHOTO:THUMB_S.jpg

[thumb 320]
size=320
quality=50
filename=SYNOPHOTO:THUMB_M.jpg

[thumb 640]
size=640
quality=70
filename=SYNOPHOTO:THUMB_B.jpg

[thumb 800]
size=800
quality=75
filename=SYNOPHOTO:THUMB_L.jpg

[thumb 1280]
size=1280
quality=85
filename=SYNOPHOTO:THUMB_XL.jpg

für mich absolut fraglich, wieso die quality werte so hoch sein bei so kleinen bildchen, lohnt sie ja nie. ebenso den unsharp entfernt.

dann wieder /usr/syno/etc/rc.d/S77synomkthumbd.sh start mit neustart und neu indexiert. daraufhin hats dann zumindest in der zähleranzeige ca 10k bilder aufgelistet und "langsam" abgearbeitet. ich behaupte nun mal so, ohne grössere und weitere sachkenntnisse zu haben, das meine ds210+ die 10k bilder ein keinen 12h durchgerechnet hat!
heute morgen war die warteschlange zum konvertieren leer und die komplettüberprüfung des systems hat auch gezeigt, das wirklich wieder alles da ist.

obs nun wirklich alle neu gemacht hat...?!?!??! aber die werte für normale quality sind einfach viel zu hoch, speziell für kleine vorschaubilder!

danke für eure beiträge.
 

Rockvoice

Benutzer
Mitglied seit
23. Mrz 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen!

Ich habe folgendes Problem:

Ich habe auf meine DS212j (damals noch DSM 3.2) meine gesamten Fotos kopiert. Leider nicht mit dem Assistent, deswegen hat die Konvertierung sehr lange gedauert. Zwischendurch habe ich DSM 4.0 installiert. Mittlerweile wäre die Konvertierung eigentlich fertig. Hört sich komisch an, aber genau da liegt das Problem:

Die Medienindexierung zeigte an, dass keine Bilder mehr konvertiert werden (oben rechts drehte sich auch kein Kreis mehr, die Konvertierung schien wirklich abgeschlossen zu sein). Aber die CPU-Auslastung war nach wie vor 100% - verursacht durch "convert-thumb". Ein Neustart führte dazu, dass die Medienindexierung mir wieder mitteilte, abermals über 1000 Bilder konvertieren zu müssen.
Auch das wurde mittlerweile abgeschlossen. CPU-Last nach wie vor bei 100% durch "convert-thumb". Einen Neustart später waren es erneut ca. 700 Fotos. Selbe Prozedur. Abgeschlossen, 100% Auslastung durch "convert-thumb", Neustart, abermals über 600 Fotos zu konvertieren.
(Ich habe zwischendurch keine neuen Fotos auf das Gerät kopiert!)

Ist dieses Problem bekannt? Hat jemand eine Idee, wie ich meine DS212j dazu bringen kann, die Konvertierung endlich abzuschließen?

Viele Grüße
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

kurze Gegenfrage: soll das was mit dem Skript zur Beschleunigung zu tun haben oder ist das ein allgemeines Problem?

Anna
 

Rockvoice

Benutzer
Mitglied seit
23. Mrz 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Sorry, nein, es ist ein allgemeines Problem.
 

p031289

Benutzer
Mitglied seit
02. Apr 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

könntet ihr mir das Skript vielleicht etwas näher bringen? Ich verzweifel nun langsam, da meine DS (212j) nun seit Tagen läuft und ehrlich gesagt kein Ende in Sicht ist. So langsam könnte ich kotzen. Ich bräuchte allerdings mal etwas mehr Hilfe.

Ich habe mich nun mittels SSH und Terminal in meiner DS angemeldet. So weit so gut. Anschließend habe ich ein neues Verzeichnis erstellt mittels:
mkdir /usr/local/etc/rc.d/S99thumb.sh

Stimmt dies soweit?
Wie bekomme ich nun den Quelltext in die Datei hinein geschrieben? Ich habe mal meinen Code angehangen. Vielleicht könntet ihr mir ja weiter helfen.



HomeStation> mkdir /usr/local/etc/rc.d/S99thumb.sh
HomeStation> dir /usr/local/etc/rc.d/
drwxr-xr-x 3 root root 4096 Jun 8 22:38 .
drwxr-xr-x 4 root root 4096 Apr 2 13:36 ..
drwxr-xr-x 2 root root 4096 Jun 8 22:38 S99thumb.sh
HomeStation> dir /usr/local/etc/rc.d/S99thumb.sh
drwxr-xr-x 2 root root 4096 Jun 8 22:38 .
drwxr-xr-x 3 root root 4096 Jun 8 22:38 ..
HomeStation> cd /usr/local/etc/rc.d/S99thumb.sh
HomeStation> #!/bin/sh
HomeStation>
HomeStation> case $1 in
> start)
> cd /usr/syno/etc.defaults
> grep -q 'unsharp' thumb.conf
> if [[ $? -eq 0 ]]
> then
> echo gefunden
> mv thumb.conf thumb.conf.old
> grep -v unsharp thumb.conf.old > thumb.conf
> fi
> grep -q 'unsharp' thumb_high.conf
> if [[ $? -eq 0 ]]
> then
> echo high gefunden
> mv thumb_high.conf thumb_high.conf.old
> grep -v unsharp thumb_high.conf.old > thumb_high.conf
> fi
> /usr/syno/etc/rc.d/S77synomkthumbd.sh stop
> /usr/syno/etc/rc.d/S77synomkthumbd.sh start
>
> ;;
> stop)
> cd /usr/syno/etc.defaults
> if [ -f thumb.conf.old ]
> then
> rm thumb.conf
> mv thumb.conf.old thumb.conf
> else
> echo restoring thumb.conf.old failed, file not found!
> fi
> if [ -f thumb_high.conf.old ]
> then
> rm thumb_high.conf
> mv thumb_high.conf.old thumb_high.conf
> else
> echo restoring thumb_high.conf.old failed, file not found!
> fi
>
> /usr/syno/etc/rc.d/S77synomkthumbd.sh stop
> /usr/syno/etc/rc.d/S77synomkthumbd.sh start
>
> ;;
> *)
> echo "Usage: $0 [start|stop]"
> ;;
> esac
Usage: -ash [start|stop]
HomeStation> start
-ash: start: not found
HomeStation> chmod 755 S99thumb.sh
chmod: S99thumb.sh: No such file or directory
HomeStation>


Für mich wären vorallem die einzelnen Schritte wichtig, da ich mich in Zukunft öfter mit dem Thema auseinander setzen möchte.

Über eure Hilfe würde ich mich sehr freuen.

Danke schon einmal :)
 
Zuletzt bearbeitet:

p031289

Benutzer
Mitglied seit
02. Apr 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hat denn keiner eine Idee oder Hilfestellung?
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

wenn Du die Anleitung genau liest, wirst Du sehen, dass
/usr/local/etc/rc.d/S99thumb.sh

eine Datei ist, kein Verzeichnis:

Rich (BBCode):
alles was zu tun ist, ist im Verzeichnis /opt/etc/init.d eine Datei z.B. namens S99thumb.sh mit folgendem Inhalt erstellen:

Der Inhalt dieser Datei ist dann der Text in der Box (ein sh-skript)

Probier es bitte mal so.

Du kannst Diese Datei auch in deiner Windows-Freigabe erstellen, und dann mit

cp /volume1/public/S99thumb.sh /opt/etc/init.d

an die richtige Stelle kopieren, dann sparst Du Dir den Texteditor unter Linux, chmod nicht vergessen!

Grüße, Anna
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

ich habe das mal mit der Qualireduktion getestet. (#31)
Das bringt nach manuellen tests genau einen Effekt: schlechtere Qualität. (+ evtl. Speicherplatzersparnis)
Nach einer recherche im Internet bin ich noch auf einen interessanten Schalter gestoßen: -filter point
Der sollte nochmal so ca Faktor 2-3 bringen. Ich teste das gerade mal. Die Implementierung ist dann aber aufwändiger.
(analog http://forum.synology.com/enu/viewtopic.php?f=17&t=24083)

Grüße, Anna
 
Zuletzt bearbeitet:

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
So, ich habe das mal getestet.
Wenn man analog der o.g. Quelle vorgeht, aber alle Thumbnails berechnet (d.h. keine nur auf das Original verlinkt), und alle Thumbnails immer aus dem nächst größeren berechnet, und den Filter wie oben setzt, dann bekomme ich auf eine bestimmte Zeiteinheit alle Thumbnails für ca. 20 Bilder statt 6 Bilder erzeugt (DS212+, macht aber noch verschiedenes anderes im Moment).

D.h. man erreicht nochmal eine Beschleunigung um ca. einen Faktor 3. (alles bereits ohne unsharp)
Das macht aus der Kiste immer noch keinen Renner, aber immerhin.:rolleyes:
Ich glaube ehrlich gesagt, dass damit so ziemlich das Ende der Fahnenstange erreicht ist. Vermutlich ist alles weitere an Optimierung eher noch homöopatisch, aber für Vorschläge bin ich offen!

Ich werde das mal bei Gelegenheit dokumentieren, falls noch Bedarf besteht.

Grüße, Anna

PS: Habe nochmal genauer gemessen, in 10min schaffe ich alt: 10 Bilder, neu 54 Bilder.
 
Zuletzt bearbeitet:

gungam

Benutzer
Mitglied seit
11. Aug 2012
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

erstmal vielen Dank an Anna_Konda für das Wiki und die investierte Arbeit. Ich habe mir vor ein paar Tagen eine DS212 zugelegt und die krückt gerade an ca. 11.000 Bildern rum. Parallel dazu läuft eigentlich noch ein Crashplan Backup. Es ist zum weinen... :(
So schön die Software an sich ja ist... Ich glaube ich verkaufe das gute Stück demnächst und suche nach einer version mit mehr power...

egal, was ich eigentlich fragen wollte:

@Anna_Konda
sind deine letzten änderungen bereits im Skript in dem Wiki integriert? wenn ich das richtig sehe ist dem bisher nicht der Fall, oder? Ist das noch geplant?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat