




















调研时间:2026-02-08 信息来源:Google AI 官方文档、Google Developers Blog、GitHub python-genai SDK
| 模型 | ID | 输入上限 | 输出上限 | 发布日期 |
|---|---|---|---|---|
| Gemini 3 Pro | gemini-3-pro-preview | 1M tokens | 64k tokens | 2025-11-18 |
| Gemini 3 Flash | gemini-3-flash-preview | 1M tokens | 64k tokens | 2025-12-17 |
| Gemini 3 Pro Image | gemini-3-pro-image-preview | 65k tokens | 32k tokens | 2025-11-20 |
注意:当前都还是 preview 状态,模型名不是 gemini-3-pro,而是 gemini-3-pro-preview。
| 格式 | MIME 类型 |
|---|---|
| MP4 | video/mp4 |
| MPEG | video/mpeg |
| MOV | video/mov |
| AVI | video/avi |
| FLV | video/x-flv |
| MPG | video/mpg |
| WebM | video/webm |
| WMV | video/wmv |
| 3GPP | video/3gpp |
| 上传方式 | 大小上限 | 适用场景 |
|---|---|---|
| 内联上传(inline) | 20MB(单文件),100MB(请求总大小) | 短视频、快速测试 |
| File API 上传 | 2GB(单文件) | 长视频、大文件 |
| 项目总存储 | 20GB | 所有上传文件的总和 |
| 分辨率模式 | 最大时长(1M 上下文窗口) |
|---|---|
| 默认分辨率 | 约 1 小时 |
| 低分辨率(media_resolution_low) | 约 3 小时 |
Gemini 3 Pro 在视频理解方面能做以下事情:
| 能力 | 说明 | 示例 Prompt |
|---|---|---|
| 内容摘要 | 总结视频的主要内容 | "Summarize this video in 3 bullet points." |
| 时间戳定位 | 识别关键时刻并标注时间 | "List the key moments with timestamps." |
| 画面描述 | 逐帧/逐场景描述视觉内容 | "Describe the visual scenes in this video." |
| 音频转录 | 转录视频中的语音内容 | "Transcribe the audio from this video." |
| 视觉+音频联合分析 | 同时理解画面和声音 | "Describe both visual and audio events with timestamps." |
| 特定时间点提问 | 对视频某个时间点提问 | "What happens at 01:15?" |
| 视频片段截取分析 | 只分析指定时间范围 | 使用 videoMetadata 的 start_offset 和 end_offset |
| 多视频对比 | 比较多个视频内容 | 一个请求放入多个视频 |
| 分辨率模式 | 每帧 Token | 音频 Token | 总计约 |
|---|---|---|---|
| 默认分辨率 | 258 tokens/帧 | 32 tokens/秒 | 约 300 tokens/秒 |
| 低分辨率 | 66 tokens/帧 | 32 tokens/秒 | 约 100 tokens/秒 |
默认采样率:1 帧/秒(FPS),音频 1Kbps 单声道。
Token 成本估算示例(1 分钟视频):
| 分辨率模式 | Token 数 | Gemini 3 Pro 成本 | Gemini 3 Flash 成本 |
|---|---|---|---|
| 默认 | ~18,000 tokens | ~$0.036 | ~$0.009 |
| 低分辨率 | ~6,000 tokens | ~$0.012 | ~$0.003 |
| 模型 | 输入价格(≤200k) | 输出价格(≤200k) | 输入价格(>200k) | 输出价格(>200k) |
|---|---|---|---|---|
| gemini-3-pro-preview | $2.00/1M tokens | $12.00/1M tokens | $4.00/1M tokens | $18.00/1M tokens |
| gemini-3-flash-preview | $0.50/1M tokens | $3.00/1M tokens | - | - |
Gemini 3 Flash 有免费版(Free Tier),输入输出都免费,适合测试。
Batch API 价格减半(Pro: $1.00/$6.00,Flash: $0.25/$1.50)。
import os
import time
from google import genai
from google.genai import types
# 初始化客户端
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
# ========== 第1步:上传视频 ==========
print("正在上传视频...")
video_file = client.files.upload(file="path/to/video.mp4")
print(f"上传完成:{video_file.name}")
print(f"当前状态:{video_file.state}")
# ========== 第2步:等待处理完成 ==========
# 视频上传后需要服务端处理(转码、提取帧等)
# 必须等到 state 变为 "ACTIVE" 才能使用
while not video_file.state or video_file.state.name != "ACTIVE":
print(f"处理中... 当前状态:{video_file.state}")
time.sleep(5)
video_file = client.files.get(name=video_file.name)
print("视频处理完成,可以开始分析")
# ========== 第3步:分析视频 ==========
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=[video_file, "请详细描述这个视频的内容,包括关键时间点。"]
)
print(response.text)
# 查看文件信息
file_info = client.files.get(name=video_file.name)
print(f"文件名:{file_info.name}")
print(f"大小:{file_info.size_bytes}")
print(f"状态:{file_info.state}")
# 列出所有已上传的文件
for f in client.files.list():
print(f"{f.name} - {f.state}")
# 手动删除文件(不删除则48小时后自动清除)
client.files.delete(name=video_file.name)
pip install google-genai python-dotenv
GOOGLE_API_KEY=你的API密钥
API 密钥获取地址:https://aistudio.google.com/apikey
"""
Gemini 3 Pro 视频分析完整示例
使用 google-genai SDK
"""
import os
import time
from dotenv import load_dotenv
from google import genai
from google.genai import types
load_dotenv()
# 初始化
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
MODEL = "gemini-3-pro-preview" # 或 "gemini-3-flash-preview"(更便宜)
def upload_and_wait(file_path: str) -> object:
"""上传视频并等待处理完成"""
print(f"正在上传: {file_path}")
video_file = client.files.upload(file=file_path)
print(f"上传成功: {video_file.name}")
# 轮询等待处理完成
while not video_file.state or video_file.state.name != "ACTIVE":
print(f" 处理中... ({video_file.state})")
time.sleep(5)
video_file = client.files.get(name=video_file.name)
print("处理完成")
return video_file
def analyze_video(video_file, prompt: str) -> str:
"""用指定 prompt 分析视频"""
response = client.models.generate_content(
model=MODEL,
contents=[video_file, prompt]
)
return response.text
# ===== 主流程 =====
if __name__ == "__main__":
video = upload_and_wait("path/to/your_video.mp4")
# 场景1:视频内容摘要
summary = analyze_video(video,
"请用中文总结这个视频的主要内容,分3个要点。"
)
print("=== 内容摘要 ===")
print(summary)
# 场景2:带时间戳的关键事件
events = analyze_video(video,
"列出视频中的关键事件,每个事件标注时间戳(MM:SS格式),用中文描述。"
)
print("\n=== 关键事件 ===")
print(events)
# 场景3:音频转录
transcript = analyze_video(video,
"请转录视频中的所有语音内容,标注时间戳。如果有多个说话人,请区分。"
)
print("\n=== 语音转录 ===")
print(transcript)
# 用完后清理
client.files.delete(name=video.name)
print("\n文件已删除")
"""适合短视频、快速分析,无需 File API"""
import os
from dotenv import load_dotenv
from google import genai
from google.genai import types
load_dotenv()
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
# 直接读取视频字节
video_bytes = open("short_clip.mp4", "rb").read()
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=types.Content(
parts=[
types.Part(
inline_data=types.Blob(
data=video_bytes,
mime_type="video/mp4"
)
),
types.Part(text="这个视频讲了什么?用中文回答。")
]
)
)
print(response.text)
"""直接分析 YouTube 视频,无需下载"""
import os
from dotenv import load_dotenv
from google import genai
from google.genai import types
load_dotenv()
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=types.Content(
parts=[
types.Part(
file_data=types.FileData(
file_uri="https://www.youtube.com/watch?v=VIDEO_ID"
)
),
types.Part(text="请详细分析这个视频的内容、风格和目标受众。用中文回答。")
]
)
)
print(response.text)
"""只分析视频的指定时间段"""
import os
from dotenv import load_dotenv
from google import genai
from google.genai import types
load_dotenv()
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=types.Content(
parts=[
types.Part(
file_data=types.FileData(
file_uri="https://www.youtube.com/watch?v=VIDEO_ID"
),
video_metadata=types.VideoMetadata(
start_offset="120s", # 从第2分钟开始
end_offset="300s" # 到第5分钟结束
)
),
types.Part(text="总结这个片段中讨论的核心观点。")
]
)
)
print(response.text)
"""自定义 FPS 和分辨率,适合长视频降低成本"""
import os
import time
from dotenv import load_dotenv
from google import genai
from google.genai import types
load_dotenv()
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
# 上传视频
video_file = client.files.upload(file="long_lecture.mp4")
while not video_file.state or video_file.state.name != "ACTIVE":
time.sleep(5)
video_file = client.files.get(name=video_file.name)
# 使用低分辨率 + 自定义 FPS 分析
response = client.models.generate_content(
model="gemini-3-flash-preview",
config=types.GenerateContentConfig(
media_resolution="media_resolution_low" # 低分辨率,约100 tokens/秒
),
contents=types.Content(
parts=[
types.Part(
file_data=types.FileData(file_uri=video_file.uri),
video_metadata=types.VideoMetadata(fps=0.5) # 每2秒1帧,进一步省Token
),
types.Part(text="这是一个长讲座视频,请提取核心知识点,列成大纲。")
]
)
)
print(response.text)
"""让 Gemini 生成 SRT 格式字幕"""
import os
import time
from dotenv import load_dotenv
from google import genai
load_dotenv()
client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))
# 上传
video_file = client.files.upload(file="speech_video.mp4")
while not video_file.state or video_file.state.name != "ACTIVE":
time.sleep(5)
video_file = client.files.get(name=video_file.name)
# 生成 SRT 字幕
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=[
video_file,
"""请转录这个视频中的所有语音,并输出为标准 SRT 字幕格式。
要求:
1. 每条字幕不超过2行,每行不超过40个字符
2. 时间戳精确到秒(HH:MM:SS,mmm 格式)
3. 保留说话人的语气词和停顿
4. 如果有多个说话人,在每条字幕前标注说话人
示例格式:
1
00:00:01,000 --> 00:00:03,500
大家好,欢迎来到今天的分享
2
00:00:04,000 --> 00:00:07,200
今天我们要讨论的主题是AI视频分析
"""
]
)
# 保存为 SRT 文件
with open("output.srt", "w", encoding="utf-8") as f:
f.write(response.text)
print("字幕已保存到 output.srt")
contents 数组中,视频 Part 在前,文本 Part 在后"00:05 处发生了什么?"视频摘要
请用3-5个要点总结这个视频的核心内容。每个要点包含时间范围和关键信息。
关键事件+时间戳
列出视频中的所有关键事件,按时间顺序排列。
格式:[MM:SS] 事件描述
重点关注:场景变化、重要对话、关键动作。
视觉+音频联合分析
Describe the key events in this video, providing both audio and visual details.
Include timestamps for salient moments.
用中文输出。
音频转录+视觉描述
Transcribe the audio from this video, giving timestamps for salient events in the video.
Also provide visual descriptions.
请用中文输出转录内容。
对比分析
观看这个视频后,请从以下维度分析:
1. 内容质量(信息密度、论证逻辑)
2. 表达方式(语速、情绪、肢体语言)
3. 制作水平(画面、剪辑、配乐)
4. 目标受众和适用场景
教学视频知识提取
这是一个教学视频,请:
1. 提取所有核心知识点,组织成大纲
2. 标注每个知识点出现的时间位置
3. 总结教学方法和讲解顺序
4. 指出可能存在的知识疏漏或错误
media_resolution 参数可设为 media_resolution_low / media_resolution_medium / media_resolution_highthinking_level 参数可设为 low(快速)或 high(深度推理,默认)Gemini 3 新增的 media_resolution 参数可以精确控制视觉处理的 Token 分配:
| 级别 | 图片 Token | 视频帧 Token | 适用场景 |
|---|---|---|---|
media_resolution_low | 280 tokens | ~70 tokens | 长视频、成本敏感、大致理解 |
media_resolution_medium | 560 tokens | ~140 tokens | 平衡模式 |
media_resolution_high | 1,120 tokens | ~280 tokens | 需要读取细节文字、小物体识别 |
使用方式:
response = client.models.generate_content(
model="gemini-3-pro-preview",
config=types.GenerateContentConfig(
media_resolution="media_resolution_high" # 高分辨率,看细节
),
contents=[video_file, "读取视频中出现的所有文字内容。"]
)
| 维度 | Gemini 2.5 Pro | Gemini 3 Pro |
|---|---|---|
| 模型 ID | gemini-2.5-pro | gemini-3-pro-preview |
| Video-MMMU | 较低 | 87.6% |
| MMMU-Pro | 较低 | 81% |
| 视频 Token 编码 | Pan and Scan | 可变序列长度(更高效) |
| 默认 Token/秒 | 较高 | 约 300 tokens/秒 |
| 低分辨率 Token/秒 | - | 约 100 tokens/秒 |
| 跨帧上下文 | 逐帧独立分析 | 理解帧间上下文关系 |
| 长上下文质量 | 长序列下质量下降 | 更好地利用长上下文 |
| media_resolution 控制 | 无 | 支持 low/medium/high |
| 每请求视频数 | 最多10个 | 最多10个 |
| 最大视频时长 | 1小时 | 1小时(默认),3小时(低分辨率) |
| Thinking Level | 不支持 | 支持 low/high |
| 输入价格 | $1.25/1M | $2.00/1M |
核心升级总结:
media_resolution 参数,可以灵活控制精度与成本| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 测试/原型开发 | gemini-3-flash-preview | 有免费版,速度快 |
| 深度视频分析 | gemini-3-pro-preview | 理解能力最强 |
| 长视频(>30分钟) | Flash + 低分辨率 | 成本可控 |
| 需要读取视频中文字 | Pro + 高分辨率 | 细节识别更好 |
media_resolution_low 处理长视频,Token 降到 ~100/秒videoMetadata 的 start/end offset 只分析需要的片段此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。