Assemblage et vérification de timeline MCP atomique (/assemble-timeline)
Option A : Exécution via FilmCraft MCP (serveur filmcraft — nécessite FilmCraft v0.17.0+)
1. Vérification de l'environnement et du bridge
- Exécutez d'abord
python3 ./.agents/skills/assemble-timeline/scripts/check_filmcraft_env.pypour vérifier que FilmCraft $≥$v0.17.0, synchroniser automatiquementfilmcraft-cliavecFilmCraft.app, et signaler les nouvelles commandes MCP dans00_Archive_Indexes/filmcraft_capabilities.json. - Assurez-vous que FilmCraft est en mode bridge avec les caches redirigés vers
~/Movies/Cache_And_Previews:mkdir -p ~/Movies/Cache_And_Previews && cd ~/Movies/Cache_And_Previews open -a FilmCraft --args --control 9876
2. Mode d'assemblage visuel en direct (par défaut et recommandé)
Regarder la timeline s'assembler en direct dans l'interface graphique ouverte de FilmCraft n'ajoute que moins de 1,5 seconde au temps total d'exécution des sockets (les appels prennent $< 20\text{ ms}$ sur le bridge local) et fournit une vérification visuelle instantanée :
- Ouvrir un canevas vierge à la seconde 0 :
Crée et ouvre immédiatement le shell
.fcprojpropre dans FilmCraft viacommand_run({"id": "file.open", "params": {"path": "<fcproj_path>"}}) ousequence.new. L'utilisateur voit sa séquence 4K vide apparaître à la seconde 0. - Ingestion de médias en flux :
Appelez
media_importavec les chemins absolus de tous les plans vidéo sélectionnés, photos, imports d'archives et pistes03_Audio_Library/01_Curated_BGM/choisies (A2). - Flux scène par scène en direct :
Au fur et à mesure que chaque scène de la
Table de Montageapprouvée est traitée, diffusez les appelscommand_batchen direct sur le bridge 9876 :playhead.set: Déplace la tête de lecture au timecode de début de scène.source.overwrite/timeline.insertClip: Place le clip visuel surV1(ouV2pour les incrustations/PIP) et l'audio synchrone surA1.motion.apply: Injecte les images clés d'échelle et de panoramique Ken BurnsEaseIn/EaseOutsur les photos (100% $ ightarrow$ 108%, ou 134% $ ightarrow$ 142% sur les photos 4:3 pour éviter le recadrage en letterbox).audio.append: Ajoute la musique de fondA2avec fondu d'entrée de 1,5s et gonflements.voiceover.insert: Insère les segments de voix offA4sur la timeline en direct au fur et à mesure que chaque cue audio termine sa synthèse.
- Polissage broadcast :
- Loi d'honneur du dialogue en direct dans la même langue : Ne placez jamais de voix off
A4dans une langue $L$ par-dessus le dialogue de caméra en directA1parlé dans cette même langue $L(la VOENhonore le dialogue en directEN; la VORUhonore le dialogue en directRU; la VOUAhonore le dialogue en directUA). Lorsque la VOA4traduit un clip contenant le dialogue de caméra en langue étrangère (edition_lang != clip_dialog_lang), réduisezA1de-12 dB` pendant les cues VO actifs. - Loi de la vitesse de parole naturelle
1.00x, du lip-sync1:1 V1 == A1et de l'intro musicale : N'appliquez jamaisatempo > 1.0ni suppression interne des pauses (stop_periods=-1) à la parole de caméra en direct (A1) ni à la voix off synthétisée (A4). Dimensionnez toujours les plans visuels parlés (V1) pour qu'ils s'adaptent à la phrase parlée complète1.00x(src_in,dur) afin queV1etA1restent verrouillés 1:1 en synchronisation image-échantillon (tranchés viaatrim=start=...:end=...,asetpts=PTS-STARTPTSavecdynaudnorm=f=150:g=7:p=0.90appliqué une fois aprèsamix) et ne débordent jamais dans des scènes non liées. Commencez toujours chaque timeline et chaque.mp4rendu par une intro musicale de1,5s–2,0savant que le premier cue de voix off ne démarre. - Ducking musical calibré RMS (
moyenne -28,5 dBsous la parole) : Mesurez lemean_volumede chaque piste musicaleA2viaffmpeg volumedetect(compute_bgm_ducked_gain_db) et définissezgain_db = -28.5 - raw_mean_dbpour que la musique atténuée se situe à une moyenne de-28,5 dB— soit un silence de12,5 dBinférieur à la moyenne normalisée-16,0 dBde la voix off et du dialogue en direct, même sur les pistes entraînantes masterisées chaudes. - Étiquetez la voix off
A4et le dialogueA1commeDialogue(clarity.eqPreset: "Balanced Voice"), et exécutezessentialSound.generateDucking(reduceDb: -6.0,fadeS: 0.45) sur la musiqueA2. - Appliquez une transition native
dip_to_blackde 1,5s à 2,0s sur le clip visuel de fin. - Fondu de sortie audio synchronisé obligatoire : La sortie audio master (
[fullout]) et la musique surA2DOIVENT exécuter un fondu de sortie sinusoïdal synchronisé de2,0s–2,5s(afade=t=out:st=<TOTAL_DUR - FADE_DUR>:d=<FADE_DUR>:curve=hsin) afin que tout l'audio (musique, bruit de caméra, queues SFX) atteigne le silence complet (-infinity dB) au plus tard sur l'image finale. Dans.fcproj, la pisteA2DOIT porter une transition audioEndAtCut(from: Some(clip.id), to: None, align: "EndAtCut"). Le son ne doit JAMAIS s'arrêter brutalement. - Écrivez les pistes de sous-titres multilingues dans
caption_tracks(C1) avecenabled: false(burnCaptions: falsepar défaut).
- Loi d'honneur du dialogue en direct dans la même langue : Ne placez jamais de voix off
3. Solution de secours par lots sans interface (assemble_engine.py)
Si l'interface graphique de FilmCraft n'est pas en cours d'exécution ou si le mode bridge est hors ligne, assemblez automatiquement le .fcproj directement via assemble_engine.py en $< 1$ seconde et générez le master MP4 4K via filmcraft-cli.
- Règle d'hygiène du dépôt : Conservez
.agents/skills/assemble-timeline/scripts/strictement réservé aux moteurs universels et indépendants du projet (assemble_engine.py,gpx_widgets.py,generate_voiceover.py,check_filmcraft_env.py). Si un script d'assemblage personnalisé ou spécifique à un projet est un jour créé pour un projet particulier, enregistrez-le toujours dans le dossier de catalogue ignoré par git de ce projet (04_Project_Catalog/YEAR/<project_name>/) et jamais dans.agents/skills/.
4. Vérification visuelle et rendu master
- Appelez
render_frameà trois timestamps (introduction de l'acte 1, milieu, épilogue) pour confirmer le cadrage. - Générez le master 4K MP4 vers
~/Movies/Exports/YEAR/<project_name>.mp4. - Si des éditions multilingues sont demandées (
option_b), remuxez avec les pistes localisées_UA.mp4et_RU.mp4.
Option B : Exécution via DaVinci Resolve Studio MCP (davinci-resolve)
- Créez une nouvelle timeline (
1920x1080ou3840x2160,29,97ips,DaVinci YRGB Color Managed Rec.709). - Importez les médias sélectionnés dans un dossier
Selectsviamedia_pool, ajoutez les clips surV1/V2/A1et la musique surA2viatimeline_edit, appliquez les transitionsCross Dissolveviatransitions, définissez les images clés de zoom Ken Burns viakeyframes, et réglez le ducking audio viaaudio/inspector. - Appelez
export_stillà trois timestamps pour vérifier visuellement le montage, exportez une sauvegarde.drp/.drtvers04_Project_Catalog/YEAR/<project_name>/, et placez le rendu final.mp4dans la file d'attente vers~/Movies/Exports/YEAR/viarender.