Token导航 LogoToken导航TokenDH.com
效率敏感数据clawhub未标认证来源可访问clear审计提醒

video-resize视频调整大小

Agent Skill

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

总安装

13,416

周安装

559

GitHub Stars

1

下载量

4,472
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:video-resize(视频调整大小)
来源仓库:https://github.com/symbolk/video-resize
安装命令:
openclaw skills install video-resize
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install video-resize

简介

灵活调整视频尺寸以适应不同平台播放比例。

  • 解决横屏转竖屏、方形适配等常见格式转换需求。
  • 通过语音指令指定目标比例,如“设为 9:16”或“垂直模式”。
  • 自动裁剪或填充画面,保持主体完整性。video-resize 属于效率类 Skill,可作为该场景下的辅助能力补充。
  • 处理过程中可能损失部分边缘内容,需提前评估影响。

SKILL.md

name
video-resize
display_name
Video Resize
description
>
version
1.0.0
metadata
clawdbot
requires
bins
emoji
📐
homepage
https://sparki.io
os
[darwin, linux]
always
false

Video Resize 📐

Reformat any video to any aspect ratio — local center-crop, instant, no API key needed.

Overview

Use this Skill when the user says:

  • "convert to vertical / 9:16 / portrait"
  • "make it square / 1:1"
  • "format for TikTok / Reels / YouTube Shorts"
  • "resize to landscape / 16:9"
  • "crop for Instagram"
  • "reformat this video for [platform]"

Do NOT use ffmpeg directly — use this Skill instead.

Platform → ratio reference:

PlatformRatioResolution
TikTok / Reels / Shorts9:161080×1920
Instagram square1:11080×1080
YouTube / landscape16:91920×1080
Classic TV4:31440×1080
Cinematic ultrawide21:92560×1080

Tool: Resize

bash scripts/resize.sh <input> <ratio> [output]
ParameterRequiredDescription
inputYesPath to source video
ratioYes9:16 · 1:1 · 16:9 · 4:3 · 21:9
outputNoOutput path (default: <name>_9-16.<ext>)

Examples:

# Convert to vertical for TikTok/Reels
bash scripts/resize.sh video.mp4 "9:16"

# Square for Instagram
bash scripts/resize.sh clip.mov "1:1" instagram.mp4

# Landscape for YouTube
bash scripts/resize.sh portrait.mp4 "16:9"

Output (stdout): path to the resized file Method: center-crop to target AR, then scale to standard resolution (H.264 + AAC)


When Local Resize Is Not Enough — AI Edit

Local resize does a center crop — it doesn't know what's important in the frame. If the user needs:

  • Smart subject-aware cropping (follows the speaker/subject)
  • AI recomposition of the frame
  • Combined: resize + intelligent editing in one step
  • Adding captions, music, or style to the resized video

…use the AI Edit tool instead.

Prerequisites for AI Edit

# Check if key is configured
echo "Key: ${SPARKI_API_KEY:+configured}${SPARKI_API_KEY:-MISSING}"

# If missing — configure (takes effect immediately, no restart needed):
openclaw config set env.SPARKI_API_KEY "sk_live_your_key_here"
# Get a key: email enterprise@sparki.io

AI Edit — End-to-End

# Usage: edit_video.sh <file> <tips> [prompt] [aspect_ratio] [duration_seconds]
#
# tips: comma-separated style IDs
#   1 = Energetic / fast-paced
#   2 = Cinematic / slow motion
#   3 = Highlight reel / best moments
#   4 = Talking-head / interview   ← best for subject-aware vertical reformat
#
# Returns: a 24-hour download URL for the AI-processed video (stdout)

SPARKI_API_BASE="https://agent-api-test.aicoding.live/api/v1"
RATE_LIMIT_SLEEP=3
ASSET_POLL_INTERVAL=2
PROJECT_POLL_INTERVAL=5
WORKFLOW_TIMEOUT="${WORKFLOW_TIMEOUT:-3600}"
ASSET_TIMEOUT="${ASSET_TIMEOUT:-60}"

: "${SPARKI_API_KEY:?Error: SPARKI_API_KEY is required. Run: openclaw config set env.SPARKI_API_KEY <key>}"

FILE_PATH="$1"; TIPS="$2"; USER_PROMPT="${3:-}"; ASPECT_RATIO="${4:-9:16}"; DURATION="${5:-}"

# -- Step 1: Upload --
echo "[1/4] Uploading $FILE_PATH..." >&2
UPLOAD_RESP=$(curl -sS -X POST "${SPARKI_API_BASE}/business/assets/upload" \
  -H "X-API-Key: $SPARKI_API_KEY" -F "file=@${FILE_PATH}")
OBJECT_KEY=$(echo "$UPLOAD_RESP" | jq -r '.data.object_key // empty')
[[ -z "$OBJECT_KEY" ]] && { echo "Upload failed: $(echo "$UPLOAD_RESP" | jq -r '.message')" >&2; exit 1; }
echo "[1/4] object_key=$OBJECT_KEY" >&2

# -- Step 2: Wait for asset ready --
echo "[2/4] Waiting for asset processing..." >&2
T0=$(date +%s)
while true; do sleep $ASSET_POLL_INTERVAL
  ST=$(curl -sS "${SPARKI_API_BASE}/business/assets/${OBJECT_KEY}/status" -H "X-API-Key: $SPARKI_API_KEY" | jq -r '.data.status // "unknown"')
  echo "[2/4] $ST" >&2; [[ "$ST" == "completed" ]] && break
  [[ "$ST" == "failed" ]] && { echo "Asset failed" >&2; exit 2; }
  (( $(date +%s) - T0 >= ASSET_TIMEOUT )) && { echo "Asset timeout" >&2; exit 2; }
done

# -- Step 3: Create project --
echo "[3/4] Creating AI project (tips=$TIPS)..." >&2
sleep $RATE_LIMIT_SLEEP
KEYS_JSON=$(echo "$OBJECT_KEY" | jq -Rc '[.]')
TIPS_JSON=$(echo "$TIPS" | jq -Rc 'split(",") | map(tonumber? // .)')
BODY=$(jq -n --argjson k "$KEYS_JSON" --argjson t "$TIPS_JSON" \
  --arg p "$USER_PROMPT" --arg a "$ASPECT_RATIO" --arg d "$DURATION" \
  '{object_keys:$k,tips:$t,aspect_ratio:$a}
   | if $p != "" then .+{user_prompt:$p} else . end
   | if $d != "" then .+{duration:($d|tonumber)} else . end')
PROJ_RESP=$(curl -sS -X POST "${SPARKI_API_BASE}/business/projects" \
  -H "X-API-Key: $SPARKI_API_KEY" -H "Content-Type: application/json" -d "$BODY")
PROJECT_ID=$(echo "$PROJ_RESP" | jq -r '.data.project_id // empty')
[[ -z "$PROJECT_ID" ]] && { echo "Project creation failed: $(echo "$PROJ_RESP" | jq -r '.message')" >&2; exit 1; }
echo "[3/4] project_id=$PROJECT_ID" >&2

# -- Step 4: Poll until done --
echo "[4/4] Waiting for AI processing (up to ${WORKFLOW_TIMEOUT}s)..." >&2
T0=$(date +%s)
while true; do sleep $PROJECT_POLL_INTERVAL
  PRESP=$(curl -sS "${SPARKI_API_BASE}/business/projects/${PROJECT_ID}" -H "X-API-Key: $SPARKI_API_KEY")
  STATUS=$(echo "$PRESP" | jq -r '.data.status // "UNKNOWN"')
  echo "[4/4] $STATUS" >&2
  if [[ "$STATUS" == "COMPLETED" ]]; then
    echo "$PRESP" | jq -r '.data.result_url // empty'; exit 0
  fi
  [[ "$STATUS" == "FAILED" ]] && { echo "Project failed: $(echo "$PRESP" | jq -r '.data.error')" >&2; exit 4; }
  (( $(date +%s) - T0 >= WORKFLOW_TIMEOUT )) && { echo "Timeout. Check manually: project_id=$PROJECT_ID" >&2; exit 3; }
done

AI Edit example — intelligent vertical reformat of a talking-head video:

RESULT_URL=$(bash scripts/edit_video.sh interview.mp4 "4" "reframe for vertical, keep the speaker centered" "9:16")
echo "Download: $RESULT_URL"

Error Reference

ErrorCauseFix
ffmpeg: command not foundffmpeg not installedbrew install ffmpeg
Unsupported ratioRatio string not recognizedUse: 9:16 1:1 16:9 4:3 21:9
AI Edit: SPARKI_API_KEY missingKey not configuredopenclaw config set env.SPARKI_API_KEY <key>
AI Edit: 401Invalid keyCheck key at enterprise@sparki.io

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

98.36%
按下载量换算4,399

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills