发布日期:2026-08-13 | 分类:AI工具教程
MemVid是GitHub上热门的开源AI视频记忆引擎。将长视频内容压缩为可检索的结构化知识库,通过自然语言查询视频中特定片段,实现"与视频对话"。支持时间戳精准定位、跨视频检索、多模态理解。曾登GitHub Trending日榜。
# 安装ffmpeg
# Windows
winget install Gyan.FFmpeg
# macOS
brew install ffmpeg
# Ubuntu
sudo apt install ffmpeg
# 安装MemVid
pip install memvid
# 或源码安装
git clone https://github.com/goldnead/MemVid.git
cd MemVid
pip install -e .
# config.yaml
model:
provider: openai
api_key: ${OPENAI_API_KEY}
model: gpt-5.6
embedding:
provider: openai
model: text-embedding-3-large
video:
chunk_duration: 30 # 视频分块时长(秒)
extract_keyframes: true # 提取关键帧
transcribe: true # 语音转文字
ocr: true # 画面文字识别
from memvid import MemVid
mv = MemVid(config="config.yaml")
# 索引单个视频
mv.index("meeting_2026-08-13.mp4")
# 索引多个视频
mv.index_batch([
"meeting_2026-08-13.mp4",
"lecture_python.mp4",
"podcast_ai.mp4"
])
# 索引完成后生成知识库
mv.build_index(output_dir="./video_kb/")
# 查询视频中特定内容
results = mv.search("会议上讨论的预算是多少?")
for result in results:
print(f"视频: {result.video}")
print(f"时间: {result.timestamp}") # 00:15:30
print(f"内容: {result.text}")
print(f"置信度: {result.score}")
print("---")
# 获取视频片段
clip = mv.get_clip("meeting_2026-08-13.mp4", "00:15:30", duration=30)
clip.save("budget_discussion.mp4")
# 与视频进行对话
chat = mv.chat("meeting_2026-08-13.mp4")
response = chat.ask("会议中谁提出了预算超支的问题?")
print(response.text)
print(f"来源: {response.sources}") # 引用时间戳
response = chat.ask("最后达成了什么结论?")
print(response.text)
# 启动REST API服务
mv.serve(host="0.0.0.0", port=8000)
# API调用
# POST /search
# {"query": "预算讨论", "videos": ["meeting_2026-08-13.mp4"]}
#
# POST /chat
# {"video": "meeting.mp4", "question": "谁迟到了?"}
#
# GET /clip/{video}/{timestamp}
# 返回视频片段
# 监控目录自动索引新视频
from memvid import VideoWatcher
watcher = VideoWatcher(
watch_dir="./videos/",
output_kb="./video_kb/",
config="config.yaml",
auto_index=True # 新视频自动索引
)
watcher.start()
会议录像检索、教学视频标注、监控视频分析、播客内容搜索、培训资料管理。
MemVid是GitHub上热门的开源AI视频记忆引擎。将长视频内容压缩为可检索的结构化知识库,通过自然语言查询视频中特定片段,实现"与视频对话"。支持时间戳精准定位、跨视频检索、多模态理解。曾登GitHub Trending日榜。