CtrlK
BlogDocsLog inGet started
Tessl Logo

media-ops-skill

处理本地已有的图片 / 视频 / 音频文件,或下载网络视频。图片:缩放、裁剪、旋转、格式转换(→webp/png/jpeg)、滤镜、查看尺寸;视频:格式转换、提取音频、查看元信息;下载:YouTube / B 站等公开视频。也用于 AI 生成图片后的二次处理(转格式、缩放)。**不用于**:AI 从零生成图片/视频/语音(→cloud-media-skill)、在对话里渲染图表(→visualization-ops-skill)。

60

Quality

71%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./apps/server/src/ai/builtin-skills/media-ops/SKILL.md
SKILL.md
Quality
Evals
Security

图片 / 视频 / 音频处理

本 skill 覆盖三个本地媒体工具,图片处理是核心能力

⚡ 读到此处立刻行动 — 不要停下来回复用户。紧接着执行 ToolSearch(names: "ImageProcess") 激活工具 schema,然后调用 ImageProcess 完成操作。这三步必须在同一个 response 内完成。

工具清单

工具职责
ImageProcess图片处理:缩放 / 裁剪 / 旋转 / 翻转 / 格式转换 / 灰度 / 模糊 / 锐化 / 着色 / 查看元信息
VideoConvert视频格式转换 / 提取音频 / 查看元信息
VideoDownload从 YouTube / B 站等公开网址下载视频

加载:全部为 deferred 工具,调用前须先 ToolSearch(names: "ImageProcess,VideoConvert,VideoDownload") 激活 schema。

决策树

用户需要媒体操作
├── 处理图片?(缩放 / 裁剪 / 旋转 / 转格式 / 滤镜 / 查看尺寸)
│   └── ImageProcess
├── 处理视频?
│   ├── 格式转换 / 调整分辨率 → VideoConvert (action: convert)
│   └── 提取音频 → VideoConvert (action: extract-audio)
├── 查看文件信息?
│   ├── 图片(宽高 / 格式 / DPI) → ImageProcess (action: get-info)
│   └── 视频(时长 / 分辨率 / 编码) → VideoConvert (action: get-info)
└── 下载网络视频?
    └── VideoDownload

ImageProcess — 图片处理

基于 sharp,对已有图片进行变换。AI 生成的图片同样适用

action用途关键参数
get-info读取宽高、格式、DPI、文件大小仅 filePath
resize缩放width/height/fit
crop矩形裁剪left/top/width/height
rotate旋转angle
flip翻转direction
convert格式转换format(png/jpeg/webp/avif/tiff)
grayscale/blur/sharpen/tint滤镜效果各有专属参数

处理前先 get-info:了解原始尺寸和格式,避免盲目操作——比如用户说"缩小一半",你需要知道原始宽高才能计算目标值。

输出路径决策:默认追加后缀(如 photo_resized.jpg)。直接覆盖原文件有风险——用户可能需要原图作对比或回退。用户明确要求覆盖时除外。

VideoConvert — 视频/音频转换

基于 FFmpeg,处理已有文件的格式转换和音频提取。

action用途关键参数
get-info读取时长、分辨率、编解码器、流信息仅 filePath
convert视频格式转换formatresolution
extract-audio从视频提取音频audioFormat(mp3/wav/aac/flac)

格式选择建议

  • 通用兼容:MP4(H.264)——几乎所有设备都能播放
  • 高质量压缩:WebM(VP9)——文件更小但兼容性略差
  • 音频提取:MP3(通用)、FLAC(无损)

大文件注意:视频转码耗时与文件大小成正比。超过 500MB 的文件转换可能需要较长时间,提前告知用户预期等待。

VideoDownload — 视频下载

通过 yt-dlp 下载公开视频 URL。

适用:用户给出公开视频链接,需要下载到本地继续处理(编辑、提取音频、转码)。

不适用

  • 生成新视频 → cloud-media-skill
  • 转换本地已有视频 → VideoConvert
  • 私有/需登录的视频 → 告知用户 yt-dlp 只能下载公开内容

下载后常见后续:下载完成后用户通常需要进一步处理——提取音频、转换格式、裁剪。主动询问是否需要后续操作。

常见工作流

AI 生成图片后转格式 / 缩放

CloudImageGenerate(…) → 拿到 absolutePath
ImageProcess(action: "get-info", filePath: "…")   # 先确认原始尺寸
ImageProcess(action: "convert", filePath: "…", format: "webp", outputPath: "…")

视频下载 → 提取音频

VideoDownload(url: "...") → 拿到 filePath
VideoConvert(action: "extract-audio", filePath: "...", outputPath: "output.mp3")

批量图片格式转换

对每张图片调用 ImageProcess(action: "convert", format: "webp")。WebP 格式在保持画质的同时文件体积约为 JPEG 的 70%,适合 Web 使用场景。

常见错误

格式不支持 → 检查文件扩展名和实际编码是否匹配。用户可能把 .mp4 文件命名为 .avi,先用 get-info 确认真实格式。

输出文件与输入同路径 → 部分操作不支持原地覆盖。用不同的 outputPath,完成后如需替换再通知用户。

用户说"压缩图片"含义模糊 → 可能指:缩小尺寸(resize)、降低质量(convert 时调 quality)、或换格式(jpeg→webp)。主动澄清意图。

Repository
itsablabla/openloaf-web
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.