reframe
/reframe
Kadruje poziome nagranie do pionu, kwadratu lub 4:5, prowadząc kadr za ważnym elementem bez ponownego kodowania.
- Autor
- WEBGRS ↗
- Repozytorium
- openfilm-reframe ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 07.11.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 4
- Skrypty
- 1
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 07.11.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
- 1 skrypt w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.
Skrypty: scripts/reframe.mjs
Co robi i kiedy
Kadruje poziome nagranie do pionu, kwadratu lub 4:5, prowadząc kadr za ważnym elementem bez ponownego kodowania.
Oryginalny opis (EN)
Re-frame landscape footage for a vertical (9:16), square or 4:5 film - every shot cropped onto what matters in it (the speaker, the thing that moves, what the shot is about), the crop following a subject that crosses the frame, the footage never re-encoded. Measures each shot first, draws every window on the frames for you to check, and checks the finished film.html against the same rules. Use for a vertical version of a landscape video, Shorts, Reels, TikTok or 抖音 cuts from horizontal footage, a square cut for a feed, or when the person asks to reframe or auto-crop (横屏转竖屏, 竖屏版, 重构图, 自动裁切, 竖版剪
Jak działa
- What defines it
- What has to be true
- What you have
- With the person
Podgląd SKILL.md
--- name: reframe description: Re-frame landscape footage for a vertical (9:16), square or 4:5 film - every shot cropped onto what matters in it (the speaker, the thing that moves, what the shot is about), the crop following a subject that crosses the frame, the footage never re-encoded. Measures each shot first, draws every window on the frames for you to check, and checks the finished film.html against the same rules. Use for a vertical version of a landscape video, Shorts, Reels, TikTok or 抖音 cuts from horizontal footage, a square cut for a feed, or when the person asks to reframe or auto-crop (横屏转竖屏, 竖屏版, 重构图, 自动裁切, 竖版剪辑, reframe, auto reframe, 9:16). --- # Reframe The person's landscape footage as a vertical or square film that looks shot for that shape: at every moment the viewer sees what the shot is about, never the wall beside it, never half a face. ## What defines it Each shot is framed on its own content. One centre crop for the whole video is not this, however tidy, and neither is the whole landscape frame shrunk between blurred bars. ## What has to be true - **Measured, then looked at.** Every window comes from the measure and from your own eyes on its pictures. The measure can be wrong; the pictures decide. - **The subject stays whole.** Faces, the speaker, the moving thing and words that matter stay inside the frame with room around them. When two things matter and both do not fit, the frame goes to the one the moment is about (who speaks, what moves, what the narration names), and the person hears what was left out. - **Calm framing.** A still subject gets one still window for the shot. The window moves only when the subject does: a hard reposition at least a second after the last one, or a smooth follow; never a crop that drifts or jitters. - **Their footage as it is.** The same file trimmed with `#t=` and cropped by the clip's own CSS (`object-fit: cover` with an `object-position`, or a box of the footage's shape moved by `translate`); never re-encoded, cropped into a new file, or changed in speed. Clips of one shot meet frame to frame, so the shot's sound runs on unbroken. ## What you have `node <this skill's folder>/scripts/reframe.mjs <video> --aspect 9:16 --src assets/<file>` (in the film's folder) writes `reframe/<name>.json`, a review page and `reframe/<name>-sheet.jpg`. It finds the shots, weighs motion (the camera's own move taken out), detail, colour contrast and skin tones ten times a second, and gives each shot a `fixed` window (one clip), a `split` (several clips of the same file, each at least a second, each with its own position) or `whole` (the footage's own shape), with ready `<video>` lines at their own source seconds. **Read every sheet it prints (`look: … (Read it)`).** Each picture is a moment (each clip's start, its weakest moment marked WEAKEST, one every 1.5 s): the frame with the window outlined and the outside dimmed, a ruler in % of the frame, and the crop as the film shows it. Where the subject is outside the window or cut by it, set `object-position` yourself; the output gives the formula. `held` is how often the window agrees with the measure, not proof the subject is in it. Lines marked `!` say where to look hardest. **A smooth follow** (`--follow`): `@keyframes follow-N` of `translate` for a split shot's path and the one `<video>` clip that wears them, also in `reframe/<name>-follow.css`. Put the keyframes in film.html's `<style>`. The animation runs on the clip's own time from its `at`: a clip trimmed to start `a` seconds after the shot's start takes `animation-delay: -a s`. The clip keeps its own sound. **Trimming a shot** keeps only the clips inside the new `#t=`, the outer two cut to it, positions unchanged. **The film as written:** `node <this skill's folder>/scripts/reframe.mjs check` in the film's folder reads film.html's own crops and prints each window, how long it moves, each reposition, the moments where the window keeps least of what the measure found, and draws them in a sheet. It lists with `!` what breaks the rules above. Fix every `!` and run it again. The film's shape is its viewport (`<meta name="viewport" content="width=1080, height=1920">`). `npx openfilm look` shows the cut film. ## With the person What they ask for comes first: the shape (9:16 when they say vertical), the shots that must be in it, anything that must stay in frame (a product, a logo, a second speaker). Ask without holding up the work. When done, say per shot: `held`, every `!` line, each window you moved and why, and what the crop left out.
Pliki w paczce (4)
- SKILL.md 5 KB
- cover.jpg 54 KB
- openfilm.json 5 KB
- scripts/reframe.mjs 81 KB
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · WEBGRS/openfilm-reframe | 90 | MIT |
| ramboz/jig | 100 | MIT |
| ramboz/jig | 100 | MIT |
| ramboz/jig | 100 | MIT |
| kiyeonjeon21/reframe | 100 | MIT |
| Hendrixer/Direction-app | 82 | MIT |
| saadshahd/moo.md | 82 | MIT |
Migawka bazy z 13.11.2026 · wersja paczki 05c08dc37ac8 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 90video-social-reframe
Przekształca poziome nagrania w pionowe i kwadratowe, zachowując kadr z podmiotami. - 100footage-reframing
Przekształca własne nagrania w inny format kadru, np. poziomy na pionowy, i kadruje na właściwą osobę, sprawdzając wynik ręcznie. - 100reframe-social
Zmienia proporcje wideo poziomego na pionowe 9:16, kwadratowe 1:1 lub portretowe 4:5 do mediów społecznościowych, z kadrowaniem za ruchem. - 95video-perception
Analizuje, co pokazuje klip wideo: rodzaj ujęcia, ruch kamery, ekspozycję i tekst, a także kadruje poziome nagrania do pionu. - 90make-vertical-cut
Przekształca film poziomy w pionowy kadr 9:16 do mediów społecznościowych, komponując każdą scenę wokół akcji i dodając napisy. - 100footage-reframing
Zmienia kadr własnego materiału wideo, na przykład z poziomego na pionowy, z kamerą podążającą za osobą, i montuje klipy w rolkę skryptem reel_cut.py.