Files
aitrailer/CUTTER_REPORT.md
T
Melbar 5a6ae2175c Slim README, move algorithm prose to docs, add stills + per-fps TC to cutter report
README: 550 -> 308 lines. The dense algorithm prose was moved verbatim to
docs/ALGORITHM.md and replaced in the README with a compact "Wenn ein Match
falsch wirkt" troubleshooting table and a link. The cutter-facing intro
points at the new in-report stills instead of the old HTML report.

Cutter report:
- Per-side frame rates: trailer timecodes use the trailer file's fps
  (typically 25), source timecodes use the source file's fps. ffprobe is
  used to detect each side; falls back to edl_frame_rate if unavailable.
- Side-by-side trailer/source preview stills extracted via ffmpeg, taken
  ~30% into the beat / match window. Stored under output/cutter_stills/
  (gitignored). Re-rendered only when the underlying video is newer than
  the cached jpg.
- Compact table at the top, detailed per-beat sections below with the
  stills inline so the cutter can sight-check phase agreement directly.
- New --no-stills flag for fast text-only regeneration.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 13:24:19 +02:00

334 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cutter-Report — manuelles Nachschneiden
Stand: 2026-05-04
- **Trailer**: `BehindTheRedDoor_Trailer_REFERENCE.mp4` @ 25.000 fps
- **Source** : `BehindTheRedDoor_FTR_1080P_2398_Fixed.mp4` @ 25.000 fps
Trailer-Timecodes sind in **Trailer-Framerate** angegeben, Source-Timecodes in **Source-Framerate**. So passen sie 1:1 zu dem, was du in deinem NLE auf den jeweiligen Spuren siehst.
Diese Datei wird automatisch erzeugt — nach jedem `python cli.py match` neu generieren mit:
```powershell
python scripts/generate_cutter_report.py
```
## Status-Legende
| Status | Bedeutung | Was tun? |
|--------|-----------|----------|
| `OK` | bestätigt durch CV + Vision-Phasenprüfung | übernehmen, optional stichprobenartig sichten |
| `?` | korrekte Szene, Phase eventuell um wenige Frames verschoben | im NLE prüfen, Source-In ggf. nachjustieren |
| `MAN.` | kein automatischer Treffer | manuell suchen oder als Schwarzfade/Titel übernehmen |
## Übersicht
- Beats gesamt: **25**
- Automatisch gefunden: **20** (5 davon bestätigt)
- Manuell zu setzen: **5**
## Beat-Tabelle (kompakt)
| Beat | Trailer In / Out | Source In / Out | Score | Status | Was im Bild zu sehen ist |
|-----:|------------------|------------------|------:|:------:|---------------------------|
| 0 | 00:00:00:00-00:00:03:00 | —-— | 0.000 | MAN. | logo animation assembling from distorted shapes with motion blur |
| 1 | 00:00:03:00-00:00:08:10 | 00:00:04:10-00:00:06:04 | 0.380 | ? | |
| 2 | 00:00:08:10-00:00:16:24 | —-— | 0.000 | MAN. | |
| 3 | 00:00:16:24-00:00:19:03 | 01:02:17:23-01:02:19:15 | 0.469 | ? | |
| 4 | 00:00:19:03-00:00:20:16 | 01:02:21:01-01:02:22:10 | 0.647 | ? | |
| 5 | 00:00:20:16-00:00:26:09 | 00:01:33:04-00:01:37:10 | 0.501 | ? | |
| 6 | 00:00:26:09-00:00:29:06 | 00:01:03:06-00:01:05:22 | 0.548 | ? | |
| 7 | 00:00:29:06-00:00:31:17 | 01:20:10:11-01:20:12:17 | 0.463 | ? | man appears to be engaged in conversation |
| 8 | 00:00:31:17-00:00:33:16 | 00:00:51:07-00:00:53:01 | 0.733 | OK | static or slow drifting |
| 9 | 00:00:33:16-00:00:36:19 | 01:20:28:20-01:20:31:17 | 0.529 | ? | speaking, transitioning from closed eyes to open mouth and focused gaze |
| 10 | 00:00:36:19-00:00:40:02 | 01:20:35:17-01:20:39:00 | 0.635 | ? | conversation |
| 11 | 00:00:40:02-00:00:42:03 | 01:20:40:19-01:20:42:19 | 0.502 | ? | static talking head with slight facial expression changes |
| 12 | 00:00:42:03-00:00:50:06 | 01:14:26:01-01:14:29:10 | 0.558 | ? | static profile shot transitioning to black/darkness |
| 13 | 00:00:50:06-00:00:53:21 | 00:43:20:02-00:43:23:11 | 0.468 | ? | static conversation; woman on right is standing and holding a cup |
| 14 | 00:00:53:21-00:00:57:02 | 00:43:24:09-00:43:27:04 | 0.444 | ? | static conversation, subject holding a white cup |
| 15 | 00:00:57:02-00:01:01:12 | 00:02:10:11-00:02:12:17 | 0.467 | ? | static conversation |
| 16 | 00:01:01:12-00:01:04:12 | 01:05:12:17-01:05:15:06 | 0.613 | ? | man reaches out and touches the red door with a small object |
| 17 | 00:01:04:12-00:01:09:03 | 01:31:22:11-01:31:24:09 | 0.684 | OK | Static intimacy transitioning to a spatial arrangement of figures |
| 18 | 00:01:09:03-00:01:10:19 | 00:09:13:13-00:09:14:20 | 0.668 | OK | Woman in foreground turns her head from profile to face the camera while speakin |
| 19 | 00:01:10:19-00:01:12:13 | 00:16:48:15-00:16:49:16 | 0.717 | OK | static conversation, subtle facial expression change |
| 20 | 00:01:12:13-00:01:15:14 | 01:28:04:18-01:28:05:15 | 0.663 | OK | man kisses woman's forehead, then they pull back slightly to face each other |
| 21 | 00:01:15:14-00:01:17:13 | —-— | 0.000 | MAN. | hand raised to mouth, slight facial movement |
| 22 | 00:01:17:13-00:01:19:23 | 01:03:05:16-01:03:07:10 | 0.545 | ? | |
| 23 | 00:01:19:23-00:01:25:14 | —-— | 0.000 | MAN. | |
| 24 | 00:01:25:14-00:01:32:07 | —-— | 0.000 | MAN. | |
## Beat-Details mit Vorschau-Stills
### Beat 00 — Status `MAN.`
- **Trailer**: 00:00:00:00 00:00:03:00
- **Source** : — (kein Treffer; manuell setzen)
- **Phase** : logo animation assembling from distorted shapes with motion blur
- **Bild** : centered, symmetrical, abstract black void
| Trailer | Source |
|---|---|
| ![Trailer beat 0](output/cutter_stills/beat_00_trailer.jpg) | _(kein Still)_ |
### Beat 01 — Status `?`
- **Trailer**: 00:00:03:00 00:00:08:10
- **Source** : 00:00:04:10 00:00:06:04 (scene 1, score 0.380)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 1](output/cutter_stills/beat_01_trailer.jpg) | ![Source beat 1](output/cutter_stills/beat_01_source.jpg) |
### Beat 02 — Status `MAN.`
- **Trailer**: 00:00:08:10 00:00:16:24
- **Source** : — (kein Treffer; manuell setzen)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 2](output/cutter_stills/beat_02_trailer.jpg) | _(kein Still)_ |
### Beat 03 — Status `?`
- **Trailer**: 00:00:16:24 00:00:19:03
- **Source** : 01:02:17:23 01:02:19:15 (scene 436, score 0.469)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 3](output/cutter_stills/beat_03_trailer.jpg) | ![Source beat 3](output/cutter_stills/beat_03_source.jpg) |
### Beat 04 — Status `?`
- **Trailer**: 00:00:19:03 00:00:20:16
- **Source** : 01:02:21:01 01:02:22:10 (scene 437, score 0.647)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 4](output/cutter_stills/beat_04_trailer.jpg) | ![Source beat 4](output/cutter_stills/beat_04_source.jpg) |
### Beat 05 — Status `?`
- **Trailer**: 00:00:20:16 00:00:26:09
- **Source** : 00:01:33:04 00:01:37:10 (scene 10, score 0.501)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 5](output/cutter_stills/beat_05_trailer.jpg) | ![Source beat 5](output/cutter_stills/beat_05_source.jpg) |
### Beat 06 — Status `?`
- **Trailer**: 00:00:26:09 00:00:29:06
- **Source** : 00:01:03:06 00:01:05:22 (scene 5, score 0.548)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 6](output/cutter_stills/beat_06_trailer.jpg) | ![Source beat 6](output/cutter_stills/beat_06_source.jpg) |
### Beat 07 — Status `?`
- **Trailer**: 00:00:29:06 00:00:31:17
- **Source** : 01:20:10:11 01:20:12:17 (scene 553, score 0.463)
- **Phase** : man appears to be engaged in conversation
- **Bild** : man in a light gray sweater and scarf, seated on a white couch, with a window in the background, indoor with a view of the ocean
| Trailer | Source |
|---|---|
| ![Trailer beat 7](output/cutter_stills/beat_07_trailer.jpg) | ![Source beat 7](output/cutter_stills/beat_07_source.jpg) |
### Beat 08 — Status `OK`
- **Trailer**: 00:00:31:17 00:00:33:16
- **Source** : 00:00:51:07 00:00:53:01 (scene 5, score 0.733)
- **Phase** : static or slow drifting
- **Bild** : close-up, diagonal curve from top-left to bottom-center, dark, indistinct void
| Trailer | Source |
|---|---|
| ![Trailer beat 8](output/cutter_stills/beat_08_trailer.jpg) | ![Source beat 8](output/cutter_stills/beat_08_source.jpg) |
### Beat 09 — Status `?`
- **Trailer**: 00:00:33:16 00:00:36:19
- **Source** : 01:20:28:20 01:20:31:17 (scene 557, score 0.529)
- **Phase** : speaking, transitioning from closed eyes to open mouth and focused gaze
- **Bild** : medium close-up, subject positioned right of center, profile/three-quarter view, indoor room next to a large window overlooking a blue horizon/sea
| Trailer | Source |
|---|---|
| ![Trailer beat 9](output/cutter_stills/beat_09_trailer.jpg) | ![Source beat 9](output/cutter_stills/beat_09_source.jpg) |
### Beat 10 — Status `?`
- **Trailer**: 00:00:36:19 00:00:40:02
- **Source** : 01:20:35:17 01:20:39:00 (scene 558, score 0.635)
- **Phase** : conversation
- **Bild** : alternating close-ups and a medium two-shot, indoor living room with large windows showing a blue exterior landscape
| Trailer | Source |
|---|---|
| ![Trailer beat 10](output/cutter_stills/beat_10_trailer.jpg) | ![Source beat 10](output/cutter_stills/beat_10_source.jpg) |
### Beat 11 — Status `?`
- **Trailer**: 00:00:40:02 00:00:42:03
- **Source** : 01:20:40:19 01:20:42:19 (scene 559, score 0.502)
- **Phase** : static talking head with slight facial expression changes
- **Bild** : medium close-up, subject positioned right of center, profile/three-quarter view facing left, indoor room with a large window showing a blue sea/horizon background
| Trailer | Source |
|---|---|
| ![Trailer beat 11](output/cutter_stills/beat_11_trailer.jpg) | ![Source beat 11](output/cutter_stills/beat_11_source.jpg) |
### Beat 12 — Status `?`
- **Trailer**: 00:00:42:03 00:00:50:06
- **Source** : 01:14:26:01 01:14:29:10 (scene 519, score 0.558)
- **Phase** : static profile shot transitioning to black/darkness
- **Bild** : medium close-up, profile view, subject positioned on the right side of the frame, dark outdoor environment, blurred trees in background
| Trailer | Source |
|---|---|
| ![Trailer beat 12](output/cutter_stills/beat_12_trailer.jpg) | ![Source beat 12](output/cutter_stills/beat_12_source.jpg) |
### Beat 13 — Status `?`
- **Trailer**: 00:00:50:06 00:00:53:21
- **Source** : 00:43:20:02 00:43:23:11 (scene 308, score 0.468)
- **Phase** : static conversation; woman on right is standing and holding a cup
- **Bild** : wide shot, two figures positioned on opposite sides of a round dining table, modern glass-walled sunroom or conservatory overlooking a snowy landscape
| Trailer | Source |
|---|---|
| ![Trailer beat 13](output/cutter_stills/beat_13_trailer.jpg) | ![Source beat 13](output/cutter_stills/beat_13_source.jpg) |
### Beat 14 — Status `?`
- **Trailer**: 00:00:53:21 00:00:57:02
- **Source** : 00:43:24:09 00:43:27:04 (scene 309, score 0.444)
- **Phase** : static conversation, subject holding a white cup
- **Bild** : medium shot, subject positioned on the left, vertical window frame dividing the right third of the frame, interior room with a large window overlooking a snowy pine forest
| Trailer | Source |
|---|---|
| ![Trailer beat 14](output/cutter_stills/beat_14_trailer.jpg) | ![Source beat 14](output/cutter_stills/beat_14_source.jpg) |
### Beat 15 — Status `?`
- **Trailer**: 00:00:57:02 00:01:01:12
- **Source** : 00:02:10:11 00:02:12:17 (scene 0, score 0.467)
- **Phase** : static conversation
- **Bild** : medium shot, profile view of two characters facing each other, indoor room with a large window overlooking a snowy forest
| Trailer | Source |
|---|---|
| ![Trailer beat 15](output/cutter_stills/beat_15_trailer.jpg) | ![Source beat 15](output/cutter_stills/beat_15_source.jpg) |
### Beat 16 — Status `?`
- **Trailer**: 00:01:01:12 00:01:04:12
- **Source** : 01:05:12:17 01:05:15:06 (scene 451, score 0.613)
- **Phase** : man reaches out and touches the red door with a small object
- **Bild** : medium side profile shot, subject on left, door on right, indoor dim environment, adjacent to a red wooden door
| Trailer | Source |
|---|---|
| ![Trailer beat 16](output/cutter_stills/beat_16_trailer.jpg) | ![Source beat 16](output/cutter_stills/beat_16_source.jpg) |
### Beat 17 — Status `OK`
- **Trailer**: 00:01:04:12 00:01:09:03
- **Source** : 01:31:22:11 01:31:24:09 (scene 623, score 0.684)
- **Phase** : Static intimacy transitioning to a spatial arrangement of figures
- **Bild** : Medium shot, eye-level. First two frames: static shot of couple in bed. Third frame: wide shot of women among white blocks, Bedroom with bedside table and lamp; transition to a white minimalist interior with pedestals
| Trailer | Source |
|---|---|
| ![Trailer beat 17](output/cutter_stills/beat_17_trailer.jpg) | ![Source beat 17](output/cutter_stills/beat_17_source.jpg) |
### Beat 18 — Status `OK`
- **Trailer**: 00:01:09:03 00:01:10:19
- **Source** : 00:09:13:13 00:09:14:20 (scene 75, score 0.668)
- **Phase** : Woman in foreground turns her head from profile to face the camera while speaking
- **Bild** : Medium shot, three-quarter profile of woman in foreground left, two women positioned behind her to the right, Indoors, minimalist dark background
| Trailer | Source |
|---|---|
| ![Trailer beat 18](output/cutter_stills/beat_18_trailer.jpg) | ![Source beat 18](output/cutter_stills/beat_18_source.jpg) |
### Beat 19 — Status `OK`
- **Trailer**: 00:01:10:19 00:01:12:13
- **Source** : 00:16:48:15 00:16:49:16 (scene 126, score 0.717)
- **Phase** : static conversation, subtle facial expression change
- **Bild** : medium close-up, over-the-shoulder shot with a blurred figure in the foreground right, outdoor dark forest or wooded area
| Trailer | Source |
|---|---|
| ![Trailer beat 19](output/cutter_stills/beat_19_trailer.jpg) | ![Source beat 19](output/cutter_stills/beat_19_source.jpg) |
### Beat 20 — Status `OK`
- **Trailer**: 00:01:12:13 00:01:15:14
- **Source** : 01:28:04:18 01:28:05:15 (scene 613, score 0.663)
- **Phase** : man kisses woman's forehead, then they pull back slightly to face each other
- **Bild** : extreme close-up, profile view, faces facing each other, indoor, blurred background
| Trailer | Source |
|---|---|
| ![Trailer beat 20](output/cutter_stills/beat_20_trailer.jpg) | ![Source beat 20](output/cutter_stills/beat_20_source.jpg) |
### Beat 21 — Status `MAN.`
- **Trailer**: 00:01:15:14 00:01:17:13
- **Source** : — (kein Treffer; manuell setzen)
- **Phase** : hand raised to mouth, slight facial movement
- **Bild** : extreme close-up, face partially obscured by shadow, dark interior
| Trailer | Source |
|---|---|
| ![Trailer beat 21](output/cutter_stills/beat_21_trailer.jpg) | _(kein Still)_ |
### Beat 22 — Status `?`
- **Trailer**: 00:01:17:13 00:01:19:23
- **Source** : 01:03:05:16 01:03:07:10 (scene 442, score 0.545)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 22](output/cutter_stills/beat_22_trailer.jpg) | ![Source beat 22](output/cutter_stills/beat_22_source.jpg) |
### Beat 23 — Status `MAN.`
- **Trailer**: 00:01:19:23 00:01:25:14
- **Source** : — (kein Treffer; manuell setzen)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 23](output/cutter_stills/beat_23_trailer.jpg) | _(kein Still)_ |
### Beat 24 — Status `MAN.`
- **Trailer**: 00:01:25:14 00:01:32:07
- **Source** : — (kein Treffer; manuell setzen)
- **Phase** : (keine Vision-Beschreibung)
| Trailer | Source |
|---|---|
| ![Trailer beat 24](output/cutter_stills/beat_24_trailer.jpg) | _(kein Still)_ |
## Hinweise zur Prüfung
1. Wenn die Bewegungsphase im Source-Still nicht zum Trailer-Still passt, im NLE den Source-In um wenige Frames verschieben — innerhalb derselben Source-Szene reicht das meistens.
2. Wenn der Source-Clip kürzer ist als der Trailerbeat (Source-Out < Trailer-Out), enthält der Trailerbeat eine Blende oder Titelkarte; im Schnitt mit Schwarzfade oder dem Source-Tail auffüllen.
3. `OK`-Beats sind doppelt verifiziert (CV + Vision-Phase). Trotzdem stichprobenartig sichten.
4. Stills liegen unter `output/cutter_stills/`. Bei Bedarf einzelne neu generieren: einfach die Datei löschen und das Skript erneut laufen lassen.