ワンクリックで
extract-video
提取视频文件的基本信息、音频轨道、关键帧截图,或将其转换为可分析的格式。 当用户提供视频路径并需要了解内容、提取字幕、获取关键帧时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
提取视频文件的基本信息、音频轨道、关键帧截图,或将其转换为可分析的格式。 当用户提供视频路径并需要了解内容、提取字幕、获取关键帧时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
电影级视频分镜头提示词生成器,专为 Seedance 2.x 系列模型设计。当用户需要生成视频、制作分镜脚本、描述影像画面、进行镜头调度、输出 AI 视频提示词(prompt)时触发。默认输出适合直接复制给模型的轻量成品提示词,优先贴近长镜头、多分镜、蒙太奇三类实用模板。动作戏默认采用事件链长镜头逻辑;变身、异变、强烈招式前摇等场景采用阶段推进逻辑。仅当用户明确要求工业版、完整版、分镜表或后期说明时,才输出重型结构化版本。
视频视觉风格定调与 GPT image2 风格预设提示词顾问。针对用户的视频项目需求(宣传片、短片、广告、MV、纪录片、动画、短视频、综艺片头等), 推荐合适的视觉风格方向,并为每个风格生成一段纯风格层的、可复用的 GPT image2 中文自然语言提示词(风格预设)。 风格预设只描述"怎么拍"——色彩体系、光线质感、构图逻辑、质感媒介、对比与饱和度——不包含任何具体人物、场景、物品内容, 用户可将其与任意内容描述自由组合使用。 当用户提到以下任何场景时立即触发:要拍视频但不知道用什么风格、需要风格定调、需要风格参考、需要 mood board、 帮我推荐视频风格、这个视频适合什么视觉调性、帮我出 GPT image2 提示词、gpt image 2 提示词、 视频风格方向、视觉调性推荐、画面风格推荐、风格预设、style preset、look reference、visual style。 即使用户只是描述了一个视频想法并隐约想要"定个视觉调性",也应主动以视频风格顾问身份介入。
美术资产设计师——专为剧本/故事内容拆解人物与场景美术资产,并为每个资产生成可直接用于 AI 图像生成工具的提示词。当用户提到剧本、故事、脚本、分镜、需要美术资产、出图提示词、角色设计、场景设计等内容时,立即触发此技能。即使用户只是说"帮我拆一下剧本里的角色"或"我需要生成场景图",也应立即以美术资产设计师身份介入。覆盖从剧本解析 → 资产清单整理 → 风格确认(必须向用户询问,禁止自行推断)→ 分类提示词生成的完整流程。
双核顾问助手——结构化思考 × 同理心引擎。当用户带来任何个人困惑、决策难题、工作问题、情绪困扰、创意探讨时,立即启用此技能。它能自动感知用户的情绪状态,决定先共情还是先分析,并根据问题严肃程度在"智慧老友"和"专业顾问"之间切换风格。触发词包括但不限于:我不知道怎么办、帮我分析、我很纠结、我有个想法、最近遇到一件事、你觉得我应该……即使用户只是随口倾诉,也应主动以双核顾问身份介入,而不是泛泛回应。
爬取网络小说并保存为本地 txt 文件。当用户想要下载小说、抓取网页小说、保存在线小说到本地、从小说网站提取内容时触发。支持通用小说网站适配,自动分析章节结构,单线程稳定爬取,合并输出为单个 txt 文件。
国际级宣传片创意启发大师(Promo Film Creative Master)——专精城市/国家形象片、品牌宣传片、产品发布片、公益/社会议题片的创意开发。融合 Cannes Lions、D&AD、One Show、Clio Awards、戛纳/Sundance 等国际顶级奖项的获奖逻辑,提供创意概念、叙事结构、视听语言、获奖案例拆解四位一体的创意启发服务。支持两种模式:/generate 直出完整创意方案,/deepen 苏格拉底式引导深化创意。当用户提到宣传片、形象片、品牌片、城市片、公益片、社会议题视频、产品发布视频、TVC、viral video、创意提案、创意启发、国际获奖片参考、大创意(Big Idea)等词汇时,立即触发此技能。即使用户只是说"帮我想想这个宣传片怎么拍"或"有什么好的参考方向",也应主动以国际级创意导师身份介入。
| name | extract-video |
| slash_command | extract-video |
| description | 提取视频文件的基本信息、音频轨道、关键帧截图,或将其转换为可分析的格式。 当用户提供视频路径并需要了解内容、提取字幕、获取关键帧时使用。 |
| usage | /extract-video <视频路径> [操作类型] 操作类型(可选,默认为 info): - info 显示视频基本信息(分辨率、时长、码率、编码格式等) - frames 提取关键帧截图到临时目录 - audio 提取音频为 WAV/MP3 - subtitle 尝试提取内嵌字幕或生成音频转文字(需要 Whisper) |
用户输入 /extract-video <路径> 时,本 skill 生效。
在 Windows 系统上,按以下优先级自动检测 FFmpeg:
Winget 安装路径(默认):
%LOCALAPPDATA%\Microsoft\WinGet\Packages\Gyan.FFmpeg_*
Chocolatey 安装路径:
C:\ProgramData\chocolatey\bin\ffmpeg.exe
官方安装程序路径:
C:\Program Files\FFmpeg\bin\ffmpeg.exe
C:\ffmpeg\bin\ffmpeg.exe
系统 PATH:直接调用 ffmpeg / ffprobe
检测逻辑(Bash):
# 尝试找到 ffmpeg
FFMPEG_PATH=""
PROBE_PATHS=(
"$LOCALAPPDATA/Microsoft/WinGet/Packages/Gyan.FFmpeg_*/ffmpeg-*/bin/ffmpeg.exe"
"/c/ProgramData/chocolatey/bin/ffmpeg.exe"
"/c/Program Files/FFmpeg/bin/ffmpeg.exe"
"/c/ffmpeg/bin/ffmpeg.exe"
)
for path in "${PROBE_PATHS[@]}"; do
found=$(ls $path 2>/dev/null | head -1)
if [ -n "$found" ]; then
FFMPEG_PATH="$found"
FFPROBE_PATH="${found/ffmpeg/ffprobe}"
break
fi
done
# 如果都没找到,尝试系统 PATH
if [ -z "$FFMPEG_PATH" ]; then
if command -v ffmpeg &> /dev/null; then
FFMPEG_PATH="ffmpeg"
FFPROBE_PATH="ffprobe"
fi
fi
if [ -z "$FFMPEG_PATH" ]; then
echo "❌ FFmpeg 未找到。请安装:"
echo " winget install Gyan.FFmpeg"
echo " 或: choco install ffmpeg"
exit 1
fi
确认路径存在且为视频文件:
if [ ! -f "$VIDEO_PATH" ]; then
echo "❌ 文件不存在: $VIDEO_PATH"
exit 1
fi
运行:
"$FFPROBE_PATH" -v quiet -print_format json -show_streams -show_format "$VIDEO_PATH"
将 JSON 结果整理为易读的摘要(分辨率、时长、帧率、编码器、音频轨道数等)。
运行:
# 创建输出目录
OUTPUT_DIR="${TEMP:-/tmp}/extract-video-frames-$(date +%s)"
mkdir -p "$OUTPUT_DIR"
# 按时间间隔提取(每2秒一帧,480px宽度)
"$FFMPEG_PATH" -i "$VIDEO_PATH" -vf "fps=1/2,scale=480:-1" -q:v 2 "$OUTPUT_DIR/frame_%04d.jpg"
# 或按场景变化提取(需要更多计算)
# "$FFMPEG_PATH" -i "$VIDEO_PATH" -vf "select='gt(scene,0.3)',showinfo" -vsync vfr -q:v 2 -f image2 "$OUTPUT_DIR/scene_%04d.jpg"
生成完成后,列出提取的帧文件路径,供后续分析使用。
运行:
OUTPUT_AUDIO="${VIDEO_PATH%.*}.mp3"
"$FFMPEG_PATH" -i "$VIDEO_PATH" -vn -acodec libmp3lame -q:a 2 "$OUTPUT_AUDIO"
输出音频文件路径。
"$FFMPEG_PATH" -i "$VIDEO_PATH" -map 0:s:0 "${VIDEO_PATH%.*}.srt" 2>/dev/null
#!/bin/bash
VIDEO_PATH="$1"
ACTION="${2:-info}"
# 自动检测 FFmpeg
find_ffmpeg() {
local paths=(
"$LOCALAPPDATA/Microsoft/WinGet/Packages/Gyan.FFmpeg_*/ffmpeg-*/bin/ffmpeg.exe"
"/c/ProgramData/chocolatey/bin/ffmpeg.exe"
"/c/Program Files/FFmpeg/bin/ffmpeg.exe"
"/c/ffmpeg/bin/ffmpeg.exe"
)
for pattern in "${paths[@]}"; do
local found=$(ls $pattern 2>/dev/null | head -1)
if [ -n "$found" ] && [ -f "$found" ]; then
echo "$found"
return 0
fi
done
# 尝试 PATH
if command -v ffmpeg &> /dev/null; then
echo "ffmpeg"
return 0
fi
return 1
}
FFMPEG=$(find_ffmpeg)
if [ -z "$FFMPEG" ]; then
echo "❌ FFmpeg 未找到"
echo "请安装: winget install Gyan.FFmpeg"
exit 1
fi
FFPROBE="${FFMPEG/ffmpeg/ffprobe}"
# 验证文件
if [ ! -f "$VIDEO_PATH" ]; then
echo "❌ 文件不存在: $VIDEO_PATH"
exit 1
fi
# 执行操作
case "$ACTION" in
info)
"$FFPROBE" -v quiet -print_format json -show_streams -show_format "$VIDEO_PATH" | \
python3 -c "
import sys, json
d = json.load(sys.stdin)
fmt = d.get('format', {})
streams = d.get('streams', [])
video = next((s for s in streams if s.get('codec_type') == 'video'), {})
audio = next((s for s in streams if s.get('codec_type') == 'audio'), {})
print('📹 视频信息')
print('=' * 40)
print(f'时长: {float(fmt.get(\"duration\", 0)):.2f} 秒')
print(f'大小: {int(fmt.get(\"size\", 0)) / 1024 / 1024:.2f} MB')
print(f'码率: {int(fmt.get(\"bit_rate\", 0)) / 1000:.0f} kbps')
print(f'格式: {fmt.get(\"format_name\", \"unknown\")}')
if video:
print(f'分辨率: {video.get(\"width\", \"?\")}x{video.get(\"height\", \"?\")}')
print(f'帧率: {eval(video.get(\"r_frame_rate\", \"0/1\")):.2f} fps')
print(f'编码: {video.get(\"codec_name\", \"unknown\")}')
if audio:
print(f'音频: {audio.get(\"codec_name\", \"unknown\")}, {audio.get(\"sample_rate\", \"?\")} Hz')
"
;;
frames)
OUTPUT_DIR="${TEMP:-/tmp}/extract-video-frames-$(date +%s)"
mkdir -p "$OUTPUT_DIR"
echo "🎬 正在提取关键帧..."
"$FFMPEG" -i "$VIDEO_PATH" -vf "fps=1/2,scale=480:-1" -q:v 2 "$OUTPUT_DIR/frame_%04d.jpg" 2>/dev/null
echo "✅ 已提取到: $OUTPUT_DIR"
ls -la "$OUTPUT_DIR"
;;
audio)
OUTPUT="${VIDEO_PATH%.*}.mp3"
echo "🎵 正在提取音频..."
"$FFMPEG" -i "$VIDEO_PATH" -vn -acodec libmp3lame -q:a 2 "$OUTPUT" 2>/dev/null
echo "✅ 已保存: $OUTPUT"
;;
subtitle)
OUTPUT="${VIDEO_PATH%.*}.srt"
if "$FFMPEG" -i "$VIDEO_PATH" -map 0:s:0 "$OUTPUT" 2>/dev/null; then
echo "✅ 字幕已提取: $OUTPUT"
else
echo "⚠️ 未找到内嵌字幕,尝试音频转写需要 Whisper"
fi
;;
*)
echo "未知操作: $ACTION"
echo "可用: info, frames, audio, subtitle"
exit 1
;;
esac
info 操作,输出结构化的视频参数摘要。frames/audio/subtitle 操作,明确告知输出文件的路径,并总结内容。