关于 video-trimming
video-trimming 是使用 each::sense 剪切和拆分视频的技能,适合需要按时间提取片段、基于静音或场景编辑,以及批量制作社交媒体短片的创作者和剪辑人员。
主要功能
- 01按时长或时间戳剪辑
- 02提取片段和精彩内容
- 03移除片头、片尾和静音
- 04按场景变化拆分视频
- 05批量处理视频
- 06制作社交媒体时长及循环片段
适用场景
- 01按时间戳剪出访谈片段
- 02删除录制内容中的静音
- 03制作社交媒体短视频
- 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模式 - 先处理较短的视频,在批量操作前验证设置
社交媒体指南
| 平台 | 推荐时长 | 备注 |
|---|---|---|
| TikTok | 15-60 秒 | 前 3 秒设置吸引点 |
| Instagram Reels | 15-30 秒 | 最长 90 秒 |
| YouTube Shorts | 30-60 秒 | 必须少于 60 秒 |
| Twitter/X | 30-60 秒 | 普通账号最长 2:20 |
| 30-90 秒 | 专业场景 |
视频剪辑提示词技巧
请求剪辑视频时,请包含以下细节:
- 精确时间:“从 0:45 到 1:30”或“前 30 秒”
- 内容参考:“访谈片段”或“产品演示开始的部分”
- 输出要求:“保留音频”或“我需要 3 个独立片段”
- 目标平台:“用于 Instagram Reels”或“针对 YouTube Shorts 优化”
- 质量偏好:最终成片使用
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