安全扫描
OpenClaw
可疑
medium confidence该技能指令与声明用途(ffmpeg 视频转 GIF)一致,但存在未声明环境变量与元数据不一致等小问题,使用前需澄清。
评估建议
该技能看似能完成声明功能(用 ffmpeg 把视频转 GIF),但安装前请:1) 确认宿主已安装 ffmpeg 与 ffprobe(SKILL.md 默认存在);2) 提供明确输入/输出路径——示例用 $INPUT_FILE 与 $OUTPUT_FILE,但注册表未声明;3) 先用非敏感/示例文件测试,因其会执行 shell 并访问本地文件;4) 要求发布者修正元数据不一致(声明所需二进制/环境)并确认 SKILL.md 与注册表版本一致。若不希望代理执行任意 shell,请关闭自主调用或仅限手动调用。...详细分析 ▾
ℹ 用途与能力
技能名称/描述与运行时指令一致:文档说明用 ffmpeg/ffprobe 将 webm/mp4 转 GIF、提供预设并验证输出。但注册表元数据未列出所需二进制,而 SKILL.md 多次依赖 ffmpeg/ffprobe,该遗漏属于声明需求不一致。
ℹ 指令范围
SKILL.md 包含具体 shell 片段,检查本地文件、运行 file/ffprobe/ffmpeg 并读取环境变量($INPUT_FILE、$OUTPUT_FILE)。这在转换工具范围内,但 SKILL.md 预期这些环境变量存在,而技能元数据未声明——代理需显式输入路径。指令也使用退出码并建议安装 ffmpeg;无向外传输数据指令。
✓ 安装机制
此为纯指令技能,无安装规范与代码文件,最大限度降低安装时风险(技能本身不下载或写入任何内容)。
ℹ 凭证需求
技能不请求凭据,无需网络认证。但运行示例依赖环境变量(INPUT_FILE、OUTPUT_FILE),而注册表元数据的 requires.env 未声明,存在不匹配,应修复以便调用方知晓所需输入。未请求任何敏感密钥。
✓ 持久化与权限
always:false,不请求持久化安装或修改。技能确实运行本地 shell 命令(符合预期),但未请求提升平台权限或修改其他技能/配置。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/20
- 首次发布 gif-generation 技能,用于将视频文件(webm/mp4)后处理为优化 GIF。 - 支持可配置质量设置,包括调色板生成与抖动以改善输出效果。 - 包含分步流程:输入验证、ffmpeg 检查、转换执行与输出验证。 - 提供故障排除提示与常用转换预设,适配不同场景。 - 详细文档涵盖优化选项及在体积与质量间取得平衡的最佳实践。
● 无害
安装命令
点击复制官方npx clawhub@latest install nm-scry-gif-generation
镜像加速npx clawhub@latest install nm-scry-gif-generation --registry https://cn.longxiaskill.com
技能文档
Night Market Skill — ported from claude-night-market/scry. For the full experience with agents, hooks, and commands, install the Claude Code plugin. ## 目录 - 概述 - 必需的 TodoWrite 项 - 流程 - 步骤 1:验证输入文件 - 步骤 2:检查 ffmpeg 安装 - 步骤 3:执行转换 - 基础转换(快速,文件较大) - 高质量带调色板生成(推荐) - 最高质量带抖动 - 优化选项 - 常用预设 - 步骤 4:验证输出 - 退出条件 - 故障排除 - 输出文件过大 - 色带 - 转换缓慢 # GIF 生成技能 对视频文件(webm/mp4)进行后处理,生成经优化的 GIF 输出,并可配置质量设置。 ## 何时使用 - 将录屏转换为动画 GIF 格式 - 创建轻量级演示动画 ## 何时不要使用 - 需要高质量视频输出 —— 使用完整录屏工具 - 仅需静态图像而无动画需求 ## 概述 本技能负责将视频录屏(通常来自浏览器自动化)转换为 GIF 格式。提供多种质量预设和优化选项,以平衡文件大小与视觉质量。 ## 必需的 TodoWrite 项 ``- 验证输入视频文件存在 - 检查 ffmpeg 安装 - 执行 GIF 转换 - 验证输出并报告结果`验证: 使用--help标志运行命令以确认可用性。 ## 流程 ### 步骤 1:验证输入文件 确认源视频文件存在且为受支持格式:`bash # 检查文件是否存在并获取信息 if [[ -f "$INPUT_FILE" ]]; then file "$INPUT_FILE" ffprobe -v quiet -show_format -show_streams "$INPUT_FILE" 2>/dev/null | head -20 else echo "Error: Input file not found: $INPUT_FILE" exit 1 fi`验证: 使用--help标志运行命令以确认可用性。 受支持输入格式:.webm、.mp4、.mov、.avi### 步骤 2:检查 ffmpeg 安装 验证 ffmpeg 可用:`bash if ! command -v ffmpeg &> /dev/null; then echo "Error: ffmpeg is not installed" echo "Install with: sudo apt install ffmpeg (Linux) or brew install ffmpeg (macOS)" exit 1 fi ffmpeg -version | head -1`验证: 使用--help标志运行命令以确认可用性。 ### 步骤 3:执行转换 根据质量需求选择合适的转换命令: #### 基础转换(快速,文件较大)`bash ffmpeg -i input.webm -vf "fps=10,scale=800:-1" output.gif`验证: 使用--help标志运行命令以确认可用性。 #### 高质量带调色板生成(推荐)`bash ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif`验证: 使用--help标志运行命令以确认可用性。 #### 最高质量带抖动`bash ffmpeg -i input.webm -vf "fps=15,scale=1024:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=256:stats_mode=single[p];[s1][p]paletteuse=dither=bayer:bayer_scale=5" output.gif`验证: 使用--help标志运行命令以确认可用性。 ### 优化选项 | 选项 | 描述 | 推荐值 | |--------|-------------|-------------------| |fps| 每秒帧数 | 10-15 流畅,5-8 文件更小 | |scale| 宽度像素(-1 保持宽高比) | 800 用于网页,480 用于缩略图 | |flags=lanczos| 高质量缩放算法 | 始终使用以获得最佳质量 | |palettegen| 生成优化调色板 | 用于对质量要求高的输出 | |dither| 抖动算法 |bayer用于图案,floyd_steinberg用于平滑 | ### 常用预设`bash # 缩略图(小,加载快) ffmpeg -i input.webm -vf "fps=8,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" thumbnail.gif # 文档(平衡) ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" docs.gif # 高保真演示 ffmpeg -i input.webm -vf "fps=15,scale=1024:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=256[p];[s1][p]paletteuse" demo.gif`验证: 使用--help标志运行命令以确认可用性。 ### 步骤 4:验证输出 确认转换成功并报告指标:`bash if [[ -f "$OUTPUT_FILE" ]]; then echo "GIF generated successfully: $OUTPUT_FILE" # 报告文件大小 SIZE=$(du -h "$OUTPUT_FILE" | cut -f1) echo "File size: $SIZE" # 获取尺寸与帧数 ffprobe -v quiet -select_streams v:0 -show_entries stream=width,height,nb_frames -of csv=p=0 "$OUTPUT_FILE" else echo "Error: GIF generation failed" exit 1 fi`验证: 使用--help标志运行命令以确认可用性。 ## 退出条件 - [ ] 输入文件已验证为存在的视频格式 - [ ] ffmpeg 已确认可用 - [ ] 已在指定输出路径创建 GIF 文件 - [ ] 输出文件大小已报告给用户 - [ ] 转换过程中无 ffmpeg 错误 ## 故障排除 ### 输出文件过大 降低质量设置:`bash # 降低 fps 与分辨率 ffmpeg -i input.webm -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" smaller.gif`验证: 使用--help标志运行命令以确认可用性。 ### 色带 使用抖动:`bash ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse=dither=floyd_steinberg" smooth.gif`验证: 使用--help标志运行命令以确认可用性。 ### 转换缓慢 使用不带调色板生成的基础转换以提速:`bash ffmpeg -i input.webm -vf "fps=10,scale=800:-1" quick.gif`验证: 使用--help` 标志运行命令以确认可用性。