用途:分析本地视频文件,自动在小文件原生模型理解与大文件抽帧加转写两种模式间选择。
主要能力:analyze_video(path, question) 自动选模式;小于 native_size_limit_mb(默认20MB)时整段视频发送给支持视频的模型(默认 google/gemini-3.1-flash-lite),返回 analysis、model、tokens;超过阈值时用 ffmpeg 提取关键帧(≤60秒每2秒一帧,>60秒按场景切换检测,最多30帧)并用 Whisper 转写音频,返回 frame_paths、transcript、frame_count、duration_sec。get_config() 读取配置,get_video_info() 获取时长、尺寸、是否有音轨等元数据,不进行分析。
使用方式:脚本中从工作区根目录调用:cd /data/workspace/skills/video-analysis && python3 -c "from exports import analyze_video; ...",视频路径为工作区相对路径。或在 starchild-clawd 脚本中用 from core.skill_tools import video_analysis; video_analysis.analyze_video(...)。不要用带点的导入,目录名含连字符会语法错误;不要 exec 读取 analyze.py。提取模式下由代理把 frame_paths 作为图像附件、transcript 作为上下文交给当前聊天模型。
配置:编辑工作区 config/video-analysis.yaml,可覆盖 default_model、native_size_limit_mb(设为0总用提取,设为100总用原生)、extraction 下的 max_frames、short_video_interval_sec、scene_threshold、transcribe_audio。不要编辑 skills/video-analysis/config.yaml。
适用场景与限制:仅接受本地文件路径;链接(YouTube、TikTok、播客等)应改用 web_search、web-crawler.youtube_video 或 youtube_transcript、tiktok_transcript、scrape_markdown 等,不要下载媒体。转写文本只含语音,不能据此判断说话人。数据中心 IP 下载媒体易触发反爬,本地下载再分析仅在用户明确要求或直接提供文件时执行。配置了多个可选视频模型及别名,切换模型需修改配置。具体支持模型列表与平台兼容性以实际配置为准,资料未提供更完整的版本与许可信息。