Produktdemo-Videos mit Remotion: Was wir nach 17 Fehlversuchen gelernt haben
AI Tools

Produktdemo-Videos mit Remotion: Was wir nach 17 Fehlversuchen gelernt haben

4. April 2026
8 Min. Lesezeit
Chris Perkles

Ein Produktdemo-Video klingt einfach. Produkt zeigen, fertig. In der Praxis: 17 Videos produziert, eine Woche verbraten, und am Ende waren alle unbrauchbar.

Das hier ist die ehrliche Retrospektive — was schiefgelaufen ist, wie wir den Durchbruch gefunden haben, und was wir beim nächsten Mal sofort anders machen würden.

Das Setup

  • Produkt: AgencyFlow CRM (React 18 + Supabase + Tailwind)
  • Video-Engine: Remotion 4.0 — programmatische Videos in React
  • TTS: Voxtral 4B von Mistral, lokal via MLX
  • Ziel: Demo-Videos, die sich bei Produktänderungen neu rendern lassen

Phase 1: "Einfach die UI nachbauen" — Der naive Ansatz

Was wir gemacht haben: Remotion-Projekt im CRM-Repo erstellt, eigene React-Komponenten gebaut, die das CRM imitieren sollten — Sidebar, Metric Cards, Tabellen, Charts.

Was passiert ist: 17 Videos produziert. 6 Demo-Varianten, 5 "Banger Concepts", 6 Workflow Stories. Keine einzige hat gut ausgesehen.

Das nachgebastelte UI sah immer wie eine Fälschung aus. Mehr Varianten eines schlechten Ansatzes ergeben mehr schlechte Videos.

Lektion: Nachgebaute UI wirkt immer "falsch". Mehr Iterationen helfen nicht.

Phase 2: Tailwind-Klassen studieren — Iteration Hell

Was wir gemacht haben: Den echten CRM-Quellcode analysiert — exakte Tailwind-Klassen, Tabellen-Header (bg-slate-800/50 text-xs uppercase tracking-wider), Status-Badge-Styles, das PDF-Layout aus pdfGeneratorV2.js.

Was passiert ist: Näher dran, aber mit stark abnehmendem Ertrag. Jeder Fix deckte einen neuen Mismatch auf. 80% Genauigkeit war das Maximum.

Dann: Kamera-Zoom auf Aktionsbereiche (1,6x), damit die UI den Frame füllt. Hat die Lesbarkeit verbessert, aber das Kernproblem nicht gelöst.

Lektion: Zoom hilft, ersetzt aber keine echte Genauigkeit.

Phase 3: Echte Komponenten importieren — Webpack Mocking

Was wir gemacht haben: Remotion's Webpack konfiguriert, um CRM-Imports abzufangen und durch Mocks zu ersetzen:

  • NormalModuleReplacementPlugin für supabaseClient, AuthContext, Service-Dateien
  • React Query Cache mit Demo-Daten vorbelegt
  • delayRender für lazy-geladene Charts

Was passiert ist: Die echte DashboardPage.js renderte in Remotion — pixel-perfect, weil es die reale Komponente ist. Revenue-Chart, Metric-Cards, alles.

// Webpack-Config in remotion.config.ts config.overrideWebpackConfig((currentConfig) => { currentConfig.plugins?.push( new NormalModuleReplacementPlugin( /supabaseClient/, path.resolve(__dirname, 'mocks/supabaseClient.js') ) ) return currentConfig })

Lektion: Das funktioniert — aber jede neue Service-Abhängigkeit braucht einen eigenen Mock. Gut als Fundament, zu langsam für schnelle Iteration.

Phase 4: Wie machen das die Profis? — Der Durchbruch

Das war der Game Changer.

Was wir gemacht haben: 10 Videos vom Anthropic YouTube-Kanal heruntergeladen, mit yt-dlp + ffmpeg alle 0,5 Sekunden einen Frame extrahiert, und dann analysiert, welche visuellen Muster sich wiederholen.

yt-dlp https://youtube.com/@anthropic -x --format mp4 -o "%(title)s.%(ext)s" ffmpeg -i video.mp4 -vf fps=2 frames/frame_%04d.jpg

Was wir gefunden haben — Anthropics Design-System:

ElementDetail
HintergrundWarmes Beige — kein Dark Mode
TypografieSerif-Font für Hooks
Device FramesFloating Phone + Browser mit weichem Shadow
TransitionenNur Fades — keine Slides, keine Zooms
CursorKein Cursor sichtbar
LabelsKeine Feature-Labels
TextTippt sich selbst ein, Content scrollt im Device
AbschlussLogo-Endcard

Lektion: Die besten Produktvideos zeigen nicht die ganze App. Sie zeigen fokussierte Momente in sauberen Device-Frames auf neutralem Hintergrund.

Phase 5: Ihr Stil, unsere Identität

Was wir gemacht haben: Erst eine Anthropic-ähnliche Demo gebaut — Beige-Hintergrund, Serif-Font, Floating Frames.

Problem: Sah aus wie Claude, nicht wie AgencyFlow.

Fix: Auf das CRM-eigene Design-System gewechselt:

AnthropicAgencyFlow
Warmes Beige (#f5f0e8)Cinematic Dark (#0c1222)
Serif-FontInter
Neutrale AkzenteBlue/Purple Gradient
Light UIDunkle CRM-Oberfläche

Lektion: Layout und Struktur von den Besten borgen — aber die eigene Identität behalten.

Die Fehlversuche — zur Dokumentation

Bevor das finale Video entstand, sah es so aus:

Phase 6: Die finale Formel — Effortless Storytelling

Keine Feature-Labels. Keine erklärenden Texte. Nur: Formular füllt sich aus → grünes Häkchen. Kanban-Karte zieht sich rüber → landet in "Erledigt".

Die 8 Szenen der finalen 30-Sekunden-Demo:

  1. "Papierkram?" — ein Wort, groß, auf dunklem Hintergrund
  2. Formularfelder tippen sich ein: Name, Kontakt, E-Mail → "Kunde angelegt ✓"
  3. Services mit Preisen einblenden → Summe berechnet → "Angebot senden"
  4. Grüne Notification "Angenommen!" → Pfeil → Rechnungskarte erscheint
  5. Kanban-Karte zieht von "In Arbeit" nach "Erledigt"
  6. Timer 02:34:13 läuft, roter Puls-Punkt
  7. Revenue-Counter steigt auf € 127.450, Chart zeichnet sich
  8. Logo + "Kostenlos testen →"

Lektion: Nicht Features erklären — den Workflow zeigen. Das Gehirn des Zuschauers füllt den Wert selbst aus.

Phase 7: Lokaler TTS — Voxtral 4B

Was wir gemacht haben: Mistrals Voxtral 4B TTS-Modell lokal auf dem Mac via MLX laufen lassen (mlx-community/Voxtral-4B-TTS-2603-mlx-4bit).

Der Iterations-Prozess:

VersuchProblemErgebnis
casual_male auf DeutschEnglisches Voice-Preset — klingt wie Muttersprache Englisch
cheerful_femaleGleiches Problem
Alle 7 Stimmen getestetde_male und de_female sind die einzigen nativen deutschen Stimmen
de_female festgelegtKlingt natürlich
Szenen-weise ClipsKlingt gehackt und roboterhaft
Eine durchgehende NarrationFlüssiger, natürlicher Flow

Finale Parameter:

temperature=0.4, top_k=30, top_p=0.9

Lektion: Sprachspezifisches Voice-Preset nutzen (nicht generisch). Als eine durchgehende Aufnahme generieren, nicht in Stücken. Und: Das Skript VORHER schreiben — Copy-Qualität schlägt Voice-Qualität.

Phase 8: Alles zusammenfügen — Der Feinschliff

Was wir gemacht haben: Voiceover-Länge gemessen (29,36 Sekunden), Video von 35s auf 30s getrimmt, Szenen-Dauern angepasst, um auf Audio-Beats zu treffen, Hook-Text auf Narration abgestimmt ("Papierkram?" statt "Noch Excel-Tabellen?").

Lektion: Audio bestimmt das Timing. Zuerst Audio rendern, dann Visuals anpassen.

Der komplette Tech-Stack

LayerToolZweck
Video-EngineRemotion 4.0.443React → MP4
StylingTailwind CSSCRM-Design matchen
Font@remotion/google-fonts (Inter)Brand-Konsistenz
Transitionen@remotion/transitions (nur Fade)Szenenwechsel
Animationspring() + interpolate()Alle Bewegungen
TTSVoxtral 4B via mlx-audioLokaler Voiceover
CopywritingClaude Code copy-editing skillScript-Iteration
Video-Analyseyt-dlp + ffmpegKonkurrenz-Deconstruction
CI/CDRemotion CLInpx remotion render CleanDemo

Key Remotion Patterns

// Floating Browser Frame <Browser delay={5} url="agencyflow.at/clients/new"> {/* CRM-Inhalt */} </Browser> // Tipp-Animation (kein Cursor) <Type text="Alpine Lodge Resort GmbH" start={15} speed={0.9} /> // Spring-Eingang (Premium Float) spring({ frame, fps, delay, config: { damping: 28, stiffness: 60 } }) // Durchgehender Voiceover <Audio src={staticFile('voiceover/vb-storytelling.wav')} volume={0.9} />

Was wir beim nächsten Mal sofort anders machen

  1. Mit Video-Analyse starten — 5-10 Best-in-Class-Videos studieren, BEVOR auch nur eine Zeile Code geschrieben wird
  2. Audio zuerst — Voiceover-Skript schreiben und generieren, dann Visuals dazu bauen
  3. Ein Video, 8 Iterationen — statt 17 Varianten eines mittelmäßigen Ansatzes
  4. UI nicht nachbauen — entweder echte Komponenten per Webpack-Mocking oder Floating Device Frames mit vereinfachtem Inhalt
  5. Copy schlägt Animation — "Papierkram?" war effektiver als 500 Zeilen Spring-Animation-Code

Bonus: Square-Version für Social Media

Aus dem gleichen Remotion-Projekt lässt sich mit einer Auflösungsänderung eine 1:1-Version für Instagram und LinkedIn rendern. Hier die 25s-Square-Variante — damit bin ich eigentlich ganz zufrieden:

Ehrlich gesagt: Ich bin noch nicht zufrieden

Das finale Video funktioniert — aber es ist noch kein "Wow". Das Szenen-Timing stimmt, der Voiceover sitzt, die Design-Sprache ist konsistent. Aber es fehlt noch der letzte Funke: die eine Szene, bei der man wirklich aufhört zu scrollen.

Das ist Work in Progress. Ich iteriere weiter — nächste Schritte sind ein besserer Einstieg-Hook, schärfere Micro-Animationen und eine zweite Voiceover-Version mit einem anderen Skript-Ansatz.

Das hier ist also kein "so geht's perfekt" Post. Es ist ein ehrlicher Zwischenstand.

Fazit

Programmatische Videos mit Remotion sind mächtig — aber der Workflow ist nicht intuitiv. Der größte Zeitverlust war nicht die Technik, sondern die fehlende Strategie am Anfang.

Der Durchbruch kam nicht durch besseres Coding. Er kam durch das Analysieren von Videos, die nachweislich funktionieren, und das Verstehen, warum sie funktionieren.

Das Ergebnis ist ein Video, das wir jederzeit neu rendern können, wenn sich das Produkt ändert. Keine Neu-Shootings, kein Videoschneider — einfach npx remotion render und fertig.


Du willst programmatische Demo-Videos für dein Produkt bauen? Ich helfe beim Setup — von Remotion über TTS bis zur automatisierten Render-Pipeline. Lass uns sprechen →

Remotion
Claude Code
Product Demo
Video
AgencyFlow
TTS
Voxtral
Teilen:
CP

Chris Perkles

KI-Berater, Speaker & Workshop-Leiter

Ich helfe Unternehmen dabei, KI strategisch einzusetzen und echte Ergebnisse zu erzielen. Von Workshops bis zur Implementierung - gemeinsam bringen wir Ihre KI-Projekte zum Erfolg.

Kontakt aufnehmen

Ähnliche Artikel

Produktdemo-Videos mit Remotion: Was wir nach 17 Fehlversuchen gelernt haben | Chris Perkles Blog