Communitygithub.com

WEBGRS/reframe

Recadrer des séquences paysage en format vertical (9:16), carré ou 4:5 – chaque plan recadré sur l'essentiel (l'intervenant, ce qui bouge, le sujet du plan), le cadre suivant un sujet qui traverse l'image, sans ré-encodage de la vidéo. Mesure chaque plan d'abord, dessine chaque fenêtre sur les images pour vérification, et contrôle le film.html final avec les mêmes règles.

Qu'est-ce que reframe ?

Reframe est un outil spécialisé pour les monteurs et réalisateurs qui doivent convertir des séquences tournées en paysage (16:9) en formats verticaux (9:16), carrés ou 4:5, sans perte de qualité et sans ré-encodage. L'outil analyse automatiquement chaque plan en mesurant le mouvement (en soustrayant les déplacements de caméra), les détails, le contraste des couleurs et les tons de peau dix fois par seconde. Il identifie ensuite la zone la plus pertinente à conserver – qu'il s'agisse d'un intervenant, d'un objet en mouvement ou du sujet principal – et génère une fenêtre de recadrage qui peut être fixe, fractionnée (plusieurs clips du même fichier avec des positions différentes) ou correspondre au format original. L'outil produit des feuilles de contrôle visuelles où chaque fenêtre est superposée aux images, avec les parties hors cadre assombries, et un rapport détaillé listant les non-conformités. Il supporte également les suivis fluides via des animations CSS `@keyframes` et permet une vérification finale du fichier film.html selon les mêmes règles strictes (sujet entier visible, cadrage stable, pas de dérive ni de tremblement). Reframe est conçu pour être utilisé avec un interpréteur Node.js et s'intègre dans un flux de travail manuel où le monteur valide chaque décision de cadrage.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/WEBGRS/openfilm-reframe/tree/HEAD/skills/reframe

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 reframe ?

Convertir une vidéo paysage en film vertical ou carré qui semble avoir été tournée pour ce format : à chaque instant, le spectateur voit le sujet du plan, jamais le mur à côté, jamais un demi-visage.

Ce qui le définit

Chaque plan est cadré sur son propre contenu. Un seul recadrage centré pour toute la vidéo n'est pas cela, même s'il est propre, et ce n'est pas non plus l'ensemble du cadre paysage réduit entre des barres floues.

Ce qui doit être vérifié

  • Mesuré, puis regardé. Chaque fenêtre provient de la mesure et de vos propres yeux sur ses images. La mesure peut être erronée ; ce sont les images qui décident.
  • Le sujet reste entier. Les visages, l'intervenant, ce qui bouge et les mots importants restent dans le cadre avec de l'espace autour. Quand deux choses sont importantes et ne tiennent pas toutes les deux, le cadre va vers celle qui compte à ce moment (qui parle, ce qui bouge, ce que nomme la narration), et l'on entend ce qui a été laissé de côté.
  • Cadrage calme. Un sujet immobile a une seule fenêtre fixe pour le plan. La fenêtre ne bouge que lorsque le sujet bouge : un repositionnement net au moins une seconde après le précédent, ou un suivi fluide ; jamais un recadrage qui dérive ou tremble.
  • Leur fichier tel quel. Le même fichier rogné avec #t= et recadré par le CSS propre du clip (object-fit: cover avec un object-position, ou une boîte de la forme du fichier déplacée par translate) ; jamais ré-encodé, recadré dans un nouveau fichier, ou modifié en vitesse. Les clips d'un même plan se rejoignent image par image, de sorte que le son du plan se déroule sans interruption.

Ce que vous avez

node <dossier de cette compétence>/scripts/reframe.mjs <video> --aspect 9:16 --src assets/<fichier> (dans le dossier du film) écrit reframe/<nom>.json, une page de révision et reframe/<nom>-sheet.jpg. Il détecte les plans, pèse le mouvement (le déplacement propre de la caméra étant soustrait), les détails, le contraste des couleurs et les tons de peau dix fois par seconde, et attribue à chaque plan une fenêtre fixed (un seul clip), split (plusieurs clips du même fichier, chacun d'au moins une seconde, chacun avec sa propre position) ou whole (le format original du fichier), avec des lignes <video> prêtes à leurs secondes sources respectives.

Lisez chaque feuille qu'il imprime (look: … (Read it)). Chaque image est un instant (le début de chaque clip, son moment le plus faible marqué WEAKEST, une toutes les 1,5 s) : le cadre avec la fenêtre délimitée et l'extérieur assombri, une règle en % du cadre, et le recadrage tel que le film le montre. Là où le sujet est en dehors de la fenêtre ou coupé par elle, définissez vous-même object-position ; la sortie donne la formule. held indique à quelle fréquence la fenêtre correspond à la mesure, pas la preuve que le sujet s'y trouve. Les lignes marquées ! indiquent les endroits à examiner le plus attentivement.

Un suivi fluide (--follow): @keyframes follow-N de translate pour le trajet d'un plan fractionné et le seul clip <video> qui les porte, également dans reframe/<nom>-follow.css. Mettez les keyframes dans la balise <style> de film.html. L'animation s'exécute sur le temps propre du clip à partir de son at : un clip rogné pour commencer a secondes après le début du plan prend animation-delay: -a s. Le clip conserve son propre son.

Rogner un plan ne conserve que les clips dans le nouveau #t=, les deux extérieurs étant rognés jusqu'à lui, positions inchangées.

Le film tel qu'écrit : node <dossier de cette compétence>/scripts/reframe.mjs check dans le dossier du film lit les recadrages propres de film.html et imprime chaque fenêtre, combien de temps elle bouge, chaque repositionnement, les instants où la fenêtre conserve le moins de ce que la mesure a trouvé, et les dessine dans une feuille. Il liste avec ! ce qui enfreint les règles ci-dessus. Corrigez chaque ! et relancez-le.

La forme du film est sa fenêtre d'affichage (<meta name="viewport" content="width=1080, height=1920">). npx openfilm look montre le film rogné.

Avec la personne

Ce qu'ils demandent vient en premier : le format (9:16 quand ils disent vertical), les plans qui doivent y être, tout ce qui doit rester dans le cadre (un produit, un logo, un second intervenant). Demandez sans retarder le travail. Quand c'est fait, dites par plan : held, chaque ligne !, chaque fenêtre que vous avez déplacée et pourquoi, et ce que le recadrage a laissé de côté.

Skills associés