用AI分析家庭视频

我想给家庭视频添加标签,以便更方便地搜索。当时没有一个很好的模型可以从视频中生成描述性文本,所以我搭建了一个LLM管道,将图像作为输入来生成视频的摘要。我希望使用完全本地化的解决方案,这样就不需要将个人视频发送到云提供商,并且因为视频通常比较大,而且不是总能获得高带宽互联网连接。
这就是我最终搭建的内容——https://github.com/byjlw/video-analyzer/
它的工作原理是使用whisper转录音频,使用OpenCV选择有趣的/不同的帧,然后使用LLM描述每个帧中的信息。最后,它将所有帧的描述输入以总结整个视频。

有关设计和工作原理的更多详细信息,请参阅存储库中的DESIGN.md
1、要求
要使用它,你需要:
- Python 3.10–3.12
- FFMPEG - 安装说明在底部
如果你希望完全在本地运行,还需要安装Ollama。
如果你的电脑不够强大,无法在本地运行LLM,你可以使用OpenAI的API,openrouter.ai或几乎任何主要的LLM服务。我倾向于使用openrouter,因为它是一个一站式服务,涵盖了几乎所有模型。
2、分析视频
要开始,请打开计算机上的终端
我喜欢在使用Python时使用虚拟环境以避免包冲突
在Mac或Linux上输入:
python -m venv .venv
source .venv/bin/activate
在Windows上输入:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
3、使用本地LLM(选项A)
如果你已经安装了Ollama并希望在本地运行,请确保通过运行以下命令下载llama 3.2 vision模型:
ollama pull llama3.2-vision
现在要使用它运行:
video-analyzer <你的视频文件路径>
4、使用openrouter(选项B)
要使用openrouter运行,请运行:
video-analyzer <你的视频文件路径> --api-key <你的密钥>
你可以在openrouter.ai注册并购买一些积分来获取openrouter密钥。这相对便宜,所以不需要太多。
根据视频大小的不同,可能需要一段时间,但完成后你会在控制台看到摘要,并且在输出目录中会有一个详细的分析,包括每一帧的细节。
video-analyzer video.MOV --api-key sk-or-v1-ea23acdaf83jfj3f0a42dsdef41we3f9096ae35456cf7cdss232dce33edde2da

持续时间:11.76秒(根据帧时间戳计算)
**开场描述**
视频开始时是一片森林背景,中间有一只小黑熊站立,背对着镜头。熊蹲伏着,头低垂,这是本帧中唯一的新增对象。森林背景在整个视频中保持一致。
**叙事发展**
随着视频的进行,熊在每帧中稍微向右移动一点,头仍然低垂,身体蹲伏。熊的移动是每帧中唯一的新增信息,环境中没有显著变化。熊继续向右移动,姿势和位置没有变化。周围环境保持不变,没有新增对象或变化。
**技术元素**
摄像机似乎固定不动,没有描述出显著的移动。编辑过渡未明确提及,但视频似乎是一个连续镜头。没有显著的视觉效果或明显的灯光或构图变化。
**结束观察**
视频结束时,熊仍然向右移动,头低垂,身体蹲伏。森林背景保持不变,环境没有变化。熊的移动是最后一帧中唯一的新增信息。
注意:此摘要基于对第一帧的直接观察以及后续帧的详细记录。
5、定制和高级用法
你可以通过传递特定的问题来询问关于视频的具体内容:
--prompt "视频中有哪些物品?"

video-analyzer cat.mp4 --prompt "视频中有哪些物品?"
**开场描述**
视频开始时,一只白棕相间的猫坐在不锈钢冰箱和木制橱柜前的地板上。猫脖子上戴着一条红色丝巾,似乎在抬头看什么东西。这一初始场景和角色描述为视频其余部分奠定了基调和背景。
**叙事发展**
随着视频的进行,猫突然从坐着的姿势变为站立,前爪抬起,嘴巴张开,好像准备跳起来或扑向某个东西。这一刻展示了猫的敏捷和顽皮。猫在几个帧中保持这种姿势,红色丝巾仍然可见。摄像机从不同角度捕捉了这一瞬间,突出了猫的突然动作和姿势变化。
**技术元素**
摄像机似乎固定不动,没有描述出显著的移动。编辑过渡未具体说明,但视频似乎是线性呈现的,每个帧都建立在前一个帧的基础上。没有提到显著的视觉效果,光线和构图在整个过程中保持一致。
**结束观察**
视频以猫坐在地板上结束,戴着红色丝巾,似乎准备跳起来或扑向某个东西。猫最后的行为和姿势与最初的描述一致,展示了它的顽皮和敏捷。
6、编辑提示以影响分析和输出
有许多命令行参数可以提供以改变分析方式。你可以在存储库中的USAGES.md中找到完整的列表。
有两个提示驱动分析。你可以修改它们以调整输出和结构以满足你的需求。位置在配置文件中,因此你可以更改该值以指向你想要使用的提示文件或编辑默认安装的那些。
如果你不知道包安装在哪里,最简单的方法是设置日志级别为DEBUG,你将在输出中看到位置。它会类似于:
video-analyzer myvideo.mp4 --log-level DEBUG
/Users/username/video-analyzer/.venv/lib/python3.11/site-packages/video_analyzer/config/default_config.json
/Users/username/video-analyzer/.venv/lib/python3.11/site-packages/video_analyzer/prompts/frame_analysis/frame_analysis.txt
/Users/username/video-analyzer/.venv/lib/python3.11/site-packages/video_analyzer/prompts/frame_analysis/describe.txt
通过访问GitHub页面https://github.com/byjlw/video-analyzer可以找到更多关于如何自定义和使用此包的信息。
7、安装FFMPEG
要检查FFMPEG是否已安装,请运行ffmpeg –version
如果收到错误消息,则表示未安装。
Windows
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')); choco install ffmpeg -y
Mac
brew install ffmpeg
原文链接:Analyzing Videos using AI
汇智网翻译整理,转载请标明出处
