Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ZJU-REAL/Easelnpx agentmods add skills/zju-real/easel/video-reframeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/video-reframe)<a href="https://agentmods.dev/skills/zju-real/easel/video-reframe"><img src="https://agentmods.dev/badge/skills/zju-real/easel/video-reframe/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/video-reframe"><img src="https://agentmods.dev/badge/skills/zju-real/easel/video-reframe.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00105 | $0.01122 |
| Opus 5 | $0.00053 | $0.00561 |
| Sonnet 5 | $0.00021 | $0.00224 |
| Haiku 4.5 | $0.00011 | $0.00112 |
Grade A, and why
video-reframe scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
视频画幅智能转换(竖横互转)
把视频转到目标宽高比,三种策略可选。全部走
skills/shared/scripts/reframe.py, 不要手拼 crop/overlay 滤镜——脚本已算好裁切尺寸、焦点边界、偶数对齐、音轨保留。
| 模式 | 效果 | 适用 |
|---|---|---|
blur(默认) |
原画完整居中 + 放大模糊的自身作背景,无黑边 | 横转竖最常用,画面不丢内容 |
crop |
按焦点位置裁到目标比例,无黑边但裁边缘 | 主体明确、想铺满屏幕 |
smart |
cv2 检测人脸 → 以人脸中位位置为焦点裁切 | 口播/人物视频横转竖 |
需要逐镜头动态追踪人脸做 pan 见 clipify;只想加黑边/居中裁见 video-editing
aspect。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| 视频文件 | 是 | 要转换的视频(没给就问) |
| 目标比例 | 是 | 9:16 / 16:9 / 1:1 / 4:5 / 3:4 / 4:3 / 21:9 |
| 模式 | 否 | blur(默认)/ crop / smart |
| 焦点 | 否 | crop 模式下主体不在中间时用 --focus-x(0 左 1 右) |
输出(outputs/主题名/)
- 转换后视频(
*-<比例>.mp4) - 报告:源→目标尺寸、比例、所用策略、人脸焦点(smart 时)
执行步骤
脚本路径(相对项目根):skills/shared/scripts/reframe.py(reframe -h 看参数)。
# 横版转竖版,模糊背景填充(最稳,画面不丢)
python skills/shared/scripts/reframe.py reframe -i <视频> \
-o outputs/主题名/<名>-9x16.mp4 --ratio 9:16 --mode blur
# 焦点裁切,主体偏右时把焦点拉到 0.65
python skills/shared/scripts/reframe.py reframe -i <视频> \
-o outputs/主题名/<名>-9x16.mp4 --ratio 9:16 --mode crop --focus-x 0.65
# 人脸感知裁切(口播/人物视频)
python skills/shared/scripts/reframe.py reframe -i <视频> \
-o outputs/主题名/<名>-9x16.mp4 --ratio 9:16 --mode smart
--size WxH 可强制最终分辨率(默认按比例与源分辨率推算,如 1280x720 → 720x1280)。
Profile 感知
- 有 Profile:默认目标比例按
platforms.md主平台(抖音/小红书竖版 9:16,B站横版 16:9, 朋友圈/ins 方形 1:1);口播/人物类账号默认smart模式。 - 无 Profile:默认
blur模式 + 询问目标平台/比例。
规则
- 拿不准选哪种:横转竖优先
blur(不丢画面);主体明确且想铺满用crop;人物口播用smart。 smart未检出人脸时自动退化为居中裁切,并在报告里说明。- 音轨自动保留(copy),不重编码音频。
- 输出分辨率强制偶数对齐(H.264 要求),无需手动处理。
- 产物统一进
outputs/主题名/。
参考来源
模糊背景填充(blurred bars)是竖屏适配的主流做法;人脸感知裁切参考 AI-Youtube-Shorts-Generator 思路,用 OpenCV Haar 级联检测人脸中位位置定焦点。把裁切几何与边界钳制封装成确定性脚本。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 71 lines · 105 tokens per session scan A 1d25307796b9
video-reframe is a skill published in the GitHub repository ZJU-REAL/Easel (841 stars, last pushed yesterday), licensed Apache-2.0. It adds 105 tokens to every session and 1,122 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
jacky-motion2-0-srt
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
video-podcast-maker
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video…
video-podcast-maker-lite
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when the user wants a quick narrated video from a topic without the full video-podcast-maker machinery (no extra skills, no thumbnails/shorts/publish matrix). Do NOT…
video-podcast-maker-nano
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints…