名称: video-ad-analyzer
版本: 1.0.0
描述: 使用 Gemini Vision AI 从视频广告中提取并分析内容。支持帧提取、OCR 文本检测、音频转录和 AI 驱动的场景分析。适用于分析视频创意内容、提取叠加文本或生成逐场景描述。
使用 Google Gemini Vision 进行 AI 驱动的视频内容提取。
# Gemini Vision 必需
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
# 音频转录必需
# (同一服务账号需启用 Speech-to-Text API)
pip install opencv-python pillow easyocr ffmpeg-python google-cloud-speech vertexai google-api-python-client
系统还需安装 ffmpeg 和 ffprobe。
from scripts.video_extractor import VideoExtractor
from scripts.models import ExtractedVideoContent
import vertexai
from vertexai.generative_models import GenerativeModel
# 初始化 Vertex AI
vertexai.init(project="your-project-id", location="us-central1")
gemini_model = GenerativeModel("gemini-1.5-flash")
# 创建提取器
extractor = VideoExtractor(gemini_model=gemini_model)
# 分析视频
result = extractor.extract_content("/path/to/video.mp4")
print(f"时长: {result.duration}s")
print(f"场景数: {len(result.scene_timeline)}")
print(f"文本叠加数: {len(result.text_timeline)}")
print(f"转录文本: {result.transcript[:200]}...")
frames, timestamps, text_timeline, scene_timeline, thumbnail = extractor.extract_smart_frames(
"/path/to/video.mp4",
scene_interval=2, # 每 2 秒检查一次场景变化
text_interval=0.5 # 每 0.5 秒检查一次文本
)
# 也适用于图像
result = extractor.extract_content("/path/to/image.jpg")
print(result.scene_timeline[0]['description'])
ExtractedVideoContent(
video_path="/path/to/video.mp4",
duration=30.5,
transcript="分析结果如下...",
text_timeline=[
{"at": 0.0, "text": ["立即下载"]},
{"at": 5.5, "text": ["今日五折"]}
],
scene_timeline=[
{"timestamp": 0.0, "description": "女性使用手机应用..."},
{"timestamp": 2.0, "description": "产品功能展示..."}
],
thumbnail_url="/static/thumbnails/video_thumb.jpg",
extraction_complete=True
)
| 功能 | 描述 |
|---|---|
| 场景检测 | 基于直方图的变化检测(阈值=65) |
| OCR 置信度 | 分级阈值(高 0.5,低 0.3) |
| AI 校对 | Gemini 修正 OCR 错误 |
| 来源整合 | 智能合并 OCR 与 Vision 文本 |
| 原生视频 | 直接分析 <20MB 的文件 |
通过编辑 prompts/ 文件夹中的文件自定义 AI 行为:
scene_analysis.md - 帧分析提示词scene_reconciliation.md - 场景增强提示词