理解视频

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 存储桶中的视频文件。如需了解详情,请参阅存储数据

后续步骤