wjs-reframing-video

Solid

Use when the user wants to convert a video between horizontal and vertical orientations while preserving the inverted aspect ratio (16:9 ↔ 9:16, 4:3 ↔ 3:4, 21:9 ↔ 9:21). The skill crops a narrow band from the source and tracks the active speaker — the person whose mouth is moving — via MediaPipe face landmarks and mouth-aspect-ratio variance, so the talker stays in frame even when other people are visible. Triggers — "横转竖", "竖转横", "做成竖屏发抖音/视频号/小红书", "16:9 to 9:16", "make this vertical for Reels / TikTok / YouTube Shorts", "crop to portrait", "convert to landscape".

AI & Automation 131 stars 22 forks Updated 1 months ago MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
71
Recency 20%
75
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# wjs-reframing-video Convert a video's orientation by **cropping** a narrow band from the source — not by physically rotating it. The crop window follows the **active speaker** (the face whose mouth is *moving*), not just the largest or most-confident face. A `.crop.json` sidecar records the crop plan, the per-segment speaker decisions, and the parameters used. The original input is never modified. ## When to use - Repurposing a 16:9 podcast / interview / talk for vertical short-video platforms (WeChat Channels 视频号, Douyin 抖音, Xiaohongshu 小红书, YouTube Shorts, TikTok, Reels). - Repurposing a 9:16 phone recording for horizontal players (YouTube long-form, blog embeds). - Repurposing 4:3 archive footage for 3:4 mobile, or vice versa. The output aspect is the source aspect with width and height swapped — 16:9 → 9:16, not "letterboxed 16:9 in a 9:16 frame". ## When NOT to use - **Multi-person Q&A** where each face needs its own crop — this skill picks one crop track per video. For per-speaker split renders, use **wjs-editing-multicam** instead. - **Animated content / B-roll with no faces** — falls back to center crop, usually wrong for the intent. - **Heavy camera motion in the source** (handheld pan/zoom) — the face tracker amplifies camera shake. Stabilize first. - **Source already at target aspect** — no work to do. ## What this skill IS — and IS NOT | Is | Is not | |---|---| | **Visual active-speaker detection** via MAR (mouth-aspect-ratio) variance | Audio-visual fus...

Details

Author
jianshuo
Repository
jianshuo/claude-skills
Created
4 months ago
Last Updated
1 months ago
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

autocrop-vertical

Subject-aware reframing of horizontal video to vertical (9:16 / 4:5 / 1:1) using YOLOv8 person detection. Per-scene decision between TRACK (crop tightly on subject) and LETTERBOX (scale + black bars) so people stay centered through cuts and motion. Trigger when user says "reframe to vertical", "16:9 to 9:16", "convert landscape to portrait", "shorts crop", "smart crop for TikTok", "vertical YouTube short from horizontal", "auto-crop interview clip", "reframe podcast video", "make this video vertical", or any equivalent intent. Use as a STAGE inside viral-clipper / book-video / channel-breakdown pipelines whenever the source has more than one person on screen or the subject moves around the frame.

0 Updated 1 months ago
bertbertov
Code & Development Listed

face-track-reframe

Reframe/crop a video to a different aspect ratio while keeping the speaker's face centered and never cut off, using dynamic face tracking. The crop window follows the face across the whole clip (handles a person who moves within the frame). TRIGGER on Hebrew: 'תחתוך סרטון', 'התאם יחס וידאו', 'תהפוך סרטון לעומד', 'סרטון אופקי לעומד', 'שהפנים לא ייחתכו', 'מעקב פנים', 'להתאים את הסרטון ליחס של השאר', 'crop ליחס עומד'. English: 'reframe video', 'crop video to portrait', 'horizontal to vertical', 'make this 9:16', 'keep the face in frame', 'face tracking crop', 'fit aspect ratio'. Use when a video's aspect ratio must change (e.g. landscape -> 9:16 portrait) without losing the face. NOT for editing montages (event-recap-video), NOT for generating video (video-production).

1 Updated 1 weeks ago
hiyabh
AI & Automation Solid

wjs-segmenting-video

Use when the user has a long-form video (interview / lecture / podcast / conversation) and a transcript SRT, and wants to extract 3–6 stand-alone topical short clips from it. This skill ONLY cuts and crops — it produces raw clips + per-clip SRTs as a hand-off package for downstream post-production (`/wjs-overlaying-video`). Triggers — "切成几段", "分主题", "拆成短视频", "切片", "topic segments", "split into clips".

131 Updated 1 months ago
jianshuo