一个基于Gradio的视频caption生成系统,支持本地ollama模型和在线API模型,提供帧级和视频片段级的caption功能。
- 视频上传: 支持多种视频格式
- 双模型支持:
- Ollama本地模型(如llava、qwen-vl等)
- 在线API模型(OpenAI、Claude等)
- 双caption模式:
- 帧模式:抽取视频帧进行逐帧分析
- 视频片段模式:直接分析视频片段
- 自定义配置: 可调节抽帧频率、片段时长、提示词等
- 现代化Gradio界面
- 实时连接状态检测
- 临时文件自动清理
- 详细的错误处理
- Python 3.8+
- OpenCV
- FFmpeg(用于视频处理)
pip install -r requirements.txt如果使用本地模型,请先启动ollama服务:
ollama serve下载支持视觉的模型:
# 下载llava模型
ollama pull llava
# 或下载qwen-vl模型
ollama pull qwen-vlpython app.py应用将在 http://localhost:7862 启动。
- 上传视频: 在左侧上传视频文件
- 选择模型:
- Ollama本地模型:选择已安装的视觉模型
- 在线API:填入API密钥、URL和模型名
- 配置参数: 根据需要选择caption模式和相关参数
- 自定义提示词: 编辑prompt来指导模型生成特定风格的caption
- 生成Caption: 点击生成按钮开始处理
- 从视频中按指定频率抽取帧
- 适合需要详细分析每个场景的情况
- 可配置抽帧频率(0.1-5.0帧/秒)和最大帧数(1-30帧)
- 直接提取视频片段进行分析
- 适合支持视频输入的模型(如qwen-vl、llava-one-vision)
- 可配置起始时间和片段时长(1-10秒)
llava: Meta的视觉语言模型qwen-vl: 阿里的视觉语言模型llava-phi3: 基于Phi-3的视觉模型- 其他支持视觉的ollama模型
- GPT-4 Vision (OpenAI)
- Claude 3 (Anthropic)
- Qwen-VL (通义千问)
- 其他兼容OpenAI格式的视觉API
# 设置ollama服务地址(默认: http://localhost:11434)
export OLLAMA_HOST=http://your-ollama-server:11434# OpenAI
API Key: sk-your-openai-key
Base URL: https://api.openai.com
Model Name: gpt-4-vision-preview
# 自建API服务
API Key: your-api-key
Base URL: https://your-api-server.com
Model Name: qwen-vl-chat
请详细描述这些视频帧中发生的事情。包括:
1. 场景和环境描述
2. 人物和动作
3. 重要物体和元素
4. 情感和氛围
请用中文回答,内容要详细且有条理。
请观看这个视频片段并详细描述其中的内容,包括:
1. 整体场景和背景
2. 主要事件和动作序列
3. 人物表情和互动
4. 视觉效果和转场
5. 音响环境(如果有)
请提供一个连贯的描述,突出视频的核心内容。
-
Ollama连接失败
- 确保ollama服务正在运行
- 检查端口11434是否被占用
- 尝试重启ollama服务
-
API连接失败
- 检查API密钥是否正确
- 确认Base URL格式(需要包含协议如https://)
- 验证模型名称是否支持视觉功能
-
视频处理失败
- 确保已安装FFmpeg
- 检查视频格式是否支持
- 尝试转换为mp4格式
-
内存不足
- 减少最大帧数
- 缩短视频片段时长
- 降低抽帧频率
video-caption/
├── app.py # 主应用文件
├── video_processor.py # 视频处理模块
├── model_handler.py # 模型调用模块
├── requirements.txt # 依赖列表
└── README.md # 说明文档
欢迎提交Issue和Pull Request来改进这个项目!
MIT License