Gemini 可以回答有关视频的提示。您可以向 Gemini 请求添加视频,以便执行涉及理解所含视频内容的任务。
视频理解是 Gemini 的多模态输入之一,可将文本与媒体文件相结合。
如需详细了解如何使用 Gemini 进行视频理解,以及发送 API 请求的分步说明,请参阅发送多模态提示。
含视频的提示的规范
您可以向 Gemini 发送的请求中添加视频文件。支持的视频数据时长上限取决于视频是否包含音频。 Gemini 支持以下最长视频时长:
- 包含音频的视频:100 秒
- 无音频的视频:120 秒
提示请求中允许的视频文件数量上限为 10。
视频必须采用以下某种受支持的 MIME 类型:
- AVI:
video/avi - FLV:
video/x-flv - MOV:
video/mov - MPEG:
video/mpeg - MPG:
video/mpg - MP4:
video/mp4 - WEBM:
video/webm - WMV:
video/wmv - 3GP:
video/3gpp
Gemini 对视频施加了以下规则:
- 视频采样率为每秒一帧 (fps)。每个视频帧占 258 个词元。
- 音轨与视频帧一起编码,并拆分为时长 1 秒的主干,每个主干占 32 个 token。视频帧和音频 token 与其时间戳交织在一起,时间戳由七个 token 表示。
- 如果提示包含单个视频,请将该视频放在文本提示前面。
您可以在 REST API 中使用 Chat Completions 端点,并使用 HTTP 客户端。您可以将视频作为内嵌数据提供给提示请求,以 base64 编码文件的形式提供,也可以在发出提示请求之前将视频文件上传到存储桶。
如需详细了解视频的最佳实践和限制,请参阅 Google Cloud 文档。
如需详细了解 OpenAI 和 Gemini 在 Google Distributed Cloud (GDC) 隔离环境中实现的 Chat Completions 端点,请参阅 https://platform.openai.com/docs/api-reference/chat。
了解根据提示生成的视频
以下示例展示了如何使用 curl 通过 Gemini Chat Completions API 请求从视频输入生成文本。
发送内嵌数据请求
以内嵌数据的形式向提示请求提供视频,数据来自 base64 编码的文件。
API 请求包含用于 base64 编码视频的 input_video 字段。以下示例展示了如何发送 base64 编码的视频请求:
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "input_video",
"input_video": {
"data": BASE64_DATA,
# Valid formats are avi, flv, mov, mpeg, mpg, mp4, webm, wmv, or 3gpp
"format": "wmv"
}
}
]
}
],
}'
替换以下内容:
ENDPOINT:您组织使用的 API 端点。PROJECT:您的项目 ID。MODEL_ID:要生成回答的模型的端点 ID。BASE64_DATA:视频文件的 base64 编码数据。 Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,data字段的格式例如为"data": f"data:video/wmv;base64,{base64_video}"。
在请求中发送视频网址
上传视频文件到存储桶,然后再发出提示请求。API 请求包含存储分区中视频文件的 video_url 字段。以下示例展示了如何发送视频网址请求:
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "VIDEO_URL",
}
}
]
}
],
}'
替换以下内容:
ENDPOINT:您组织使用的 API 端点。PROJECT:您的项目 ID。MODEL_ID:要生成回答的模型的端点 ID。VIDEO_URL:存储桶中视频网址的路径。 视频网址必须指向存储在 GDC 存储桶中的视频文件。如需了解详情,请参阅存储数据。