Communitygithub.com

zroeschen/Video-Production-Factory

Agent 1 de la chaîne de montage vidéo. Supprime les silences et les blancs d'un enregistrement en plan fixe. Utilisez-le pour couper les silences, réduire les pauses, retirer les blancs ou resserrer le rythme d'une vidéo brute, à partir d'une transcription mot à mot. Produit une liste de montage (EDL), une transcription retimée pour les agents en aval et, optionnellement, la vidéo coupée via ffmpeg. Ne coupe PAS les erreurs, répétitions ou faux départs – cela est du ressort de l'agent de coupure des erreurs.

Qu'est-ce que Video-Production-Factory ?

Cette compétence représente le premier agent d'un pipeline de montage vidéo automatisé. Elle prend en entrée un enregistrement vidéo brut ainsi que sa transcription mot à mot, et supprime uniquement les silences : les blancs avant le premier mot et après le dernier mot, ainsi que les pauses inter-mots supérieures à un seuil configurable. Les pauses sont réduites à une durée naturelle de respiration, et jamais coupées à zéro. Le contenu parlé (faux départs, reprises, bégaiements) reste intact, ce qui est la responsabilité d'un agent suivant. L'agent produit une liste de décision de montage (EDL), une transcription retimée sur la timeline éditée, et peut générer la vidéo coupée via ffmpeg. Il est déterministe et piloté par la transcription, garantissant que les sorties (fichiers JSON) s'enchaînent proprement avec les agents en aval et le validateur de synchronisation. Les paramètres clés comme le seuil de silence (`--gap`), les marges de début et fin sont réglables, ce qui permet d'adapter la coupe au style de contenu (par exemple, une conférence YouTube avec `--gap 0.55` supprime généralement 15-20 % du silence).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/cut-silences

Demander à votre IA préférée

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

Documentation

Couper les Silences (Agent 1 du Pipeline)

Première étape du montage automatisé. Prend un enregistrement brut + sa transcription mot à mot et supprime uniquement les silences : blancs avant le premier mot et après le dernier mot, ainsi que les pauses inter-mots plus longues qu'un seuil (réduites à une respiration naturelle, jamais un silence total). Elle laisse les paroles intactes — les faux départs, reprises et bégaiements sont du ressort de l'agent couper les erreurs (Agent 2).

Cet agent est déterministe et piloté par la transcription, de sorte que sa sortie (*.silence-transcript.json) s'enchaîne proprement avec les agents suivants et le validateur de synchronisation.

Quand l'utiliser

  • "couper les silences", "réduire les pauses", "retirer les blancs", "resserrer le rythme"
  • Comme première étape du flux de montage principal, juste après la transcription.

Prérequis

Un fichier JSON de transcription mot à mot. Soit au format ElevenLabs Scribe ({ words: [{ text, start, end, type }], audio_duration_secs }) soit un format générique { words: [{ text, start, end }] }. Générez-en un avec le transcripteur de l'espace de travail :

node scripts/transcribe-elevenlabs.mjs path/to/raw.mp4    # -> path/to/raw.json

Utilisation

# 1) Planifier uniquement — calculer la coupe, écrire l'EDL + la transcription retimée (aucune vidéo touchée)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --out-dir video-projects/<slug>/assets

# 2) Avec une vidéo — écrire également la commande ffmpeg (ne rend toujours pas)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --out-dir video-projects/<slug>/assets

# 3) Rendre la vidéo coupée (ffmpeg local, réencodage, audio/vidéo synchro)
#    ajouter --apply pour exécuter ffmpeg
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --apply \
  --output video-projects/<slug>/assets/edited-silenced.mp4

Options

OptionDéfautSignification
--video <chemin>—Vidéo source ; active la commande ffmpeg / le rendu
--out-dir <répertoire>à côté de la transcriptionRépertoire de sortie
--output <chemin><nom-video>.silenced.mp4Chemin de la vidéo coupée
--gap <s>0.55Pause minimale considérée comme silence coupable
--head-pad <s>0.22Silence conservé avant le premier mot
--tail-pad <s>0.34Silence conservé après le dernier mot
--applydésactivéExécute ffmpeg pour produire la coupe

Comment il décide (règles de silence)

  • Les pauses inférieures à --gap (0.55s) sont laissées intactes — rythme naturel de la parole.
  • Pour une pause réduite, une respiration naturelle est conservée, ajustée selon le contexte : 0.24s pour les longues pauses (≥2s), 0.20s après un signe de fin de phrase (. ! ?), 0.14s sinon. La respiration conservée est légèrement décalée vers la fin de la phrase précédente.
  • Les blancs de début/fin sont réduits à --head-pad / --tail-pad.
  • Les plages à supprimer sont fusionnées ; les plages à conserver sont le complément. La coupe est rendue avec un graphe de filtre ffmpeg trim/atrim + concat (écrit dans un script *.silence-filter.txt et passé via -filter_complex), de sorte que la vidéo et l'audio restent synchronisés.

Sorties (écrites dans --out-dir)

FichierObjectif
<stem>.silence-edl.jsonPlages à conserver/supprimer, durées, paramètres — la liste de montage
<stem>.silence-transcript.jsonMots retimés sur la timeline éditée (alimente Agent 2 + beats)
<stem>.silence-decisions.mdRésumé lisible + plus grandes pauses supprimées
<stem>.silence-filter.txtLe graphe de filtre ffmpeg (uniquement avec --video)
<video-stem>.silenced.mp4La vidéo coupée (uniquement avec --apply)

Le résumé JSON affiché sur stdout inclut removed, removedPct, les comptes de plages et les chemins de sortie — utile pour que le flux principal puisse journaliser et enchaîner.

Notes de réglage

  • Pour une vidéo YouTube en plan fixe, la valeur par défaut (--gap 0.55) supprime environ 15-20% du silence d'une prise brute typique. Diminuez --gap pour une coupe plus nerveuse et rapide ; augmentez-le pour préserver davantage de respiration naturelle.
  • Si une coupe semble trop agressive en fin de phrase, augmentez la respiration de fin de phrase, ou augmentez --gap.

Passage à l'agent suivant

Passez <stem>.silence-transcript.json (et la silenced.mp4 si rendue) à l'agent couper les erreurs. Comme les horodatages sont déjà sur la timeline éditée, le calage des beats en aval et scripts/validate-beat-sync.mjs fonctionnent sans ajustement supplémentaire.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

zroeschen/Video-Production-Factory

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

zroeschen/Video-Production-Factory

Edit a raw talking-head video through transcription, silence trimming, mistake review, visual storytelling, motion graphics, and verified HyperFrames rendering. Use for a complete edit; route a single requested operation directly to its specialist skill.

zroeschen/Video-Production-Factory

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

zroeschen/Video-Production-Factory

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

Skills associés