OpenClaw Skills 视频帧提取(Video Frames)技能使用参考手册
2026-03-06 11:44 更新
概述
Video Frames 是用于通过 ffmpeg 从视频中提取关键帧的 OpenClaw 技能,能够提取视频的第一帧、指定时间点的帧,帮助用户快速获取视频的关键画面,适合需要分析视频内容、生成视频缩略图的场景,用户可以通过简单的命令行操作完成视频帧的提取,支持 jpg 和 png 两种输出格式。
该技能可以帮助用户在 OpenClaw 中直接对视频进行帧提取操作,适合视频编辑人员、内容创作者等,能够快速获取视频的关键画面,用于视频预览、内容分析等场景。
技能信息
- 名称:video-frames
- 描述:使用 ffmpeg 从视频中提取单帧画面或创建快速缩略图用于查看。
- 版本:1.0.0
- 作者:steipete(Peter Steinberger)
- 主页:
https://ffmpeg.org - 依赖:
- 需要安装 ffmpeg 工具
- 支持 macOS(可通过 brew 安装 ffmpeg)
- 触发词:"视频帧提取"、"视频缩略图生成"、"视频关键帧获取"、"ffmpeg 视频提取"、"视频画面提取"
👤 作者:Peter Steinberger
🦞 官方地址:https://clawhub.ai/steipete/video-frames
👉 Skills 下载地址:video-frames-1.0.0.zip
使用场景
- 需要查看视频的关键画面时
- 需要生成视频的缩略图时
- 需要分析视频特定时间点的内容时
- 需要快速分享视频中的某个画面时
快速开始
提取第一帧
{baseDir}/scripts/frame.sh /path/to/video.mp4 --out /tmp/frame.jpg
提取指定时间点的帧
{baseDir}/scripts/frame.sh /path/to/video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
注意事项
- 当你想了解 "这个时间点在播放什么内容" 时,使用
--time参数。 - 如果你需要快速分享画面,使用
.jpg格式;如果你需要用于 UI 的清晰画面,使用.png格式。
工具代码说明
frame.sh(视频帧提取脚本)
#!/usr/bin/env bash
set -euo pipefail
## 显示使用说明函数
usage() {
cat >&2 <<'EOF'
使用方法:
frame.sh <视频文件> [--time 时:分:秒] [--index 帧序号] --out /保存路径/文件名.jpg
示例:
frame.sh video.mp4 --out /tmp/frame.jpg
frame.sh video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
frame.sh video.mp4 --index 0 --out /tmp/frame0.png
EOF
exit 2
}
## 如果没有输入参数,或者参数是-h/--help,显示使用说明
if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
usage
fi
## 获取输入的视频文件路径
in="${1:-}"
shift || true
## 初始化参数变量
time=""
index=""
out=""
## 解析命令行参数
while [[ $# -gt 0 ]]; do
case "$1" in
--time)
## 设置指定的时间点
time="${2:-}"
shift 2
;;
--index)
## 设置指定的帧序号
index="${2:-}"
shift 2
;;
--out)
## 设置输出文件路径
out="${2:-}"
shift 2
;;
*)
## 处理未知参数
echo "未知参数: $1" >&2
usage
;;
esac
done
## 检查输入文件是否存在
if [[ ! -f "$in" ]]; then
echo "文件不存在: $in" >&2
exit 1
fi
## 检查是否指定了输出路径
if [[ "$out" == "" ]]; then
echo "缺少--out参数" >&2
usage
fi
## 创建输出目录(如果不存在)
mkdir -p "$(dirname "$out")"
## 根据不同的参数执行ffmpeg命令提取帧
if [[ "$index" != "" ]]; then
## 根据帧序号提取指定帧
ffmpeg -hide_banner -loglevel error -y \
-i "$in" \
-vf "select=eq(n\\,${index})" \
-vframes 1 \
"$out"
elif [[ "$time" != "" ]]; then
## 根据时间点提取指定帧
ffmpeg -hide_banner -loglevel error -y \
-ss "$time" \
-i "$in" \
-frames:v 1 \
"$out"
else
## 默认提取第一帧
ffmpeg -hide_banner -loglevel error -y \
-i "$in" \
-vf "select=eq(n\\,0)" \
-vframes 1 \
"$out"
fi
## 输出输出文件路径
echo "$out"
元数据信息
该技能的元数据信息如下:
{
"ownerId": "kn70pywhg0fyz996kpa8xj89s57yhv26",
"slug": "video-frames",
"version": "1.0.0",
"publishedAt": 1767545391700
}以上内容是否对您有帮助:

免费 AI IDE


更多建议: