Schnitt-Oberfläche mit Optionen, Mixer, Voice-over und Export bauen

Im Projekt lassen sich Intro, Outro, Beschleunigen, Stummschalten und
Backing Track anhaken, Dateien hochladen und alle Tonspuren von 0 bis
100 regeln. Pro Clip nimmt der Browser ein Voice-over auf, während der
Clip im späteren Tempo läuft. Einstellungen werden verzögert gespeichert;
der Export zeigt Fortschritt, Vorschau und Download.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ferdi2goandClaude Opus 5.5 committed 2026-09-29 11:00:59 +00:00
1 parent 18d5b80959
commit ccd70bd585
10 files changed
+916 -57

No files matched your search

+22 -2
View File
@@ -17,8 +17,6 @@ automatisch passieren soll:
Ausgabe ist ein MP4 in 1920×1080 mit 30 fps. Hochkant-Clips werden mittig mit
unscharfem Hintergrund eingesetzt. Zugang ist über eine PIN geschützt.
> Stand: Anmeldung, Import des Exports und Upload der Videos laufen. Der Schnitt folgt.
## Voraussetzungen
- Node.js 20
@@ -57,6 +55,26 @@ NODE_ENV=production APP_PIN=… npm start
3. Videos prüfen (Duplikate sind abgewählt) und hochladen. Nur die gewählten
Videos werden übertragen, in Stücken von 8 MB; ein Abbruch lässt sich durch
erneutes Wählen des Ordners fortsetzen.
4. Im Projekt anhaken, was passieren soll, Intro, Outro und Backing Track
hochladen, Lautstärken einstellen und pro Clip ein Voice-over aufnehmen
(der Clip läuft dabei im späteren Tempo) oder als Datei hochladen.
5. „Video erstellen“ rendert im Hintergrund; danach herunterladen.
## Wie geschnitten wird
- Jeder Clip wird einzeln auf 1920×1080 bei 30 fps gebracht. Hochkant-Clips
stehen mittig vor einer unscharfen, vergrößerten Kopie ihrer selbst.
- Clips über 10 Sekunden werden per `setpts` auf genau 10 Sekunden
beschleunigt; ihr Ton (falls nicht stumm) per verketteter `atempo`-Stufen.
- Voice-over und Clip-Ton werden pro Clip gemischt und auf Clip-Länge gekürzt.
- Die Clip-Segmente werden aneinandergehängt, der Backing Track darunter
wiederholt, gekürzt und über 2 Sekunden ausgeblendet; danach kommen Intro
und Outro dazu.
- Segmente liegen zwischengespeichert unter `render/cache`; wer nur die
Musik ändert, wartet nicht auf alle Clips. Zwischenstände tragen
unkomprimierten Ton, erst das Endergebnis wird AAC, damit sich über viele
Übergänge keine Verschiebung aufsummiert.
- Exporte laufen nacheinander, weil ffmpeg alle Kerne nutzt.
## Befehle
@@ -67,6 +85,8 @@ NODE_ENV=production APP_PIN=… npm start
## Aufbau
- `server/` – Express-Server: Anmeldung, Projekte, Upload in Stücken, ffprobe
- `server/render.js` – Schnittplan und ffmpeg-Kette
- `server/renderQueue.js` – Exporte im Hintergrund
- `src/` – React-Oberfläche (Vite)
- `src/lib/whatsapp.js` – liest den Chatexport und ordnet die Videos
- `src/lib/upload.js` – Upload in Stücken mit Wiederaufnahme