ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

video-analyzer 视频分析指南:一条命令把会议录像变成结构化文字摘要

2026/8/22 21:56:16 拓冰建站 浏览量
video-analyzer 视频分析指南:一条命令把会议录像变成结构化文字摘要 video-analyzer 视频分析指南一条命令把会议录像变成结构化文字摘要【免费下载链接】video-analyzerAnalyze videos using LLMs, Computer Vision and Automatic Speech Recognition项目地址: https://gitcode.com/gh_mirrors/vi/video-analyzer收件箱里压着一段两小时的会议录像下班前你得知道里面定了什么、谁领了什么活。手动拉进度条不是办法video-analyzer 就是干这个的它先用 Whisper 把音频转成文字再用视觉大模型挑出关键帧逐帧描述最后把两部分合成一份写进 JSON 的视频摘要全程可以本地离线跑完视频不出机器。离线跑通第一条命令这节解决装什么、敲哪几条命令能出结果的问题。依赖只有两个Python 3.11 以上和 FFmpeg抽音频用Linux 下sudo apt install ffmpegmacOS 用 brewWindows 用 choco 都行。如果你打算在本地跑视觉模型机器还需要至少 16GB 内存建议 32GB、12GB 显存的 GPU或 32GB 统一内存的 Apple 芯片走云端 API 的话这条可以忽略。克隆仓库并装进虚拟环境git clone https://gitcode.com/gh_mirrors/vi/video-analyzer cd video-analyzer python3 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install .默认走本地 Ollama先把视觉模型拉下来并启动服务ollama pull llama3.2-vision ollama serve然后正式分析一条命令就够video-analyzer meeting.mp4跑完之后output 目录里有什么这节解决结果长什么样、该怎么读的问题。所有结果落在output/analysis.json里四个区块各管一事metadata这次用了什么模型、抽了多少帧frames_extracted、转写是否成功transcription_successful、检测到的音频语言transcript全文加上带start/end时间戳的分段找谁在什么时候说了什么看这里frame_analyses每个关键帧一份描述。默认提示词会按场景 / 动作 / 新出现的元素 / 与上一帧的衔接四段来写而且每一帧的分析都带着前面所有帧的记录所以描述是连贯的不是一堆孤立画面video_description最终合成的整段视频摘要。仓库里有一份完整样例 docs/sample_analysis.json最终描述大概是这样开头的The video begins with a person with long blonde hair, wearing a pink t-shirt and yellow shorts, standing in front of a black plastic tub or container on wheels...注意跑完后output/下的frames/目录和audio.wav会被自动清理只留 JSON想留帧图片就加--keep-frames。上图是 docs/DESIGN.md 里的三阶段流程视频先经过 Transcribe 和 Frame Selection当前帧加上此前所有帧的描述一起送给 LLM Server 做 Describe Frames最后 Describe Video 把全部帧描述和转写合成整段摘要过程产物都写进 analysis.json。️ 长视频别硬跑五个最影响结果的开关这节解决视频变长、需求变具体时哪些参数值得调的问题。参数作用典型用法--duration只处理前 N 秒先看开头十分钟--duration 600--max-frames限制送进模型的帧数且是全片均匀采样不是只取前 N 帧控耗时--max-frames 50--whisper-model转写模型大小默认 medium环境吵换large赶时间换tiny--prompt给分析附加一个具体问题提取会议决策和待办--language固定转写语言自动检测不准时手动指定一段两小时的讲座想先试水质量这样调video-analyzer long_lecture.mp4 \ --duration 600 \ --max-frames 50 \ --whisper-model large \ --prompt 提取教学步骤和关键操作要点 \ --keep-frames不想每次敲参数可以写进config/config.json优先级是命令行 用户配置 默认值config/default_config.json。其中控制关键帧的frames段长这样frames: { per_minute: 60, analysis_threshold: 10.0, min_difference: 5.0, max_count: 30 }per_minute按视频时长估算目标帧数analysis_threshold/min_difference是帧间灰度差值的打分门槛变化够大才算关键帧max_count是最终上限。所有字段的完整说明在 docs/USAGES.md。跑到一半断了续跑和换云端这节解决本地任务中断或太慢时怎么办的问题。流程分三阶段抽帧转写 → 逐帧分析 → 合成描述用--start-stage可以从中间接上阶段 1 跑完崩了就--start-stage 2直接从逐帧分析开始只想换个提示词重跑最终摘要--start-stage 3即可。本地显存吃紧时可以换成任意 OpenAI 兼容接口video-analyzer meeting.mp4 \ --client openai_api \ --api-key your-key \ --api-url https://openrouter.ai/api/v1 \ --model meta-llama/llama-3.2-11b-vision-instruct:freeOpenRouter 上有免费的 Llama 3.2 11B 视觉模型模型名加:free后缀。转写本身也可以丢给 GPU--device cuda。让输出更符合你的口味调提示词这节解决默认的描述风格不贴你的业务场景的问题。驱动流程的是两个提示词文件video_analyzer/prompts/frame_analysis/frame_analysis.txt逐帧记录要求现在时、只写看到的、不脑补和frame_analysis/describe.txt最终合成。想换风格仓库里有个现成的调优子包video-analyzer-tune思路是给几个你改好的理想输出让它自己找更好的提示词DSPy MIPROv2pip install video-analyzer-tune video-analyzer my_video.mp4 --keep-frames然后编辑output/analysis.json把video_description.response改成你心目中理想的最终描述必改顺手把几条frame_analyses[i].response也改成理想写法建议。再建一个training_data.json把每个改过的输出目录列进examples视频给得越多效果越好最后跑 tuner产出的提示词是新文件通过配置指向它即可主包不受影响。它看不见的部分这节说清楚边界免得你对着结果找 bug。关键帧是靠帧间差值选的所以 docs/DESIGN.md 明确列了几个盲区采样间隔之间发生的画面会漏掉快速切换的镜头可能只留一帧--max-frames均匀采样时也会跳过部分变化大的瞬间。换句话说它擅长讲清楚视频里发生了什么不适合做精确到帧的事件检测。音频质量差到置信度不达标时转写会被直接跳过描述只基于画面。输出就是单个 analysis.json没有检索、切片导出这类后处理。仓库里还有两个可选子项目带网页界面的video-analyzer-ui以及上面提到的video-analyzer-tune。下一步拿一段 5 分钟以内的短视频用默认参数跑一遍读一遍analysis.json再决定调哪些开关。完整参数表和配置说明见 docs/USAGES.md。【免费下载链接】video-analyzerAnalyze videos using LLMs, Computer Vision and Automatic Speech Recognition项目地址: https://gitcode.com/gh_mirrors/vi/video-analyzer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考