Video-QA – das Abnahmegate
Ein Video ist nicht fertig, wenn es gerendert ist; es ist fertig, wenn es geprüft, auf einem Kontaktabzug GESEHEN und normalisiert wurde. Dieses Skill funktioniert mit jeder Datei, unabhängig davon, wie sie erstellt wurde.
1. Fakten prüfen (niemals Annahmen vertrauen)
scripts/probe.sh video.mp4
Vergleiche jeden Wert mit dem, was bestellt wurde (Timeline, Brief, Plattform-Spezifikation):
| Prüfung | Erwartet |
|---|---|
| Dauer | bestellte Dauer ± 0,1 s |
| fps / Auflösung | bestellte fps / B×H |
| Codec / pix_fmt | h264 / yuv420p (yuvj420p = Full-Range-Variante, normalerweise in Ordnung) |
| Audio-Stream | vorhanden gdw. das Video Ton haben soll |
| integrierte Lautstärke | −14 ± 2 LUFS (soziale Plattformen normalisieren nahe −14) |
Jede Abweichung ist ein Fehler im Rendering, keine Geschmacksfrage. Korrigiere upstream, rendere erneut.
2. Lautstärke: messen → normalisieren (nur Audio, Sekunden)
# messen
ffmpeg -hide_banner -i video.mp4 -af ebur128 -f null - 2>&1 | awk '/Integrated loudness/{getline; print}'
# auf −14 LUFS normalisieren (Videostream kopiert, kein Neuencode)
ffmpeg -i video.mp4 -c:v copy -af "loudnorm=I=-14:TP=-1.5:LRA=11" -c:a aac -b:a 192k video_norm.mp4 \
&& mv video_norm.mp4 video.mp4
Niemals nach Gehör mit einem Lautstärkefilter normalisieren – LUFS ist die Einheit, die Plattformen tatsächlich verwenden.
3. Ansehen: Kontaktabzug + Streifen
scripts/contact_sheet.sh video.mp4 contact.png 2 8x # 1 Kachel / 0,5 s, 8 Spalten
# 12 aufeinanderfolgende Frames um einen heiklen Moment (Übergang bei T):
ffmpeg -y -ss <T-0.2> -i video.mp4 -frames:v 12 -vf "scale=320:-1,tile=6x2" strip_T.png
Lies den Abzug wie einen Filmstreifen: Rhythmus sichtbar? Schnitte auf dem Beat-Raster? Leere oder überfüllte Szenen? Kontaktabzüge verbergen Bewegungsqualität – schaue DIR das vollständige Video immer mindestens einmal an, bevor du freigibst.
4. Kritikdurchlauf (Erbauer ≠ Beurteiler)
Bewerte das RENDERING – nicht die Quelle, nicht die Absichten – und bewerte jede Kategorie /10:
- Hook – markantester Frame in den ersten 2 Sekunden?
- Lesbarkeit – Text ≥ Mindestgröße, innerhalb sicherer Zonen, keine Überlappung/Abschneidung, lang genug sichtbar?
- Bewegung – kein lineares Easing, Mehreigenschafts-Eingänge, Staffelung, Ausgänge schneller als Eingänge?
- Synchronisation – Ereignisse treffen auf das Beat/Wort-Raster?
- Stil-Konsistenz – eine Palettenfamilie, ein Schriftsystem, einheitliche Übergänge?
- Sound – VO klar, Musik abgesenkt, Ziellautstärke, kein Clipping?
Protokoll: die 3 schlimmsten Mängel MIT Zeitstempeln notieren → genau diese beheben → neu rendern → neu bewerten. 3–5 Runden auf ≥8/10 überall sind normal. Führe den Kritiker in einem frischen Kontext (oder Sub-Agenten) aus: Der Autor des Codes ist der schlechteste Reviewer des Codes.
5. Determiniertheit (für generierte/wiederholbare Videos)
# zwei Fingerabdrücke derselben Eingabe müssen bytegenau übereinstimmen
ffmpeg -i video.mp4 -map 0:v -f framemd5 - | sha1sum
Gleiche Pipeline, gleiche Eingabe → anderer Hash bedeutet versteckte Wanduhrzeit, ungesetzter Zufall oder angesammelten Zustand: Korrigiere den Generator, würfle nicht neu.
6. Abgabeprüfliste
video.mp4 H.264, yuv420p, +faststart, −14 LUFS
poster.png/jpg der Hook-Frame
contact.png der 2-fps-Filmstreifen
sources was das Video erzeugt (editierbar > endgültig)
Sage dem Benutzer genau, welche Datei er bearbeiten muss, um eine Sache zu ändern, und den Befehl zum erneuten Rendern.
Beweisregel
Wenn ein Prüfer (Mensch oder Vision-Modell) einen Geometriefehler behauptet („Text ist abgeschnitten“, „Elemente überlappen“), bestätige mit einer Messung (Player-Inspektion, Pixelprobe oder den Metriken des erzeugenden Codes), bevor du einen „Nicht-Fehler“ behebst. Prüfer halluzinieren Ränder weitaus häufiger, als Renderings Text abschneiden.