runbook: iakifech ep02 postmortem sous-titres desync + freeze fin (24/07)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# IAKifech Ep02 — postmortem sous-titres desync + freeze fin + logo (24/07/2026)
|
||||
|
||||
## Contexte
|
||||
`iakifech_ep02_final_v3.mp4` (99,46s) analysé sur demande de Nabil : sous-titres
|
||||
en avance sur la voix, long silence/image figée en fin de vidéo, doute sur le logo.
|
||||
|
||||
## 1. Sous-titres en avance sur la voix — CONFIRMÉ, cause trouvée
|
||||
|
||||
Mesure : pixel-diff de la zone sous-titres vs onset audio réel (RMS 10ms) sur
|
||||
3 transitions → sous-titres changent **0,40 à 0,70s avant** que la voix ne
|
||||
reprenne (moyenne ~0,57s).
|
||||
|
||||
Cause : le corps vidéo (`ep02_body.mp4` = `final-1.mp4` du skill
|
||||
`moneyprinterturbo`, task `2fbc4b36-44de-48e4-8e3f-704c84c78eb1` sur
|
||||
`moneyprinterturbo-api`, VPS) est généré avec voix + sous-titres **synchronisés
|
||||
en interne** sur la voix edge-tts par défaut (`fr-FR-RemyMultilingualNeural-Male`,
|
||||
`audio.mp3` = 75,55s, `subtitle.srt` calé dessus). Ensuite la piste audio a été
|
||||
remplacée manuellement par une voix ElevenLabs (`ep02_george.mp3`, 79,49s,
|
||||
débit différent) SANS régénérer `subtitle.srt` sur ce nouveau timing. Les
|
||||
sous-titres restent gravés aux timestamps Rémy, qui ne collent plus au débit
|
||||
George.
|
||||
|
||||
C'est déjà documenté (mais pas corrigé) dans `BRAND.md` du projet :
|
||||
« edge-tts déjà utilisé par erreur sur l'épisode 2 ».
|
||||
|
||||
## 2. Silence + image figée en fin de vidéo — CONFIRMÉ, cause partielle
|
||||
|
||||
- Silence audio réel : 79,06s → fin (99,46s) = **20,4s de silence**.
|
||||
- `ep02_george.mp3` (voix utilisée) = 79,49s → colle à la fin de la parole détectée.
|
||||
- `ep02_body.mp4` (corps vidéo) = **75,57s seulement** → manque ~3,9s pour
|
||||
couvrir la voix George.
|
||||
- Assemblage final : image quasi figée ~79s→90,5s (11,5s), puis `outro.mp4`
|
||||
(5,5s, fichier validé BRAND.md) 90,5s→96s. Total vidéo 96s, total audio 99,46s.
|
||||
- Total body(75,57)+outro(5,5)=81,07s attendu au minimum, réel 99,46s → **~18s
|
||||
d'écart non expliqué**. Script d'assemblage non retrouvé (probablement
|
||||
commande ffmpeg ad hoc de l'agent pendant la session, non sauvegardée en
|
||||
fichier) — donc padding non reproductible, cause exacte du delta encore ouverte.
|
||||
|
||||
## 3. Logo — présent et correct (à corriger : mon diagnostic initial était faux)
|
||||
|
||||
Vérifié par comparaison pixel des coins entre `ep02_body.mp4` (aucun logo,
|
||||
std=8,9 coin haut-gauche) et `iakifech_ep02_final_v3.mp4` (logo présent,
|
||||
std=70,5, même zone) → le logo est ajouté après le rendu moneyprinterturbo,
|
||||
dans une étape séparée.
|
||||
|
||||
Mesures sur le logo appliqué : cercle marine ~115px de diamètre (10,6% de la
|
||||
largeur 1080px, cohérent avec le ~8% visé dans `BRAND.md`), coin haut-gauche,
|
||||
icône blanche + accent or (RGB 237,213,48 — cohérent avec le ton "accent_bright"
|
||||
navy-safe du système de marque Nyora). Présent aussi sur l'écran de fin.
|
||||
Correctement appliqué sur ce rendu — pas de logo gris/minuscule comme sur une
|
||||
version antérieure.
|
||||
|
||||
## Recommandations pour la suite (saison 2 / ep03+)
|
||||
|
||||
1. Ne jamais garder les sous-titres brûlés par moneyprinterturbo si la voix est
|
||||
remplacée après coup : soit regénérer un `.srt` aligné sur `ep02_george.mp3`
|
||||
(whisper ou timestamps ElevenLabs) puis re-burn, soit désactiver le burn-in
|
||||
sous-titre côté moneyprinterturbo et le faire dans une étape dédiée post-voix.
|
||||
2. Calculer la durée de hold/freeze dynamiquement (durée_voix − durée_body),
|
||||
jamais une valeur fixe/ad hoc, et sauvegarder la commande d'assemblage dans
|
||||
un script versionné (pas une commande one-shot en session agent).
|
||||
3. `logo_B_v6.png` validé dans `BRAND.md` — fonctionne bien tel qu'appliqué ici,
|
||||
rien à changer sur ce point.
|
||||
|
||||
Fichiers sources (VPS `hermes-nabil`, `/data/nyora/ia-tn/`) :
|
||||
`ep02_body.mp4`, `ep02_george.mp3`, `ep02_elevenlabs.mp3` (non utilisé),
|
||||
`outro.mp4`, `BRAND.md`, `ENDING-BRIEF.md`, `TACHES.md`.
|
||||
Skill source : `moneyprinterturbo` (manuellement rédigé, hors curator auto).
|
||||
Reference in New Issue
Block a user