3.8 KiB
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+)
- 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
.srtaligné surep02_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. - 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).
logo_B_v6.pngvalidé dansBRAND.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).