Materialtechnik (ausführbare Pipeline)
Zweck: Dies ist ein ausführendes Skill, kein Regeldokument – eine durchgängige Ausführung von Entscheidung, Befehl und Abnahme. Die vollständigen Regeln finden Sie in
remotion-assembly/references/broll.md(detaillierte Prioritätsstufen, Pflichten zur Materialliste pro Fall, Referenzspezifikation). Bei Konflikten hat diese Quelle Vorrang.
Wann aufrufen
- Schritt 2 der Segment-Werkstatt hat einen „echten Materialabschnitt“ erkannt (produktbezogene Szenen: Tippen/Generieren/Oberfläche/Demo/Bedienung)
- Materialsammlung vor der endgültigen Montagetabelle (1 Screenshot oder 5s Bildschirmaufnahme pro Fall, AI beschafft selbst, wartet nicht auf Zulieferung)
- Benutzer liefert Bildschirmaufnahmen / Rohmaterial zur Einbettung
Ausführungspipeline (jeder Schritt mit Abnahme, schrittweise vorgehen)
① Einstufung: Nach vier Prioritätsstufen Route wählen – Benutzer-Screencast > Offizielles Video > Web-Screenshot > UI-Simulationskarte. Bei Fällen mit öffentlicher Website / offiziellem Kanal ist der direkte Sprung auf Stufe 4 verboten.
② Erfassung
- Offizielles Video:
yt-dlp --print "%(channel)s | %(title)s | %(duration)ss | %(id)s" "ytsearch8:<Produktname> official"offiziellen Kanal identifizieren →yt-dlp -f "bv*[height<=1080][vcodec^=avc1]+ba[ext=m4a]/b[vcodec^=avc1]/b" -o "public/broll/<Name>.mp4" <url>([vcodec^=avc1]filtert das Standard-AV1, das ebenso wie HEVC nicht in die Bibliothek aufgenommen wird, siehe broll.md 2c); Bei 403 nacheinander UA /--cookies-from-browser/ Proxy ausprobieren. - Web-Screenshot:
node_modules/.remotion/chrome-headless-shell/*/chrome-headless-shell*/chrome-headless-shell --headless --screenshot=<out.png> --window-size=1920,1080 --virtual-time-budget=10000 <url>.
③ Authentifizierung (nicht überspringbar): file <Datei> um sicherzustellen, dass „PNG in Wirklichkeit HTML“ verhindert wird; Video mit ffprobe Codec prüfen, HEVC vorher nach H.264 konvertieren (schwarzen Bildschirm vermeiden); Screenshot visuell lesen, um Login-Wall / Cookie-Popup auszuschließen.
④ Segmentauswahl: ffmpeg -vf fps=0.5 Frames extrahieren, Kontaktbogen erstellen, Einzelbilder visuell lesen, 3-8s lange Kameraeinstellung auswählen, die zeitlich mit dem Kommentar synchron ist (Eingabe → Aktion → Warten → Ergebnis), Start- und Endsekunden notieren.
⑤ Einbettung: Im Takeover <Sequence from={beat(x)}> + <OffthreadVideo muted src={staticFile('broll/….mp4')} startFrom={F(Startsekunde)}> (muted ist Pflicht); Takeover ohne PiP (Benutzerentscheid); Screenshots als ShotCard/WindowCard einbauen. Media-Sequenz mit premountFor≈fps versehen, um schwarzen Erstframe zu vermeiden, aber diese Sequence darf NICHT layout="none" setzen (nach Entfernen der Hülle wird premount unwirksam); äußere Schicht, wenn return null die Sichtbarkeit des Containers steuert, muss null mindestens ≥premountFor Frames vorher gesetzt werden (seg06-Test: Container frame<enterAt-30 return null mit innerem premountFor={30}), sonst löscht das parent-null das Vorladefenster und premount ist sinnlos.
⑥ Farbkorrektur-Vereinheitlichung: Auf Materialebene filter: brightness(0.9-0.92) saturate(0.95) hinzufügen (je nach Helligkeit des Hauptvideos leicht anpassen), unveränderte Originalfarben wirken wie ein aufgeklebtes Bild (Fehler #18); Takeover-Abschnitte einheitlich mit brightness(.92) saturate(.95) (seg06-Test, pro Abschnitt nicht nach Augenmaß anpassen).
⑦ Schnitt-Nachbearbeitung: Bei Betonung Punch-in (Crop+Scale auf Schlüsselbereich, Schlüsselsatzzeichenhöhe ≥40px), Frame-Auswahl, Zeitraffer; Zitate im Zweiteiler „Zuerst gesamte Karte 2-3s → Punch-in Schlüsselsatz“; Takeover-Fenster an die natürliche Länge des Materials anpassen, natürliche Geschwindigkeit bevorzugen – Material kürzer als Fenster: Fenster früher schließen + Überblendung vorziehen, nicht verlangsamen, um Fenster zu füllen; playbackRate<1 nur bei UI-Scrollen und wenn Fenster nicht verkürzbar ist, als letzte Wahl (≥0.7). Material mit eingebrannten Hervorhebungen/Übersetzungen hat keine sauberen Frames → Maskierungs-Overlay (weiße Maske scaleX 1→0 enthüllt, und in SOURCES.md muss „mit Maskierungs-Overlay“ vermerkt sein, siehe broll.md 8.5).
⑧ Segment-Render-Abnahme: Nur das Segment rendern --frames=a-b, Frames extrahieren und visuell prüfen auf: Klebegefühl (Farbkorrektur), Lesbarkeit (≥16px), Überlappung (Whiteboard-Sicherheitsrahmen), Synchronisation mit Kommentar.
Ablagekonvention
Video public/broll/; Screenshots public/assets/; Lücken in der Montagetabelle festhalten und Benutzer um Zulieferung bitten. Urheberrechtsvermerk: Offizielles Werbematerial für kommentierende Videos.
Personennamen immer mit Porträt (Benutzerentscheid 2022-07-22, eisernes Gesetz)
Wenn im Kommentar ein konkreter Name genannt wird, soll im Avatar-Kreis der Person möglichst ein echtes Foto dieser Person erscheinen, kein Initialen-Monogramm (Benutzer wörtlich: „Erwähne einen Namen, füge möglichst ein Bild hinzu, suche selbst das repräsentativste Bild dieser Person im Netz und setze es in den Avatar-Kreis“). Monogram/Icon nur als Notlösung, wenn kein Bild verfügbar.
Beschaffungsansatz (zwei Kategorien, nicht vermischen):
- Öffentliche Personen (Steve Jobs, Elon Musk usw.): AI beschafft selbst, aber nur aus Quellen mit eindeutig kommerziell nutzbarer Lizenz – bevorzugt Wikimedia Commons mit CC BY / CC BY-SA / Public Domain, danach offizielle Pressematerialien. Kein wildes Googlen nach Bildern (meist urheberrechtlich unklare kommerzielle Fotografie, das Video des Benutzers soll veröffentlicht werden). Nach der Beschaffung muss in
public/broll/<Filmname>/SOURCES.mdvermerkt werden: Dateiname / Quell-URL / Lizenztyp / Fotograf. CC BY-SA erfordert Nennung im Abspann oder in der Beschreibung – den Benutzer bei Übergabe informieren. - Nicht-öffentliche Personen (z. B. im Kommentar erwähnte Lehrer, Freunde, Kollegen): AI darf nicht selbst im Netz nach Bildern suchen – weder kann die Identität bestätigt werden, noch gibt es eine Lizenz. Nach dem Prozess „Namentlich angeforderte Materialien“ den Benutzer um Bereitstellung bitten; stellt der Benutzer kein Bild, bleibt es bei handgezeichneter Namenskarte/Monogram, mit Begründung bei Übergabe.
Diese Anweisung ersetzt die alte Regelung: Die frühere Einschränkung „Steve Jobs kein Porträt, nur Text/Icon-Chip“ war eine konservative Maßnahme aus Urheberrechtsgründen; jetzt gilt nach Benutzerentscheid „echtes Foto mit klarer Lizenz“. Das Urheberrechtsproblem wird durch Auswahl lizenzierter Quellen gelöst, nicht durch Verzicht auf ein Bild.
KI-generierte Collage-B-Rollen (emotionale/metaphorische Szenen ohne echtes Material, 0722-01 etabliert)
Wenn es in den vier Materialstufen nichts gibt, aber eine emotionale oder abstrakte metaphorische Szene benötigt wird (Wiederholungen, Operation, Handynutzung, Aufmerksamkeitszerfall – diese Art von Szenen kann weder aufgezeichnet noch offiziell gefilmt werden), wird dieser Prozess ausgeführt: Codex image_gen erzeugt Standbilder → Grok image_to_video belebt sie → Einbindung ins Hauptvideo. Die Ausführung erfolgt über das gbro-collage-broll Skill mit drei Gates (Gate1 Metapher / Gate2 Standbild / Gate3 Video), aber Rhythmus, Träger und Komposition richten sich nach diesem Abschnitt (überschreibt gbro-Standardwerte).
① Träger: Standardmäßig Karte im rechten Bereich, nicht Vollbild. B-Roll kommt in die Beweiskarte des rechten Bereichs der Drei-Spalten-Version (16:9 proportional objectFit:contain vollflächig angezeigt, nicht beschnitten – Benutzerentscheid „proportional verkleinern“), die Person bleibt anwesend, der linke Bereich behält Seitenmarkierung + Timeline-HUD. Vollbild-Takeover nur, wenn „keine Informationen parallel zum Material angezeigt werden müssen“ (A-Roll-Eisernes Gesetz: Vollbild ist die einzige Stelle, an der die Person abgeschnitten werden kann, siehe Layout §2). Träger-Komponente siehe src/koubo/scenes-0722-01/CollageBroll.tsx (Karte + OffthreadVideo, Strichfarbe folgt Kapitelfarbe). Nicht standardmäßig Vollbild machen – 0722-01 wurde fälschlich als Vollbild erstellt und vom Benutzer abgelehnt, Neuanfertigung.
② Rhythmus: Ein Satz ein Bild, Schnitte geben Rhythmus, keine Enthüllung im Frame. Bei dichtem Kommentar lebt jedes Bild nur 1-3s, keine assemble-from-empty-Aufbau-Animation (beginnt mit leerem Raum, erst letzter Frame vollständig = Information immer einen halben Takt hinterher, kämpft gegen die Sprachkurve, 8 Videos deshalb verworfen). Stattdessen „beleben“ – Standbild-Komposition ist ab Frame 0 vollständig, Grok fügt nur kontinuierliche Mikrobewegung hinzu (Papierflattern/Zahnräder drehen/Lichtbänder gleiten/Nebel wallen), die Komposition darf sich kein einziges Frame ändern.
③ Standbild-Kompositionsregeln (Codex image_gen):
- Proportions-Typologie (pauschales Vorgehen führt zum Scheitern): Objektgetriebene Metapher (Krankenbett/Tablette/Kalender/Fragmente/Bücherstapel – Person ist nur Element) Personenhöhe 45-60%; Personengetriebene Metapher (arbeitet/sitzt aufrecht/drückt Knopf/starrt – Person ist Hauptsubjekt) muss Nahaufnahme 65-80%, Totale funktioniert nicht.
- Harte rote Linie: Keine falschen Zeichen/lesbaren Buchstaben/Zahlen/Logo/Wasserzeichen/UI; auch die vier Ränder prüfen (Codex übersieht oft falsche Zeichen an den Rändern, das Hauptgespräch muss mit ffmpeg die vier Ränder beschneiden, vergrößern und unabhängig nachprüfen).
- Identitätsreferenzbild vom Benutzer festgelegt (0722-01 verwendet
my-face-studio-default.JPG); Gesichtsausdruck nach Erzählung, in Tiefpunkten häufig Silhouetten/gesenkter Kopf/liegend verwenden, um Unstimmigkeiten zu vermeiden, nicht lächeln, nicht traurig. - Nach jeder Batch-Generierung
md5Duplikate entfernen, um Dateiüberschreibungen zu vermeiden.
④ Grok-Belebung – drei Fallstricke (Fehler #39 detailliert):
- Auflösung: grok CLI
image_to_videohat beiresolution_namenur 480p/720p, kein 1080p (am 2026-07-24 getestet und bestätigt, Anfrage 1080p fällt auf 720p zurück); xAI API-seitig unterstützt grok-imagine-video-1.5 1080p i2v (offizielle Doku). Vollbild benötigt 1080p = CLI schafft das nicht: xAI API 1.5, echtes Material oder anderen Generator (Sora 2 / Veo / Kling / Seedance; ChatCut MCP hat Seedance/Kling eingebaut). Der Befehl muss explizit die Auflösung festschreiben, um die volle Stufe zu erhalten – ohne Vorgabe fällt standardmäßig auf 736×400 (noch unschärfer). Reicht 720p je nach Trägermodus?: Karte/Bild-in-Bild (Anzeigebereich oft <720px) 720p reicht aus, scharf; Vollbild über 1920×1080 bei 720p um 1.5× vergrößert wird weich. Das Endvideo ist 1080p, B-Roll braucht kein 4K (nicht sichtbar, es sei denn, starkes Heranzoomen). - Morph-Wucherung: Bei leicht zerfallenden Elementen (Zahnrad/Ring/Kalenderfeld) im Prompt am Ende eine Sperre einfügen (einzelne Originalgröße/Anzahl und Farbe gleich/Ring durchgehend nicht reißen).
- Harte Vervollständigung: „Sparsame Elemente + große leere Hintergründe + hohle Menschenfiguren + Fragment mit Gesicht“ löst Modell aus, den leeren Raum zu füllen/hohle Räume auszufüllen/Gesichter wachsen zu lassen – ändert die Komposition, statt Verbote hinzuzufügen.
- Aufruf: Headless benötigt
--always-approve --permission-mode bypassPermissions --max-turns 10; Multi-Agent gemeinsames cwd deaktiviertgrok --continue(würde Sitzungen vermischen und A-Film ins B-Verzeichnis schreiben); vor Übergabe alle mit md5 deduplizieren.
⑤ Umgebungsvoraussetzung: Codex-Projekt muss in dessen beschreibbarem Arbeitsverzeichnis erstellt werden (lokal = ~/Documents/remotion剪辑/), erstellt in ~/hyperframes-projects/ führt zu erfolgreichem image_gen, aber Speichern wird verweigert; Multi-Item-Aufgaben pro Item einen Agenten parallel starten, nicht einen Agenten seriell alles machen lassen (würde nach der Hälfte fertig melden und aufhören).