Proof of Concepts ‐ Video‐Generierung & Speicherung der Bilder - cosimazink/praxisprojekt-2025 GitHub Wiki

1. Komprimierte Speicherung der aufgenommenen Bilder

Beschreibung

Die aufgenommenen Selfies sollen vor der dauerhaften Speicherung komprimiert und skaliert werden, um Speicherplatz zu sparen und die spätere Verarbeitung zu beschleunigen. Ziel ist es, eine Komponente zu integrieren, die clientseitig Bilder automatisch reduziert, ohne dabei merklich an Qualität zu verlieren. Die Komponente wird in den Selfie-Aufnahmeprozess eingebunden und speichert die optimierten Bilder lokal und optional serverseitig mit Zeitstempel und Nutzer-ID.

Exit-Kriterien

  • Bilder werden um mindestens 50 % reduziert
  • Qualität bleibt visuell akzeptabel (SSIM > 0.95)
  • Speicherung erfolgt lokal und mit korrektem Pfadnamen

Fehlerkriterien

  • Komprimierung scheitert oder führt zu defekten Dateien
  • Datei bleibt zu groß (>2 MB)
  • Reihenfolge oder Zuordnung geht verloren

Fallbacks

  • Nur temporäre Speicherung im localStorage
  • Bildgrößenbeschränkung
  • Manuelles Reduzieren mit canvas.toBlob()

Technologien

  • HTML5 zur Reduktion und Konvertierung
  • canvas.toDataURL() / canvas.toBlob() mit Quality-Parameter
  • Speicherung in IndexedDB oder localStorage
  • Backend-Speicherung in SQLite mit Bildpfad

Mengengerüst - Bilder

Faktor Annahme
Bildformat PNG
Auflösung 640 × 480 px (nach Skalierung)
Komprimierung verlustfreie PNG-Kompression
Bildgröße nach Kompression ca. 450-500 KB pro Bild
Selfies pro Nutzer/Tag 1
Nutzeranzahl z. B. 100
Zeitraum 1 Jahr (365 Tage)

Beim Speichern der Selfies wird jedes Bild vor dem Upload auf eine Auflösung von 640 × 480 Pixeln skaliert und als PNG mit verlustfreier Kompression gespeichert. Daraus ergibt sich ein durchschnittlicher Speicherbedarf von etwa 450-500 KB pro Bild. Bei einem Bild pro Tag und Nutzer entsteht bei 100 Nutzern ein jährlicher Speicherbedarf von rund 17,3 GB.

Mengengerüst - Videos

Faktor Annahme
Auflösung 640 × 480 px (SD)
Bilddauer im Video 0,2 Sekunden
Anzahl Bilder pro Video 30
Musik keine
Videogröße ca. 600 KB
Videos pro Nutzer/Monat 1
Nutzeranzahl z. B. 100
Zeitraum 1 Jahr

Speicherbedarf: 0,7 GB Gesamtbedarf


Faktor Annahme
Auflösung 1920 × 1080 px (Full HD)
Bilddauer im Video 2 Sekunden
Anzahl Bilder pro Video 30
Musik ja
Videogröße ca. 5,5 MB
Videos pro Nutzer/Monat 1
Nutzeranzahl z. B. 100
Zeitraum 1 Jahr

Speicherbedarf: 6,4 GB Gesamtbedarf

2. Automatische Erstellung eines Videos mit konfigurierbaren Parametern

Beschreibung

Aus einer chronologischen Serie von Bildern soll ein Video erzeugt werden, das den Verlauf der Selfies visuell darstellt. Nutzer können konfigurieren, wie lange jedes Bild angezeigt wird und welche Auflösung das Video haben soll (und ob Übergänge oder eine Hintergrundmusik enthalten sein sollen). Die Umsetzung erfolgt serverseitig über Node.js mit FFmpeg. Ziel ist ein vollautomatischer Prozess, der auch bei großer Bildanzahl (z. B. 30–60 Bilder) stabil läuft.

Exit-Kriterien

  • Video wird erfolgreich aus allen übergebenen Bildern erstellt
  • Konfigurationen (z. B. Bilddauer, Videoauflösung) werden berücksichtigt
  • Das Ergebnis ist ein browserkompatibles MP4
  • Video kann unter 30 MB bleiben (für 30 Bilder)

Fehlerkriterien

  • Video wird nicht erstellt
  • Falsche Reihenfolge oder fehlende Bilder
  • Konfiguration wird nicht übernommen oder ignoriert
  • Video zu groß (>50 MB) oder nicht kompatibel mit gängigen Playern

Fallbacks

  • Fixe Standardparameter
  • Clientseitiger Hinweis auf zu große Bilder
  • Teilung des Videos in mehrere Abschnitte

Technologien

  • Node.js + fluent-ffmpeg zur Videogenerierung
  • Bildordner-Struktur mit Zeitstempeln für Reihenfolge
  • Konfigurierbares JSON-Interface zur Parameterübergabe
  • Export als MP4 (H.264), optional mit Vorschau-Link
⚠️ **GitHub.com Fallback** ⚠️