您可以向 Gemini 请求添加视频,以便执行涉及理解所含视频内容的任务。本页面介绍了如何使用 Google Cloud 控制台和 Vertex AI API,在 Vertex AI 中向发送给 Gemini 的请求添加视频。
支持的模型
下表列出了支持视频理解的模型:
| 模型 | 媒体详情 | MIME 类型 |
|---|---|---|
| Gemini 2.5 Flash(预览版) |
|
|
| Gemini 2.5 Flash-Lite(预览版) |
|
|
| Gemini 2.5 Flash-Lite |
|
|
| 支持 Live API 原生音频的 Gemini 2.5 Flash(预览版) |
|
|
| 支持 Live API 的 Gemini 2.0 Flash(预览版) |
|
|
| 支持图片生成的 Gemini 2.0 Flash(预览版) |
|
|
| Gemini 2.5 Pro |
|
|
| Gemini 2.5 Flash |
|
|
| Gemini 2.0 Flash |
|
|
| Gemini 2.0 Flash-Lite |
|
|
配额指标为 generate_content_video_input_per_base_model_id_and_resolution。
如需查看 Gemini 模型支持的语言列表,请参阅 Google 模型的模型信息。如需详细了解如何设计多模态提示,请参阅设计多模态提示。如果您正在寻找一种直接在移动应用和 Web 应用中使用 Gemini 的方法,请参阅适用于 Swift、Android、Web、Flutter 和 Unity 应用的 Firebase AI Logic 客户端 SDK。
向请求添加视频
您可以在向 Gemini 发送的请求中添加单个或多个视频,并且视频可以包含音频。
单个视频
以下各个标签页中的示例代码展示了标识视频中内容的不同方式。此示例适用于所有多模态 Gemini 模型。
控制台
如需使用 Google Cloud 控制台发送多模态提示,请执行以下操作:在 Google Cloud 控制台的 Vertex AI 部分中,进入 Vertex AI Studio 页面。
点击创建提示。
可选:配置模型和参数:
- 模型:选择一个模型。
可选:如需配置高级参数,请点击高级,然后按如下方式进行配置:
点击即可展开高级配置
Top-K:使用滑块或文本框输入 top-K 值。
top-K 可更改模型选择输出词元的方式。如果 top-K 设为1,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- Top-P:使用滑块或文本框输入 top-P 值。
系统会按照概率从最高到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。如需获得数量最小的变量结果,请将 top-P 设置为
0。 - 回答数量上限:使用滑块或文本框输入要生成的回答数量的值。
- 流式回答:启用此选项可在生成回答时输出回答。
- 安全过滤器阈值:选择您看到可能有害的回答的可能性的阈值。
- 启用接地:多模态提示不支持接地。
- 区域:选择您要使用的区域。
- 温度:使用滑块或文本框输入温度值。
The temperature is used for sampling during response generation, which occurs whenandtopPtopKare applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of0means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible.If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.
<li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.Specify a lower value for shorter responses and a higher value for potentially longer responses.
<li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences. </ul>
点击插入媒体,然后为文件选择一个来源。
上传
选择您要上传的文件,然后点击打开。
通过网址
输入要使用的文件的网址,然后点击插入。
YouTube
输入您要使用的 YouTube 视频的网址,然后点击插入。
您可以使用任何公开视频或由您用于登录 Google Cloud 控制台的账号所拥有的视频。
Cloud Storage
选择存储桶,接着从存储桶选择您要导入的文件,然后点击选择。
Google 云端硬盘
- 选择一个账号,并在您首次选择此选项时同意 Vertex AI Studio 访问您的账号。您可以上传多个文件,但总大小不得超过 10 MB。单个文件的大小不能超过 7 MB。
- 点击要添加的文件。
点击选择。
文件缩略图会显示在提示窗格中。 系统还会显示 token 总数。如果提示数据超过 token 限制,则 token 会被截断,并且不会用于处理数据。
在提示窗格中输入文本提示。
可选:如需查看 Token ID 到文本和 Token ID,请点击提示窗格中的 token 数量。
点击提交。
可选:如需将提示保存到我的提示,请点击 保存。
可选:如需获取提示对应的 Python 代码或 curl 命令,请点击 使用代码构建 > 获取代码。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
了解如何安装或更新 Go。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
了解如何安装或更新 Java。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
安装
npm install @google/genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的项目 ID。FILE_URI:要包含在提示中的文件的 URI 或网址。可接受的值包括:- Cloud Storage 存储桶 URI:对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。对于
gemini-2.0-flash和gemini-2.0-flash-lite,大小限制为 2 GB。 - HTTP 网址:文件网址必须可公开读取。您可以为每个请求指定一个视频文件、一个音频文件和最多 10 个图片文件。音频文件、视频文件和文档的大小不得超过 15 MB。
- YouTube 视频网址:YouTube 视频必须由您用于登录 Google Cloud 控制台的账号所拥有,或者是公开的。每个请求仅支持一个 YouTube 视频网址。
指定
fileURI时,您还必须指定文件的媒体类型 (mimeType)。 如果启用了 VPC Service Controls,则不支持为fileURI指定媒体文件网址。如果您在 Cloud Storage 中没有视频文件,则可以使用以下公开提供的文件:
gs://cloud-samples-data/video/animals.mp4,MIME 类型为video/mp4。要观看此视频,请打开示例 MP4 文件。- Cloud Storage 存储桶 URI:对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。对于
MIME_TYPE:在data或fileUri字段中指定的文件的媒体类型。可接受的值包括:点击即可展开 MIME 类型
application/pdfaudio/mpegaudio/mp3audio/wavimage/pngimage/jpegimage/webptext/plainvideo/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flv
TEXT:要包含在提示中的文本说明。 例如What is in the video?
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
EOF然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"
PowerShell
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
'@ | Out-File -FilePath request.json -Encoding utf8然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
请注意此示例网址中的以下内容:- 使用
generateContent方法请求在回答完全生成后返回回答。 为了降低真人观众对于延迟的感知度,请使用streamGenerateContent方法在生成回答时流式传输回答。 - 多模态模型 ID 位于网址末尾且位于方法之前(例如
gemini-2.0-flash)。此示例可能还支持其他模型。
带音频的视频
下面展示了如何总结包含音频的视频文件,并返回带有时间戳的章节。此示例适用于 Gemini 2.0。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:。FILE_URI:要包含在提示中的文件的 URI 或网址。可接受的值包括:- Cloud Storage 存储桶 URI:对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。对于
gemini-2.0-flash和gemini-2.0-flash-lite,大小限制为 2 GB。 - HTTP 网址:文件网址必须可公开读取。您可以为每个请求指定一个视频文件、一个音频文件和最多 10 个图片文件。音频文件、视频文件和文档的大小不得超过 15 MB。
- YouTube 视频网址:YouTube 视频必须由您用于登录 Google Cloud 控制台的账号所拥有,或者是公开的。每个请求仅支持一个 YouTube 视频网址。
指定
fileURI时,您还必须指定文件的媒体类型 (mimeType)。 如果启用了 VPC Service Controls,则不支持为fileURI指定媒体文件网址。如果您在 Cloud Storage 中没有视频文件,则可以使用以下公开提供的文件:
gs://cloud-samples-data/generative-ai/video/pixel8.mp4,MIME 类型为video/mp4。要观看此视频,请打开示例 MP4 文件。- Cloud Storage 存储桶 URI:对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。对于
MIME_TYPE:在data或fileUri字段中指定的文件的媒体类型。可接受的值包括:点击即可展开 MIME 类型
application/pdfaudio/mpegaudio/mp3audio/wavimage/pngimage/jpegimage/webptext/plainvideo/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flv
要包含在提示中的文本说明。例如,TEXT
Provide a description of the video. The description should also contain anything important which people say in the video.
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
EOF然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"
PowerShell
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
'@ | Out-File -FilePath request.json -Encoding utf8然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
请注意此示例网址中的以下内容:- 使用
generateContent方法请求在回答完全生成后返回回答。 为了降低真人观众对于延迟的感知度,请使用streamGenerateContent方法在生成回答时流式传输回答。 - 多模态模型 ID 位于网址末尾且位于方法之前(例如
gemini-2.0-flash)。此示例可能还支持其他模型。
控制台
如需使用 Google Cloud 控制台发送多模态提示,请执行以下操作:在 Google Cloud 控制台的 Vertex AI 部分中,进入 Vertex AI Studio 页面。
点击创建提示。
可选:配置模型和参数:
- 模型:选择一个模型。
可选:如需配置高级参数,请点击高级,然后按如下方式进行配置:
点击即可展开高级配置
Top-K:使用滑块或文本框输入 top-K 值。
top-K 可更改模型选择输出词元的方式。如果 top-K 设为1,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- Top-P:使用滑块或文本框输入 top-P 值。
系统会按照概率从最高到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。如需获得数量最小的变量结果,请将 top-P 设置为
0。 - 回答数量上限:使用滑块或文本框输入要生成的回答数量的值。
- 流式回答:启用此选项可在生成回答时输出回答。
- 安全过滤器阈值:选择您看到可能有害的回答的可能性的阈值。
- 启用接地:多模态提示不支持接地。
- 区域:选择您要使用的区域。
- 温度:使用滑块或文本框输入温度值。
The temperature is used for sampling during response generation, which occurs whenandtopPtopKare applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of0means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible.If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.
<li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.Specify a lower value for shorter responses and a higher value for potentially longer responses.
<li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences. </ul>
点击插入媒体,然后为文件选择一个来源。
上传
选择您要上传的文件,然后点击打开。
通过网址
输入要使用的文件的网址,然后点击插入。
YouTube
输入您要使用的 YouTube 视频的网址,然后点击插入。
您可以使用任何公开视频或由您用于登录 Google Cloud 控制台的账号所拥有的视频。
Cloud Storage
选择存储桶,接着从存储桶选择您要导入的文件,然后点击选择。
Google 云端硬盘
- 选择一个账号,并在您首次选择此选项时同意 Vertex AI Studio 访问您的账号。您可以上传多个文件,但总大小不得超过 10 MB。单个文件的大小不能超过 7 MB。
- 点击要添加的文件。
点击选择。
文件缩略图会显示在提示窗格中。 系统还会显示 token 总数。如果提示数据超过 token 限制,则 token 会被截断,并且不会用于处理数据。
在提示窗格中输入文本提示。
可选:如需查看 Token ID 到文本和 Token ID,请点击提示窗格中的 token 数量。
点击提交。
可选:如需将提示保存到我的提示,请点击 保存。
可选:如需获取提示对应的 Python 代码或 curl 命令,请点击 使用代码构建 > 获取代码。
自定义视频处理
您可以在 Gemini for Google Cloud API 中通过设置剪辑间隔或提供自定义帧速率选段来自定义视频处理。
设置剪辑间隔
您可以通过指定包含开始和结束偏移量的 videoMetadata 来剪辑视频。
设置自定义帧速率
您可以通过向 videoMetadata 传递 fps 实参来设置自定义帧速率选段。
默认情况下,系统会按 1 帧/秒 (FPS) 的速率从视频中提取选段。对于长视频,您可能需要设置较低的 FPS(低于 1)。这对于偏静态的视频(例如讲座)尤其有用。如果您想在快速变化的画面中捕捉更多细节,则可考虑设置更高的 FPS 值。
调整媒体分辨率
您可以调整 MediaResolution,以在处理视频时使用更少的 token。
设置可选模型参数
每个模型都有一组可设置的可选参数。如需了解详情,请参阅内容生成参数。
视频 token 化
以下是视频的 token 计算方式:
-
音轨与视频帧一起编码。音轨还会拆分为
时长 1 秒的主干 ,每个主干占 32 个 token。视频帧和音频的 token 与其时间戳交织在一起。时间戳表示为 5 个 token。 -
对于选段率低于或等于
1 帧/秒 (fps) 的视频,视频前 1 小时的时间戳以每个视频帧 5 个 token 的形式表示。其余的时间戳以每个视频帧 7 个 token 的形式表示。 -
对于选段率高于
1 帧/秒 (fps) 的视频,视频前 1 小时的时间戳以每个视频帧 9 个 token 的形式表示。其余的时间戳以每个视频帧 11 个 token 的形式表示。
最佳做法
使用视频时,请遵循以下最佳实践和信息以获得最佳结果:
- 如果提示包含单个视频,请将该视频放在文本提示前面。
- 如果需要对包含音频的视频进行时间戳本地化,请让模型以“时间戳格式”中所述格式生成时间戳。
限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 内容审核:模型拒绝对违反我们安全政策的视频提供回答。
- 非语音声音识别:支持音频的模型可能会在识别非语音声音时犯错。
有关视频技术方面的详细信息
支持的模型和上下文:所有 Gemini 2.0 和 2.5 模型都可以处理视频数据。
- 上下文窗口为 200 万个 token 的模型可以处理时长不超过 2 小时(默认媒体分辨率)或 6 小时(低媒体分辨率)的视频,而上下文窗口为 100 万个 token 的模型则可以处理时长不超过 1 小时(默认媒体分辨率)或 3 小时(低媒体分辨率)的视频。
File API 处理:使用 File API 时,视频的选段率为 1 帧/秒 (FPS),音频的处理速率则为 1Kbps(单声道)。每秒都会添加时间戳。
- 为了改进推理,这些速率将来可能会发生变化。
token 计算:视频的每一秒都按如下方式计算 token:
各帧(选段率为 1 FPS):
如果
mediaResolution设置为低,则每帧按 66 个 token 计算,外加时间戳的 token 数量。否则,每帧按 258 个 token 计算,外加时间戳的 token 数量。
音频:每秒按 25 个 token 计算,外加时间戳的 token 数量。
元数据也包含在内。
总计:默认媒体分辨率下,每秒视频大约需要 300 个 token;低媒体分辨率下,每秒视频大约需要 100 个 token。
时间戳格式:在提示中引用视频中的特定时刻时,时间戳格式取决于视频的以每秒帧数 (FPS) 表示的选段率:
对于选段率低于或等于 1 FPS 的视频:请使用
MM:SS格式,其中前两位数表示分钟,后两位数表示秒。如果偏移量超过 1 小时,请使用H:MM:SS格式。对于选段率高于 1 FPS 的视频:请使用
MM:SS.sss格式;如果偏移量超过 1 小时,请使用H:MM:SS.sss格式,具体如下所述:- 第一位数表示小时。
- 第二组的两位数表示分钟。
- 第三组的两位数表示秒。
- 最后三位数表示亚秒。
最佳做法:
为获得最佳效果,每个提示请求仅使用一个视频。
如果将文本与单个视频相结合,请在
contents数组中将文本提示放在视频部分之后。请注意,如果选段率为 1 FPS,快速动作序列可能会丢失细节。如有必要,可以考虑放慢此类片段的播放速度。
后续步骤
- 开始使用多模态 Gemini 模型进行构建 - 新客户可获享 $300 免费 Google Cloud 赠金,探索他们可以使用 Gemini 执行的操作。
- 了解如何发送聊天提示请求。
- 了解 Responsible AI 最佳实践和 Vertex AI 的安全过滤条件。