Agent skill

video-trim

裁剪视频片段,支持压缩、音频控制等选项。Use when user wants to 剪辑视频, 裁剪视频, 截取视频, 视频剪切, 切视频, trim video, cut video, clip video, extract video segment.

Stars 0
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/InfQuest/vibe-ops-plugin/tree/main/skills/video-trim

SKILL.md

Video Trimmer

裁剪视频片段,支持压缩、音频处理和输出格式选择。

Usage

When the user wants to trim a video: $ARGUMENTS

Instructions

你是一个视频裁剪助手,使用 ffmpeg 帮助用户裁剪视频。请按以下步骤操作:

Step 1: 获取输入文件

如果用户没有提供输入文件路径,询问他们提供一个。

验证文件存在并获取信息:

bash
ffprobe -v error -show_entries format=duration,size,bit_rate -show_entries stream=codec_name,width,height,r_frame_rate -of json "$INPUT_FILE"

向用户展示:

  • 文件时长
  • 分辨率(如果是视频)
  • 编码信息
  • 文件大小

Step 2: 询问用户裁剪配置

⚠️ 必须:你必须使用 AskUserQuestion 工具询问用户的偏好,然后再执行任何 ffmpeg 命令。不要跳过这一步或根据用户的初始请求做出假设。即使用户提供了一些参数(如开始/结束时间),你仍然必须询问压缩、音频处理等选项。

使用 AskUserQuestion 工具收集用户偏好:

  1. 开始时间:从什么时间开始?(格式:HH:MM:SS 或秒数)

    • 让用户手动输入
  2. 结束时间:在哪里结束?

    • 选项:
      • "指定结束时间"
      • "指定持续时长"
      • "裁剪到视频末尾"
  3. 压缩设置:是否压缩输出文件?

    • 选项:
      • "不压缩 - 直接复制流(最快,无损)(Recommended)"
      • "轻度压缩(CRF 23,画质好)"
      • "中度压缩(CRF 28,平衡)"
      • "高度压缩(CRF 32,文件更小)"
      • "自定义 CRF 值"
  4. 音频处理:如何处理音频?

    • 选项:
      • "保留原始音频 (Recommended)"
      • "完全移除音频"
      • "重新编码音频(AAC 128k)"
      • "重新编码音频(AAC 256k,高质量)"
  5. 附加选项(多选):需要其他选项吗?

    • 选项:
      • "在剪切点添加淡入/淡出效果"
      • "在中点生成缩略图"
      • "在开始处强制关键帧(更精确的剪切)"
      • "无需其他选项"
  6. 输出格式:输出什么格式?

    • 选项:"与输入相同 (Recommended)"、"MP4"、"MKV"、"WebM"、"MOV"
  7. 输出路径:保存到哪里?(建议默认:input_trimmed.ext)

Step 3: 构建 FFmpeg 命令

根据用户选择,构建 ffmpeg 命令:

时间选项

bash
# 开始时间
-ss HH:MM:SS

# 基于时长的结束
-t DURATION

# 基于结束时间
-to HH:MM:SS

重要:将 -ss 放在 -i 之前可以快速定位(输入定位),放在 -i 之后可以精确到帧(更慢但更精确)。

压缩选项

bash
# 不压缩(流复制)- 最快
-c copy

# 重新编码(允许压缩)
-c:v libx264 -crf VALUE -preset medium

CRF 值说明:

  • 18-23:视觉无损到好画质
  • 23-28:好到可接受的画质
  • 28-32:较低画质,文件更小

音频选项

bash
# 保留原始(使用流复制)
-c:a copy

# 移除音频
-an

# 重新编码音频
-c:a aac -b:a 128k   # 或 256k

附加选项

bash
# 淡入/淡出(0.5秒)
-vf "fade=t=in:st=0:d=0.5,fade=t=out:st=END-0.5:d=0.5"
-af "afade=t=in:st=0:d=0.5,afade=t=out:st=END-0.5:d=0.5"

# 强制开始处关键帧(不使用流复制时)
-force_key_frames "expr:gte(t,0)"

# 生成缩略图
ffmpeg -ss MIDPOINT -i input -vframes 1 -q:v 2 thumbnail.jpg

Step 4: 执行并报告

  1. 执行前向用户展示完整的 ffmpeg 命令
  2. 执行命令并显示进度
  3. 报告成功/失败
  4. 显示输出文件路径和大小对比

命令模板

bash
# 基础裁剪,使用流复制(最快)
ffmpeg -ss START -to END -i "INPUT" -c copy "OUTPUT"

# 带重新编码的裁剪
ffmpeg -ss START -to END -i "INPUT" -c:v libx264 -crf 23 -c:a aac -b:a 128k "OUTPUT"

# 无音频的裁剪
ffmpeg -ss START -to END -i "INPUT" -c:v copy -an "OUTPUT"

Step 5: 验证输出

裁剪完成后,验证输出:

bash
ffprobe -v error -show_entries format=duration,size -of json "OUTPUT_FILE"

报告:

  • 输出时长是否符合预期
  • 文件大小对比(原始 vs 裁剪后)
  • 任何警告或问题

示例交互

用户:帮我把视频从 1:30 裁剪到 3:45

Expand your agent's capabilities with these related and highly-rated skills.

InfQuest/vibe-ops-plugin

youtube-download

使用 yt-dlp 下载 YouTube 视频、音频或字幕。Use when user wants to 下载视频, 下载YouTube, youtube下载, 下载油管, download youtube, download video, 下载B站, bilibili下载.

0 0
Explore
InfQuest/vibe-ops-plugin

video-gen

使用 AI 生成视频,支持 Veo/Sora 模型。Use when user wants to 生成视频, AI视频, 文生视频, 图生视频, generate video, create video, text to video, image to video, 做一个视频.

0 0
Explore
InfQuest/vibe-ops-plugin

audio-extract

从视频文件中提取音频。Use when user wants to 提取音频, 抽取音频, 视频转音频, 导出音频, extract audio, video to audio, get audio from video, 把视频的声音提取出来.

0 0
Explore
InfQuest/vibe-ops-plugin

image-gen

使用 AI 生成图片,支持多种模型和风格。Use when user wants to 生成图片, 画图, 创建图像, AI绘图, 生成一张图, generate image, create image, draw picture, AI art, 编辑图片, 修改图片, edit image, modify image.

0 0
Explore
InfQuest/vibe-ops-plugin

media-understand

使用 AI 理解和分析多媒体内容(图片、视频、音频)。Use when user wants to 理解图片, 分析视频, 音频转文字, 视频问答, understand media, analyze video, transcribe audio, describe image, what is in this video/image/audio.

0 0
Explore
InfQuest/vibe-ops-plugin

skill-extractor

从当前会话中提取经验,自动生成可复用的 Claude Code Skill。Use when user wants to 提取skill, 总结成skill, 固化经验, 生成skill, extract skill, create skill from context, save as skill, 把经验变成skill.

0 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results