Claude Code Plugins

Community-maintained marketplace

Feedback

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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

Video Trimmer

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

Prerequisites

需要安装 ffmpeg。如果未安装,请使用 install-app skill 来安装。

Usage

When the user wants to trim a video: $ARGUMENTS

Instructions

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

Step 1: 检查 ffmpeg 安装

首先验证 ffmpeg 是否已安装:

which ffmpeg && ffmpeg -version | head -1 || echo "NOT_INSTALLED"

如果未安装,使用 install-app skill 来安装 ffmpeg。告诉用户:「需要先安装 ffmpeg,我来帮你安装。」然后调用 install-app skill 安装 ffmpeg。

Step 2: 获取输入文件

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

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

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 3: 询问用户裁剪配置

⚠️ 必须:你必须使用 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 4: 构建 FFmpeg 命令

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

时间选项

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

# 基于时长的结束
-t DURATION

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

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

压缩选项

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

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

CRF 值说明:

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

音频选项

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

# 移除音频
-an

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

附加选项

# 淡入/淡出(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 5: 执行并报告

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

命令模板

# 基础裁剪,使用流复制(最快)
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 6: 验证输出

裁剪完成后,验证输出:

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

报告:

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

示例交互

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