video-editing · git:20260828.21694dd · 2026-08-28 · sha256 7b9326f76186c853
video-editing git:20260828.21694ddA
Immutable. This exact content is served forever at /api/v1/blob/7b9326f76186c853.
--- name: video-editing description: >- 用自然语言指令剪辑视频:裁剪、拼接、变速、跳切去静音、文字覆盖、横竖比转换、抽帧封面、转 GIF、压缩、加 BGM/水印,基于 ffmpeg。 当用户说"剪视频""裁剪视频""拼接视频""视频变速""去静音""视频加文字""视频转GIF""压缩视频""加BGM/水印"时使用。 本 SKILL 做单条视频的通用剪辑;智能画幅转换用 video-reframe,长视频切片用 clipify/video-highlights,从 0 生成用 ai-video-gen。 layer: produce --- # 视频剪辑 用自然语言指令做通用视频处理。所有操作都调用共享脚本 `skills/shared/scripts/video_ops.py`(subprocess 封装 ffmpeg/ffprobe), **不要现场手拼 ffmpeg 命令**——脚本已处理音画同步、字体路径、编码默认值、 错误捕获等易错点。 > 从项目根目录运行。脚本相对路径:`skills/shared/scripts/video_ops.py`。 > 每个子命令都支持 `-h` 查看参数。 ## 输入 - 视频文件路径 + 操作描述(用户没给路径就问) - 可选:目标平台/比例/时间段等参数 ## 输出 处理后的视频/图片,存到 `outputs/主题名/`。脚本会打印 `✅ <路径> (大小)`。 ## 与 clipify 的边界 - **clipify** = 长视频智能切片 + 人脸追踪 pan + 逐字字幕烧录的**特化流程**。 需要"从长视频找精彩片段做成竖版短视频带字幕"时用它。 - **video-editing(本 SKILL)** = 通用剪辑处理。单点操作或自由组合时用它。 不做人脸追踪、不做字幕烧录(那是 clipify)。 ## 子命令速查 先 `python skills/shared/scripts/video_ops.py info -i <视频>` 看清源信息,再操作。 | 子命令 | 用途 | 关键参数 | |--------|------|----------| | `cut` | 按起止时间裁剪 | `--start --end`/`--duration`,`--reencode` 精确裁 | | `concat` | 多段拼接 | `--mode demuxer`(同参数无损)/`filter`(异参数统一) | | `speed` | 变速(音画同步) | `--factor 2.0` | | `silence-cut` | 检测静音并去除(跳切) | `--noise -30 --min-silence 0.5 --pad 0.05`(别名 `mute-cut`) | | `text` | 文字覆盖 | `--text --position --fontsize --color --start --end --box` | | `aspect` | 横竖比转换 | `--ratio 9:16 --mode pad`(补边)/`crop`(裁切) | | `frame` | 抽帧做封面 | `--time 00:00:03 --width` | | `gif` | 转 GIF | `--start --end --fps 12 --width 480` | | `compress` | 压缩 | `--crf 26` 或 `--bitrate 2M`,`--scale` 降分辨率 | | `bgm` | 加背景音乐混音 | `--music --voice-volume 1.0 --music-volume 0.3` | | `watermark` | 加图片水印 | `--logo --position --width --opacity` | | `info` | 时长/分辨率/帧率/码率(json) | `-i` | `text` / `watermark` 位置七选一:`center top bottom top-left top-right bottom-left bottom-right`。中文字体自动探测(wqy-microhei / Noto CJK), 也可 `--font` 显式指定。 ## 常用示例 ```bash V=skills/shared/scripts/video_ops.py # 裁剪 00:02:00–00:15:00 python $V cut -i in.mp4 -o out.mp4 --start 00:02:00 --end 00:15:00 # 横版转竖版(社媒竖版转制刚需):补边不裁 or 裁切填满 python $V aspect -i in.mp4 -o vertical.mp4 --ratio 9:16 --mode pad python $V aspect -i in.mp4 -o vertical.mp4 --ratio 9:16 --mode crop # 去静音 + 1.25 倍速(先跳切再变速) python $V silence-cut -i in.mp4 -o t.mp4 python $V speed -i t.mp4 -o out.mp4 --factor 1.25 # 第 3 秒抽帧做封面 python $V frame -i in.mp4 -o cover.jpg --time 00:00:03 --width 1080 # 2–6 秒转 GIF python $V gif -i in.mp4 -o clip.gif --start 2 --end 6 --fps 12 --width 480 # 60 秒处叠 5 秒"关注我"字幕(底部带框) python $V text -i in.mp4 -o out.mp4 --text "关注我" --position bottom --box --start 60 --end 65 # 加 BGM(原声 1.0 / BGM 0.3)、加右下角水印、压缩 python $V bgm -i in.mp4 -o out.mp4 --music bgm.mp3 --music-volume 0.3 python $V watermark -i in.mp4 -o out.mp4 --logo logo.png --position bottom-right --width 120 python $V compress -i in.mp4 -o small.mp4 --crf 26 --scale 720 ``` ## 组合操作 链式:每步产物作下一步输入。典型顺序 `cut → silence-cut → speed → text → aspect → compress`。竖版转制放最后(在最终画布上叠字幕更可控)。 ## 平台规范(简表) | 平台 | 比例 | 时长 | 备注 | |------|------|------|------| | 抖音/视频号/Reels | 9:16 | ≤60s 黄金,前 3s 定成败 | 1080×1920 | | 小红书视频 | 9:16 / 3:4 | ≤60s | 竖版优先 | | B站/YouTube 横版 | 16:9 | 数分钟起 | 1920×1080 | | Instagram Feed | 4:5 / 1:1 | 短 | 4:5 占屏更大 | 更详细规范按需查 `references/`(如有)。 ## 环境要求 - **ffmpeg + ffprobe** — ✅ 已安装(脚本启动即检查,缺则报错退出) - **字幕烧录/逐字字幕** — 走 clipify(需 whisper);本 SKILL 只做 `text` 覆盖 ## Agent 指令 1. **先 `info`** 看源比例/时长/有无音轨,再决定操作 2. **每个操作调对应子命令**,别手写 ffmpeg;不确定参数用 `<子命令> -h` 3. **多操作链式**执行,中间产物可留 `.drafts/` 4. **产物输出到** `outputs/主题名/`,最后告知路径与时长