mcpField
V
video-trimming

video-trimming

github.com/eachlabs创意与媒体44305 次安装今天更新
代码仓库

关于 video-trimming

video-trimming 是使用 each::sense 剪切和拆分视频的技能,适合需要按时间提取片段、基于静音或场景编辑,以及批量制作社交媒体短片的创作者和剪辑人员。

主要功能

  1. 01按时长或时间戳剪辑
  2. 02提取片段和精彩内容
  3. 03移除片头、片尾和静音
  4. 04按场景变化拆分视频
  5. 05批量处理视频
  6. 06制作社交媒体时长及循环片段

适用场景

  1. 01按时间戳剪出访谈片段
  2. 02删除录制内容中的静音
  3. 03制作社交媒体短视频
  4. 04按统一规则批量剪辑视频

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/eachlabs/skills --skill video-trimming

安装后在 Claude Code 中输入/video-trimming确认已加载。

附带文件references/SSE-EVENTS.md

详细介绍

视频剪辑

使用 each::sense 修剪、剪切和拆分视频。此技能支持精准的视频编辑操作,包括片段提取、场景检测、静音移除和面向社交媒体优化的批量处理。

功能

  • 精准修剪:将视频剪切到精确的时间点或时长
  • 片段提取:从视频中间提取特定片段
  • 移除片头/片尾:通过移除不需要的开头或结尾来清理视频
  • 视频拆分:将长视频拆分成多个较短的片段
  • 精彩片段提取:从较长内容中提取关键时刻
  • 移除静音:自动检测并移除空白或静音片段
  • 场景检测:根据视觉场景变化智能剪切
  • 社交媒体优化:修剪为平台指定的时长(15s、30s、60s)
  • 适合循环播放的剪辑:为社交媒体制作无缝循环视频
  • 批量处理:使用一致的修剪规则处理多个视频

快速开始

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to the first 30 seconds"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/my-video.mp4"]
  }'

修剪操作参考

操作描述示例用例
按时长修剪从开头剪切到指定时长社交媒体片段
按时间戳修剪提取起止时间之间的内容访谈片段
移除片头移除开头的 N 秒清理录制内容
移除片尾移除结尾的 N 秒移除片尾卡
片段提取提取中间部分精彩集锦
场景拆分按视觉变化拆分创建章节
移除静音剪掉静音片段播客编辑
批量修剪处理多个视频内容再利用

用例示例

1. 将视频修剪到指定时长

从视频开头开始,将其修剪到指定时长。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to exactly 60 seconds, keeping the first minute only"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/full-video.mp4"]
  }'
2. 剪切中间片段

使用时间戳从视频中间提取特定片段。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Cut out the segment from 1:30 to 2:45 of this video. I want just that middle portion as a standalone clip."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/interview.mp4"]
  }'
3. 移除片头和片尾

通过移除不需要的片头和片尾部分来清理视频。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove the first 10 seconds (intro) and last 15 seconds (outro) from this video. Keep only the main content in the middle."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/youtube-video.mp4"]
  }'
4. 将视频拆分成多个片段

将长视频拆分成若干较短的片段。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Split this 5-minute video into five 1-minute clips. Each clip should be a separate output."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/long-video.mp4"]
  }'
5. 提取精彩时刻

从较长的视频中提取精彩时刻。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Extract the most engaging or action-packed moments from this video. Create a highlight reel of the best 30 seconds."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/sports-footage.mp4"]
  }'
6. 移除静音和空白片段

自动检测并移除视频中的静音片段。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Remove all silent portions and dead air from this video. Cut out any segments where there is no speaking or significant audio for more than 2 seconds."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/podcast-recording.mp4"]
  }'
7. 智能场景检测剪切

使用 AI 检测场景变化,并据此拆分视频。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Analyze this video and split it into separate clips based on scene changes. Each time the visual scene changes significantly, create a new clip."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/multi-scene-video.mp4"]
  }'
8. 批量修剪多个视频

使用会话连续性,按照相同的修剪规则处理多个视频。

# First video
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to 30 seconds from the start. We will process multiple videos with the same rule."}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video1.mp4"]
  }'

# Second video (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Apply the same 30-second trim to this video"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video2.mp4"]
  }'

# Third video (same session)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "And the same for this one"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "batch-trim-001",
    "mode": "eco",
    "video_urls": ["https://example.com/video3.mp4"]
  }'
9. 修剪为社交媒体时长

根据特定社交媒体平台的要求优化视频。

# Instagram Reels / TikTok (15 seconds)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to exactly 15 seconds for Instagram Reels. Pick the most engaging 15-second segment."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'

# YouTube Shorts (30 seconds)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a 30-second clip optimized for YouTube Shorts from this video. Focus on the hook at the start."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'

# Standard social clip (60 seconds)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim to 60 seconds maximum for Twitter/X. Keep the most important content."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/content.mp4"]
  }'
10. 修剪为适合循环播放的片段

为社交媒体制作可无缝循环播放的视频片段。

curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to create a seamless loop. Find a segment where the end flows naturally back to the beginning, ideally 5-10 seconds long for a satisfying social media loop."}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max",
    "video_urls": ["https://example.com/loopable-content.mp4"]
  }'

最佳实践

修剪提示
  • 具体描述:尽可能提供准确的时间戳(MM:SS 或 HH:MM:SS)
  • 描述内容:如果不知道时间戳,请描述想要的内容(“他们握手的部分”)
  • 预留缓冲时间:在剪切点周围留出少量缓冲,避免转场突兀
  • 检查音频:确保剪切点不会落在句子或音符中间
性能优化
  • 批量处理或快速迭代时使用 eco 模式
  • 最终导出和对质量要求较高的内容使用 max 模式
  • 先处理较短的视频,在批量操作前验证设置
社交媒体指南
平台推荐时长备注
TikTok15-60 秒前 3 秒设置吸引点
Instagram Reels15-30 秒最长 90 秒
YouTube Shorts30-60 秒必须少于 60 秒
Twitter/X30-60 秒普通账号最长 2:20
LinkedIn30-90 秒专业场景

视频剪辑提示词技巧

请求剪辑视频时,请包含以下细节:

  1. 精确时间:“从 0:45 到 1:30”或“前 30 秒”
  2. 内容参考:“访谈片段”或“产品演示开始的部分”
  3. 输出要求:“保留音频”或“我需要 3 个独立片段”
  4. 目标平台:“用于 Instagram Reels”或“针对 YouTube Shorts 优化”
  5. 质量偏好:最终成片使用 mode: "max",草稿使用 mode: "eco"
提示词结构示例
"[Action] this video [timing/selection criteria].
[Additional requirements like output format, platform, etc.]"

示例:

  • “将此视频剪辑为 30 秒,从 1:00 开始”
  • “从此视频的不同部分提取 3 个 15 秒的精彩片段”
  • “删除开头 5 秒和结尾 10 秒”

模式选择

“你想要快速又省钱,还是高品质?”

模式最适合速度质量
max最终导出、交付给客户端的成片、对质量要求严格的内容较慢最高
eco快速预览、批量处理、草稿迭代较快良好

多轮编辑会话

使用 session_id 迭代编辑视频:

# Initial trim
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Trim this video to the segment from 0:30 to 1:30"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001",
    "video_urls": ["https://example.com/raw-footage.mp4"]
  }'

# Adjust the trim
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Actually, extend the end by 10 more seconds to include the conclusion"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001"
  }'

# Request additional version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Create a shorter 15-second version of this same segment for Instagram"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "edit-session-001"
  }'

错误处理

错误原因解决方案
Failed to create prediction: HTTP 422余额不足在 eachlabs.ai 充值
超时视频处理时间过长将客户端超时设置为至少 10 分钟
时间戳无效时间戳超出视频时长先确认视频时长
不支持的格式不支持此视频编解码器先转换为 MP4/H.264

相关技能

  • each-sense - 核心 API 文档
  • video-generation - 从头创建视频
  • video-editing - 高级视频编辑操作
  • video-to-video - 转换视频并进行风格迁移

评论

支持 Markdown