Communitygithub.com

Clip Picker

Extrayez les meilleurs extraits de longues vidéos non structurées. Utilisez-le lorsque l'utilisateur fournit une ou plusieurs vidéos longues et souhaite en obtenir les moments forts / meilleurs instants.

Qu'est-ce que Clip Picker ?

Clip Picker est un outil qui contourne la limitation de Claude à lire des vidéos en extrayant des images clés sous forme de planches contact horodatées que Claude peut analyser. Le processus comprend plusieurs étapes : d'abord, la confirmation d'une grille d'évaluation (rubric) avec l'utilisateur pour définir ce qui rend un clip intéressant. Ensuite, l'outil échantillonne la vidéo toutes les quelques secondes pour créer des planches contact, que Claude examine visuellement pour identifier les fenêtres candidates. Chaque candidate est notée sur la netteté et classée selon des signaux spéciaux comme la vitesse, l'interaction, l'action, la lumière ou la nouveauté. Enfin, une planche de sélection classée est présentée à l'utilisateur, qui peut choisir les extraits à découper. Le système fonctionne avec ffmpeg, numpy et pillow, et supporte les formats HDR/HLG avec mappage de tons automatique.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kaustubhupadhyaya/editor-pack/tree/HEAD/skills/clip-picker

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 Clip Picker ?

Trouvez les meilleurs moments dans les longues séquences. Toute la méthode existe pour contourner une limite dure :

Claude ne peut pas regarder de vidéo. Il lit des images fixes. Donc « choisir de bons clips » revient à : échantillonner la séquence en images assez densément pour voir ce qui se passe, les juger selon une grille, confirmer en pleine résolution, puis découper. Le rognage est trivial et quasi instantané ; voir 30+ minutes de séquences est le vrai coût — budgétez-le et ne vous en excusez pas.

Les scripts se trouvent dans scripts/ (survey.py, score.py, board.py). Ils gèrent les parties mécaniques ; Claude fait le jugement visuel entre les deux. Dépendances : ffmpeg/ffprobe dans le PATH, numpy, pillow (tous installés sur cette machine — voir [[editor-pack-video-editing-stack]]).

Pipeline

Choisissez un WORKDIR dans le bloc-notes (par ex. .../scratchpad/clippick). Ensuite :

1. Confirmez la grille. Si la séquence n'est pas une vue POV moto/cyclisme (la valeur par défaut intégrée ci-dessous), demandez à l'utilisateur 1 à 2 questions : ce qui rend un clip bon pour lui, la durée souhaitée des clips, le format de sortie (16:9 vs 9:16), et le niveau de sélectivité (quelques pépites vs tout). Une bonne phrase de critères change chaque sélection — obtenez-la avant l'échantillonnage.

2. Échantillonnez — transformez les séquences en planches contact lisibles.

python scripts/survey.py "C:\chemin\vers\videos_ou_dossier" --out WORKDIR --interval 4

Une vignette toutes les 4s, disposée en 6x6, avec le timecode source incrusté sur chaque vignette. Pour des séquences rapides/remplies d'action, utilisez --interval 2-3 ; pour des séquences lentes, --interval 6-8. Cela imprime les spécifications de chaque clip et signale les sources HDR (HLG/PQ). Pour des clips HEVC longs/nombreux, cela est lent (le décodage logiciel est le goulot d'étranglement) — exécutez-le en arrière-plan et consultez les planches dès qu'elles arrivent.

3. Examinez visuellement chaque planche. Lisez chaque WORKDIR/montages/*_sheet_*.jpg. Identifiez les fenêtres candidates par timecode selon la grille. Un événement fugace entre deux échantillons peut être manqué — si une planche suggère quelque chose (un éclair dans un coin, une silhouette), notez-le et échantillonnez cette plage plus densément plus tard.

4. Créez WORKDIR/candidates.json — un objet par fenêtre candidate (schéma ci-dessous). Gardez chaque fenêtre entre 15 et 30s (ou selon la durée demandée par l'utilisateur). Attribuez à chacune un code de sélection (P01, P02, ... dans votre ordre de classement), un titre d'une ligne (pourquoi il est retenu), et des tags.

5. Confirmez en pleine résolution + netteté.

python scripts/score.py --work WORKDIR

Extrait une image héroïque en pleine résolution par candidat, calcule le score de variance du Laplacien (une métrique de mise au point), et les dispose en mosaïque dans review.jpg. Lisez-la. Éliminez ceux qui sont vraiment flous/peu intéressants ; ajustez start/end pour capturer le meilleur moment. Faible netteté = traînée de mouvement sur toute l'image — souhaitée pour les plans de flux, pas un rejet. Réexécutez après modifications.

6. Présentez une planche de sélection classée (l'utilisateur choisit).

python scripts/board.py --work WORKDIR --mode thumbs     # -> WORKDIR/pickboard.html (publiable sous forme d'Artifact)

Ou, quand ils veulent regarder avant de choisir, une planche jouable qui découpe aussi les clips :

python scripts/board.py --work WORKDIR --mode play --out "%USERPROFILE%\Downloads\clips"

Le mode play découpe chaque candidat en H.264 compatible navigateur (mappage de tons HDR->SDR automatique pour HLG/PQ), écrit review_player.html avec des lecteurs <video> natifs à côté des mp4 (ouvrir dans Chrome/Edge pour la lecture locale). La sortie par défaut est 16:9, rognage uniquement, sans recadrage.

7. Découpez / finalisez les gagnants choisis par l'utilisateur. Pour des choix précis au pixel près ou de format, passez par la compétence [[editor-pack-video-editing-stack]] video-tool-router (copie de flux vs ré-encodage, la protection HLG, Resolve pour l'étalonnage/stabilisation/upscale). Proposez des suivis : renforcement du flou de mouvement sur les clips de flux, verticaux 9:16, couleur, sous-titres, montage.

La grille de sélection (c'est le vrai « comment ça sélectionne »)

Un clip vaut la peine d'être conservé lorsqu'il franchit les portes de qualité ET porte au moins un signal « spécial ».

Portes de qualité (toutes doivent être respectées)

  • Sous-ensemble, 15-30s de la source (par défaut ; respectez la durée demandée par l'utilisateur).
  • Sujet clair et stable — le sujet principal (moto/guidon, visage, joueur) est net et cadré de manière stable. Rejetez le flou global dû aux bosses/instabilité, au flou de mise au point, aux zones surexposées ou trop sombres, à l'objectif obstrué.
  • Quelque chose se passe — mouvement ou changement. Rejetez l'inactivité/le stationnement/l'attente et le rien monotone.

Signaux « spéciaux » (besoin d'au moins 1 ; plus il y en a et plus ils sont forts, plus le classement est élevé)

  • Vitesse / mouvement — les alentours filent avec du flou de mouvement tandis que le sujet reste net. C'est un point positif et une matière première idéale pour une édition avec renforcement du flou de mouvement.
  • Interaction — autres personnes/cyclistes/véhicules/animaux ; dépassements, conduite en groupe, quelqu'un qui réagit.
  • Action / dynamique — virages & inclinaison, changements de direction, changement d'altitude, une figure, un quasi-accident.
  • Lumière & environnement — lever/coucher de soleil, heure dorée, nuages dramatiques, brume/brouillard, tunnels, une vue panoramique ou une révélation, de l'eau. La lumière du moment de la journée est le plus grand levier « cinématographique » — signalez-la toujours.
  • Nouveauté — un changement de scène/terrain, une entrée/sortie, tout ce qui est visuellement nouveau par rapport aux minutes environnantes.

Concilier « net, pas flou » avec « le flou de mouvement est bon »

Gardez le sujet net et le moment intentionnel ; traitez le flou de vitesse périphérique comme une caractéristique. Rejetez uniquement le flou global (image entière maculée par une bosse). Une caméra montée sur le torse ou le guidon garde la moto nette tandis que le monde défile — c'est l'effet recherché, pas un défaut.

Classement

Classez par : force et rareté du signal spécial, puis netteté, puis variété (ne classez pas cinq fenêtres quasi identiques dans les premières places — répartissez les ambiances : une vue panoramique, un flux flou, un dépassement, une atmosphère). Soyez honnête quand un critère est simplement absent (par ex. pas de lever/coucher de soleil nulle part) — dites-le plutôt que de forcer une faible sélection.

Profil de conduite POV (valeur par défaut intégrée pour les séquences de cet utilisateur)

Caméra casque ou guidon moto/cyclisme. Concrètement : gardez les balayages de flou de vitesse, les virages/inclinaison, les dépassements et la conduite en groupe, la vie au bord de la route, la brume/brouillard et les vues de ghats, les tunnels/allées d'arbres. Sautez : les arrêts, les clignotants, le stationnement, le téléphone, les longues lignes droites sans rien. (C'est exactement la grille qui a produit l'ensemble de clips que l'utilisateur a aimé.)

Schéma de candidates.json

[
  {"pick":"P01","clip":"clip_6318","file":"%USERPROFILE%/Downloads/clip_6318.mov",
   "start":96,"end":120,"hero":104,"title":"Tunnel d'arbres, cyclistes devant, fort flou de vitesse",
   "tags":["speed-blur","scenery"]}
]
  • start/end/hero sont en secondes. hero est un instant représentatif à l'intérieur de la fenêtre (utilisé pour la vignette et le score de netteté) — choisissez le moment le plus caractéristique, pas nécessairement le point médian.
  • Les codes pick servent également d'identifiants pour le choix de l'utilisateur (« coupe P01, P03, P10 »).
  • tags (libres, mais ceux-ci reçoivent des étiquettes jolies) : speed-blur, corner, vista, interaction, overtake, atmosphere, scenery, action, light, wildlife.

Efficacité & pièges

  • Le décodage HEVC/HDR est le goulot d'étranglement, pas le montage. Un échantillonnage d'environ 30 min de HEVC prend plusieurs minutes de décodage. Échantillonnez seulement aussi densément que la séquence le justifie ; mettez l'échantillonnage en arrière-plan ainsi que l'encodage du mode play.
  • Les séquences HLG/HDR deviennent grises sur une exportation naïve en SDR H.264 — board.py play détecte et mappe les tons automatiquement, mais toute coupe manuelle de ces séquences doit aussi le faire. Voir la protection HLG dans video-tool-router.
  • Allez plus vite sur demande : si l'utilisateur nomme l'ambiance dès le départ (« juste les virages de montagne et le flou des tunnels »), échantillonnez à un intervalle plus grossier, présélectionnez seulement ceux-là, et encodez seulement la poignée qu'ils souhaitent — cela réduit un passage de 20 minutes à quelques minutes.
  • N'inventez pas. Ne prétendez que ce qu'une image échantillonnée montre réellement. En cas de doute sur l'existence d'un événement de 1 à 2 secondes, échantillonnez cette plage plus densément avant de l'affirmer.
  • Le chemin de police sous Windows est codé en dur dans les scripts (C:/Windows/Fonts/...) ; ajustez sur d'autres OS.

Individual skills in this repo

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

Skills associés