Communitygithub.com

johnnyfekete/video-tighten

Resserre une coupe tête-parlante dans DaVinci Resolve Studio. Mesure la parole dans chaque clip, définit des bords de coupe naturels (air avant le premier mot et après le dernier), récupère les fins de mots coupés, raccourcit les longues pauses à l'intérieur des prises et réajuste le b-roll en cascade. Produit une nouvelle version de la timeline via resolve-bridge.

Qu'est-ce que video-tighten ?

Cette compétence automatise le resserrement des coupes dans une timeline tête-parlante sous DaVinci Resolve Studio. Elle analyse la parole dans chaque clip, ajuste les bords de coupe pour laisser une respiration naturelle avant et après chaque mot, et récupère les syllabes finales coupées par une coupe trop brutale. Les longues pauses internes sont raccourcies à une durée configurable, et le b-roll est ré-appliqué automatiquement sur la nouvelle synchronisation. Le workflow se déroule en plusieurs étapes : examen de l'état actuel de la timeline, simulation sans modification (dry run), lecture du rapport avec l'utilisateur, protection des pauses intentionnelles (silence de jeu d'acteur), puis application effective. Le résultat est une nouvelle version de la timeline nommée `_vNN_tighten`, l'ancienne version étant archivée et le projet sauvegardé. Tout problème non résolu (par exemple, un mot chevauchant un point de montage avec d'autres paroles juste avant) est signalé dans un fichier `EDIT_CHECKLIST.md` avec le nom du clip et le timecode. La compétence nécessite `resolve-bridge` et `ffmpeg`. La détection de la parole est basée sur l'énergie et convient aux enregistrements avec micro rapproché.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-tighten

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait video-tighten ?

Nécessite la compétence resolve-bridge installée à côté de celle-ci (il la trouve dans ../resolve-bridge, ou définissez RVS_BRIDGE), ainsi que ffmpeg.

Flux de travail

  1. Où sommes-nous. python3 <resolve-bridge>/scripts/rvs.py --workdir <dossier> status. S'il n'y a pas encore d'état, adoptez la timeline que l'utilisateur souhaite resserrer (voir resolve-bridge).
  2. Simulation. Ne change rien dans Resolve :
    python3 scripts/tighten.py --workdir <dossier>
    
    Écrit <dossier>/.edit/tighten/REPORT.md, report.json et plan.json.
  3. Lisez le rapport avec l'utilisateur. Affichez la variation de durée, le nombre de pauses raccourcies et chaque drapeau. Les drapeaux marquent les coupes que le script n'a pas pu corriger (un mot commençant avant le point d'entrée avec d'autres paroles juste avant), donc quelqu'un doit les vérifier à l'oreille, ou choisir une prise différente.
  4. Protégez les pauses intentionnelles. Le silence qui est du jeu (un regard, une pause avant une chute, taper sur un clavier) ne doit pas être coupé. Demandez à l'utilisateur, puis relancez avec --skip <nom du clip ou image de début de la timeline> ....
  5. Appliquer.
    python3 scripts/tighten.py --workdir <dossier> --skip ... --apply
    
    Construit <base>_vNN_tighten, archive la version précédente, sauvegarde le projet. Chaque drapeau devient un problème dans EDIT_CHECKLIST.md, localisé par nom de clip et timecode dans la nouvelle timeline. Informez l'utilisateur du nom de la nouvelle timeline et des identifiants des problèmes.

Ce qu'il fait

Par défautOption
Air avant le premier mot0,22 s--pre
Air après le dernier mot0,38 s--post
Le bord peut s'étendre dans le silence de la même prise (récupère les mots coupés)jusqu'à 0,5 s--max-extend
Ne jamais s'approcher à moins de … d'un autre son (souffle, marmonnement, prise suivante)0,08 s--guard
Pauses à l'intérieur d'un clip plus longues que …0,75 s--pause-max
… sont raccourcies à0,3 s--pause-keep
Ne jamais créer un morceau plus court que0,5 s--min-piece
Corriger uniquement les bords, garder toutes les pausesdésactivé--no-pauses
Pistes audio qui ne sont pas des dialogues (musique)aucune--ignore-audio-tracks 3 4
  • Détection de la parole est basée sur l'énergie (resolve-bridge/scripts/rvs_audio.py) : les seuils proviennent du fichier source entier, les mots sont trouvés avec un seuil fort et leurs bords s'étendent à travers les terminaisons douces et les souffles attachés. Elle convient aux enregistrements avec micro rapproché. Dans les environnements bruyants, vérifiez les drapeaux plus attentivement.
  • Chaque pause raccourcie devient un jump cut (le clip est divisé). Exécutez video-framing ensuite pour les masquer avec des punch-ins, ou les couvrir avec du b-roll.
  • Cascade : les clips ultérieurs avancent. Les éléments vidéo uniquement (b-roll, overlays) sont remappés sur la nouvelle synchronisation et raccourcis là où leur section est devenue plus courte. Le b-roll qui se retrouverait en dessous de 0,5 s est supprimé et listé.
  • Mode : il s'agit d'une étape structurelle, donc elle utilise la construction de resolve-bridge. Les titres et générateurs sur la timeline actuelle ne sont pas conservés (le pont avertit). Exécutez tighten avant d'ajouter des graphiques.

Pas encore traité

  • Dialogues qui se chevauchent (coupes J/L déjà dans la timeline) : ces clips sont laissés tels quels et signalés.
  • Les mots de remplissage (« euh », « tu vois ») nécessitent une transcription ; prévu avec la transcription dans une compétence ultérieure.

Skills associés