動画を理解する

Gemini は、動画に関するプロンプトに回答できます。Gemini リクエストに動画を追加して、含まれる動画の内容を理解するタスクを実行できます。

動画理解は、テキストとメディア ファイルを組み合わせる Gemini のマルチモーダル入力の 1 つです。

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 は動画に次のルールを適用します。

  • 動画は 1 フレーム / 秒(fps)でサンプリングされます。動画フレームごとに 258 個のトークンが使用されます。
  • オーディオ トラックは動画フレームでエンコードされ、1 秒のトランクに分割されます。各トランクは 32 個のトークンから構成されます。動画フレームと音声トークンは、タイムスタンプとともにインターリーブされます。タイムスタンプは 7 個のトークンで表されます。
  • プロンプトに 1 つの動画が含まれている場合は、テキスト プロンプトの前に動画を配置します。

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}" です。

リクエストで動画の URL を送信する

プロンプト リクエストを行う前に、動画ファイルをストレージ バケットにアップロードします。API リクエストには、ストレージ バケット内の動画ファイルの video_url フィールドが含まれています。次のサンプルは、動画 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: ストレージ バケット内の動画 URL のパス。動画 URL は、GDC ストレージ バケットに保存されている動画ファイルを参照する必要があります。詳細については、データを保存するをご覧ください。

次のステップ