Best Picks Labor

Destilliertes Wissen zu Schule und Technik

Bilderdatenflut eindämmen

Eine Nachbarin suchte kürzlich meine Unterstützung: Ihr Handy konnte keine Apps mehr installieren, da der Speicherplatz voll war. Meistens sind es Videos oder hochauflösende Bilder, die den Speicher schnell füllen. Da ein Cloud-Abo für sie zu dem Zeitpunkt keine Option war, musste die Datenmenge auf dem Gerät drastisch reduziert werden.

In diesem Fall sind wir folgendermassen vorgegangen.

Sichern der Daten:

Das Android-Gerät liess sich per USB-Kabel direkt mit ihrem Windows-PC verbinden. Da Android den direkten Dateizugriff erlaubt, konnten wir von Windows aus problemlos auf alle Daten zugreifen. Wir kopierten zunächst alle relevanten Dateien auf die interne Festplatte. Im nächsten Schritt erstellten wir eine zusätzliche Kopie auf einer externen Festplatte.

Datensünder finden

Oft wird wertvoller Speicherplatz von Dateien blockiert, die wir nicht mehr aktiv benötigen: weitergeleitete Videos, Duplikate oder misslungene Fotos. Bei meiner Nachbarin machten einige wenige Videos bereits den Grossteil der Datenmenge aus. Normalerweise könnte man diese einfach löschen, sie wollte die Aufnahmen jedoch unbedingt behalten.

Speicherstrategie festlegen

Ihr war es wichtig, alle Medien weiterhin auf dem Telefon verfügbar zu haben. Daher haben wir uns für folgende Strategie entschieden: Die Originale bleiben sicher auf den beiden Festplatten gespeichert, während das Handy eine komprimierte, platzsparende Kopie erhält. Das entlastet den Speicher, hält die Bilder aber im Alltag griffbereit. Für künftige Fotos und Videos gilt ab jetzt: regelmässig sortieren, ordnen und ausmisten.

Verkleinern im Batch

Für die automatische Verkleinerung grosser Datenmengen (Batch-Verarbeitung) habe ich mir von Gemini ein kleines PowerShell-Skript schreiben lassen. Das Skript nutzt die beiden sehr robusten und bekannten Open-Source-Tools FFmpeg ind Imagemagick und komprimiert alle Bilder und Videos auf eine immer noch ansehnliche, aber massiv kleinere Dateigrösse.

Als Zielformate setzen wir auf H.265 und HEIF. Dies sind moderne Standards, die von den meisten Geräten unterstützt werden und von Haus aus hocheffizient arbeiten. Vor dem Ausführen muss FFmpeg und imagemagick heruntergeladen werden. Das Skript erwartet das FFmpeg standardmässig unter c:\Tools\ffmpeg.exe, der Pfad lässt sich jedoch flexibel anpassen. Imagemagick installiert man via Ausführen: „winget install ImageMagick.ImageMagick

Mit einem Rechtsklick und der Option „Mit PowerShell ausführen“ wird der Prozess nun gestartet. Die konvertierten Daten werden in einem neuen Ordner neben dem Quellordner abgelegt – es wird also nichts überschrieben.

Powershell Script zum konvertieren der Daten

# Diseses Script lässt sich übrigens sehr einfach auch für Mac OS und Linux umschreiben. Imagemagick und FFmpeg funktionieren plattformübergreifend.
#
# WINDOWS MEDIA COMPRESSION SCRIPT Video and Images
#===================================================

# 1. PFAD ZU DEINER FFMPEG.EXE ANPASSEN (Für Videos)
$ffmpegPath = "C:\Tools\ffmpeg.exe"

# Benötigte Assemblies laden
Add-Type -AssemblyName System.Windows.Forms

# Prüfen ob ImageMagick im System registriert ist
if (!(Get-Command magick -ErrorAction SilentlyContinue)) {
    Write-Host "Fehler: ImageMagick ('magick') wurde nicht gefunden!" -ForegroundColor Red
    Write-Host "Bitte installiere es zuerst via: winget install ImageMagick.ImageMagick" -ForegroundColor Yellow
    exit
}

# 2. Ordner-Auswahldialog anzeigen
$folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$folderBrowser.Description = "Bitte wähle den Quellordner aus"

if ($folderBrowser.ShowDialog() -ne [System.Windows.Forms.DialogResult]::OK) {
    Write-Host "Auswahl abgebrochen. Skript wird beendet." -ForegroundColor Yellow
    exit
}

$sourceDir = $folderBrowser.SelectedPath

# 3. Zielpfad automatisch auf gleicher Ebene generieren
$parentDir = Split-Path -Parent $sourceDir
$targetDir = Join-Path $parentDir "codiert"

Write-Host "==================================================" -ForegroundColor Double
Write-Host "Quellordner: $sourceDir" -ForegroundColor Gray
Write-Host "Zielordner:  $targetDir" -ForegroundColor Green
Write-Host "==================================================" -ForegroundColor Double

# Definition der Dateiendungen
$imageExtensions = "\.(jpg|jpeg|png|heic|heif)$"
$videoExtensions = "\.(mp4|mkv|mov|avi|wmv)$"

# Alle Dateien im Quellordner rekursiv durchlaufen
Get-ChildItem -Path $sourceDir -Recurse -File | ForEach-Object {
    $file = $_
    
    # Relativen Pfad für Zielordnerstruktur berechnen
    $relativePath = $file.FullName.Substring($sourceDir.Length)
    $destinationPath = Join-Path $targetDir $relativePath
    $destinationFolder = Split-Path $destinationPath

    # --------------------------------------------------------------------------
    # FALL A: DATEI IST EIN BILD (WIRD ZU ECHTEM HEIF / .heic VIA IMAGEMAGICK)
    # --------------------------------------------------------------------------
    if ($file.Extension -match $imageExtensions) {
        if (!(Test-Path $destinationFolder)) { New-Item -ItemType Directory -Path $destinationFolder -Force | Out-Null }
        
        # Dateiendung im Zielordner konsequent auf .heic ändern
        $destinationPathHeic = [System.IO.Path]::ChangeExtension($destinationPath, ".heic")
        $relativeHeicPath = [System.IO.Path]::ChangeExtension($relativePath, ".heic")
        
        Write-Host "[BILD -> HEIF] Verarbeite: $relativeHeicPath" -ForegroundColor Green
        
        # ImageMagick Parameter:
        # -resize 3000x3000>: Skaliert das Bild proportional, falls eine Seite GRÖSSER als 3000px ist
        # -quality 75: HEIC-Qualität (entspricht einer sehr guten JPEG-Qualität, da HEIC effizienter komprimiert)
        $magickArgs = @(
            "`"$($file.FullName)`"",
            "-resize", "3000x3000>",
            "-quality", "75",
            "`"$destinationPathHeic`""
        )
        
        Start-Process -FilePath "magick" -ArgumentList $magickArgs -Wait -NoNewWindow
    }
    
    # --------------------------------------------------------------------------
    # FALL B: DATEI IST EIN VIDEO (WIRD ZU H.265 VIA FFmpeg KONVERTIERT)
    # --------------------------------------------------------------------------
    elif ($file.Extension -match $videoExtensions) {
        if (!(Test-Path $ffmpegPath)) {
            Write-Host "FFmpeg wurde unter '$ffmpegPath' nicht gefunden! Video übersprungen." -ForegroundColor Red
            return
        }
        if (!(Test-Path $destinationFolder)) { New-Item -ItemType Directory -Path $destinationFolder -Force | Out-Null }
        
        Write-Host "[VIDEO] Verarbeite: $relativePath" -ForegroundColor Cyan
        
        $ffmpegArgs = @(
            "-i", "`"$($file.FullName)`"",
            "-vf", "scale=if(gte(iw,ih),min(1080,iw),-2):if(lt(iw,ih),min(1080,ih),-2)",
            "-c:v", "libx265",
            "-crf", "26",
            "-c:a", "copy",
            "-y",
            "`"$destinationPath`""
        )
        Start-Process -FilePath $ffmpegPath -ArgumentList $ffmpegArgs -Wait -NoNewWindow
    }
}

Write-Host "`n==================================================" -ForegroundColor Double
Write-Host "Fertig! Alle Bilder sind nun HEIFs (.heic) via ImageMagick." -ForegroundColor Green
Write-Host "==================================================" -ForegroundColor Double

Pflege der künftigen Daten

In Zukunft wird meine Nachbarin ihre Daten regelmässig aussortieren und manuell ordnen – so wie sie es auch früher schon getan hat. Neue Daten werden nun direkt in ihrer Cloud gesichert. Grössere Datenmengen zieht sie sporadisch aus der Cloud ab und archiviert sie auf den lokalen Festplatten. Den Verkleinerungsprozess kann sie nach Bedarf selber durchführen. Dafür ist die Bedienung des tools oben einfach genug.

Datenorganisation ist individuell

Was im privaten Rahmen mit einem PowerShell-Skript und etwas Struktur gelöst ist, wird in grösseren Institutionen schnell geschäftskritisch. In meiner Zeit als IT-Verantwortlicher an zwei Schulen habe ich oft erlebt, dass fundierte Datenstrategien im stressigen Alltag untergehen. Datenorganisation ist keine reine IT-Aufgabe, sondern eine Frage der Kultur und der Prozesse.

Falls du in deiner Organisation oder Schule die Datenstrukturen optimieren, Backup-Konzepte (wie die 3-2-1-Regel) etablieren oder dein Team entlasten möchtest: Ich unterstütze dich gerne mit praxiserprobten Konzepten, die technologisch sinnvoll und organisatorisch machbar sind. Melde dich ungeniert für einen ersten Austausch.

In meinem Shop findest du ausserdem verschiedene Beratungsangebote