Compreensão do vídeo

É possível adicionar vídeos às solicitações do Gemini para realizar tarefas que envolvem entender o conteúdo dos vídeos incluídos. Esta página mostra como adicionar vídeos às suas solicitações para o Gemini na Vertex AI usando o console Google Cloud e a API Vertex AI.

Modelos compatíveis

A tabela a seguir lista os modelos compatíveis com a compreensão de vídeo:

Modelo Detalhes da mídia Tipos MIME
Gemini 2.5 Flash (pré-lançamento)
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.5 Flash-Lite (Pré-lançamento)
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.5 Flash-Lite
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.5 Flash com áudio nativo da API Live (pré-lançamento)
  • Resolução padrão: 768 x 768
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.0 Flash com API Live (pré-lançamento)
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • Máximo de tokens por minuto (TPM):
    • Resolução de mídia alta/média/padrão:
      • EUA/Ásia: 37,9 milhões
      • UE: 9,5 milhões
    • Resolução de mídia baixa:
      • US/Asia: 1 G
      • UE: 2,5 milhões
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.0 Flash com geração de imagens (pré-lançamento)
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • Máximo de tokens por minuto (TPM):
    • Resolução de mídia alta/média/padrão:
      • EUA/Ásia: 37,9 milhões
      • UE: 9,5 milhões
    • Resolução de mídia baixa:
      • US/Asia: 1 G
      • UE: 2,5 milhões
Gemini 2.5 Pro
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.5 Flash
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.0 Flash
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • Máximo de tokens por minuto (TPM):
    • Resolução de mídia alta/média/padrão:
      • EUA/Ásia: 38 M
      • UE: 10 M
    • Resolução de mídia baixa:
      • US/Ásia: 10 M
      • UE: 2,5 milhões
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp
Gemini 2.0 Flash-Lite
  • Duração máxima do vídeo (com áudio): aproximadamente 45 minutos
  • Duração máxima do vídeo (sem áudio): aproximadamente 1 hora
  • Número máximo de vídeos por comando: 10
  • Máximo de tokens por minuto (TPM):
    • Resolução de mídia alta/média/padrão:
      • EUA/Ásia: 6,3 milhões
      • UE: 3,2 mi
    • Resolução de mídia baixa:
      • US/Ásia: 3,2 milhões
      • UE: 3,2 mi
  • video/x-flv
  • video/quicktime
  • video/mpeg
  • video/mpegs
  • video/mpg
  • video/mp4
  • video/webm
  • video/wmv
  • video/3gpp

A métrica de cota é generate_content_video_input_per_base_model_id_and_resolution.

Para uma lista de linguagens compatíveis com os modelos do Gemini, consulte as informações do modelo Modelos do Google. Para saber mais sobre como criar comandos multimodais, consulte Criar comandos multimodais. Se você está procurando uma maneira de usar o Gemini diretamente no seu dispositivo móvel e e apps da Web, consulte os SDKs de cliente do Firebase AI Logic para apps Swift, Android, Web, Flutter e Unity.

Adicionar vídeos a uma solicitação

É possível adicionar um ou vários vídeos à sua solicitação ao Gemini e os vídeos podem incluir áudio.

Vídeo único

O exemplo de código em cada uma das guias a seguir mostra uma maneira diferente de identificar o conteúdo de um vídeo. Esta amostra funciona com todos os modelos multimodais do Gemini.

Console

Para enviar um comando multimodal usando o console Google Cloud , faça o seguinte:

  1. Na seção "Vertex AI" do console Google Cloud , acesse a página do Vertex AI Studio.

    Acesse o Vertex AI Studio

  2. Clique em Criar prompt.

  3. Opcional: configure o modelo e os parâmetros:

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançado e faça a configuração da seguinte maneira:

    Clique para abrir as configurações avançadas

    • Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".

      O top-k muda a forma como o modelo seleciona tokens para saída. Um top-K de 1 significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de 3 significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.

      Para cada etapa da seleção de tokens, são amostrados os tokens top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de top-P com o token final selecionado por meio da amostragem de temperatura.

      Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.

    • Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte. Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis, defina top-P como 0.
    • Respostas máximas: use o controle deslizante ou a caixa de texto para inserir um valor para o número de respostas a serem geradas.
    • Respostas de streaming: ative para mostrar as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite de probabilidade de mostrar respostas que podem ser prejudiciais.
    • Ativar embasamento: o embasamento não é compatível com solicitações multimodais.
    • Região: selecione a região que você quer usar.
    • Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.

          
      The temperature is used for sampling during response generation, which occurs when topP
      and topK are 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 of 0
      means 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>

  5. Clique em Inserir mídia e selecione uma origem para o arquivo.

    Fazer upload

    Selecione o arquivo que você quer enviar e clique em Abrir.

    Por URL

    Insira o URL do arquivo que você quer usar e clique em Inserir.

    YouTube

    Insira o URL do vídeo do YouTube que você quer usar e clique em Inserir.

    Você pode usar qualquer vídeo público ou um vídeo que seja de propriedade da conta que você usou para fazer login no console do Google Cloud .

    Cloud Storage

    Selecione o bucket e o arquivo que você quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e conceda consentimento ao Vertex AI Studio para acessar sua conta na primeira vez que você selecionar essa opção. É possível fazer upload vários arquivos que tenham um tamanho total de até 10 MB. Um único arquivo não pode exceder 7 MB.
    2. Clique no arquivo que você quer adicionar.
    3. Clique em Selecionar.

      A miniatura do arquivo é mostrada no painel Comando. O número total de tokens também é exibido. Se os dados do comando excederem o limite de tokens, os tokens serão truncados e não serão incluídos no processamento dos dados.

  6. Digite o comando de texto no painel Prompt.

  7. Opcional: para conferir o ID do token para texto e os IDs de token, clique na contagem de tokens no painel Comando.

  8. Clique em Enviar.

  9. Opcional: para salvar o comando em Meus comandos, clique em Salvar.

  10. Opcional: para receber o código Python ou um comando curl para seu prompt, clique em Criar com código > Receber código.

Python

Instalar

pip install --upgrade google-genai

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/video/ad_copy_from_video.mp4",
            mime_type="video/mp4",
        ),
        "What is in the video?",
    ],
)
print(response.text)
# Example response:
# The video shows several people surfing in an ocean with a coastline in the background. The camera ...

Go

Saiba como instalar ou atualizar o Go.

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithMuteVideo shows how to generate text using a video with no sound as the input.
func generateWithMuteVideo(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "What is in the video?"},
			{FileData: &genai.FileData{
				FileURI:  "gs://cloud-samples-data/generative-ai/video/ad_copy_from_video.mp4",
				MIMEType: "video/mp4",
			}},
		},
			Role: "user"},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// The video shows several surfers riding waves in an ocean setting. The waves are ...

	return nil
}

Java

Saiba como instalar ou atualizar o Java.

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationWithMuteVideo {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with mute video input
  public static String generateContent(String modelId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/video/ad_copy_from_video.mp4",
                      "video/mp4"),
                  Part.fromText("What is in this video?")),
              null);

      System.out.print(response.text());
      // Example response:
      // This video features **surfers in the ocean**.
      //
      // The main focus is on **one individual who catches and rides a wave**, executing various
      // turns and maneuvers as the wave breaks and dissipates into whitewater...
      return response.text();
    }
  }
}

Node.js

Instalar

npm install @google/genai

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      {
        role: 'user',
        parts: [
          {
            fileData: {
              mimeType: 'video/mp4',
              fileUri:
                'gs://cloud-samples-data/generative-ai/video/ad_copy_from_video.mp4',
            },
          },
          {
            text: 'What is in the video?',
          },
        ],
      },
    ],
  });

  console.log(response.text);

  // Example response:
  // The video shows several people surfing in an ocean with a coastline in the background. The camera ...

  return response.text;
}

REST

Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto.
  • FILE_URI: o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
    • URI do bucket do Cloud Storage:o objeto precisa ser publicamente legível ou residir no mesmo projeto Google Cloud que está enviando a solicitação. Para gemini-2.0-flash e gemini-2.0-flash-lite, o limite de tamanho é de 2 GB.
    • URL HTTP: o URL do arquivo precisa ser legível publicamente. É possível especificar um arquivo de vídeo, um arquivo de áudio e até 10 arquivos de imagem por solicitação. Os arquivos de áudio, vídeo e documentos não podem exceder 15 MB.
    • URL do vídeo do YouTube:o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.

    Ao especificar um fileURI, você também precisa especificar o tipo de mídia (mimeType) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia para fileURI.

    Se você não tiver um arquivo de vídeo no Cloud Storage, use o seguinte arquivo disponível publicamente: gs://cloud-samples-data/video/animals.mp4 com um tipo MIME de video/mp4. Para acessar este vídeo, abrir o MP4 de amostra .

  • MIME_TYPE: O tipo de mídia do arquivo especificado em data ou fileUri . Os valores aceitáveis são os seguintes:

    Clique para expandir os tipos MIME.

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: as instruções de texto a serem incluídas no comando. Por exemplo, What is in the video?

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Depois execute o comando a seguir para enviar a solicitação 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

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Depois execute o comando a seguir para enviar a solicitação 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

Você receberá uma resposta JSON semelhante a seguinte.

Observe o seguinte no URL deste exemplo:
  • Use o generateContent para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando o streamGenerateContent .
  • O ID do modelo multimodal está localizado no final do URL, antes do método Por exemplo, gemini-2.0-flash). Este exemplo pode oferecer suporte a outros modelos de classificação.

Vídeo com áudio

Confira a seguir como resumir um arquivo de vídeo com áudio e retornar capítulos com marcações de tempo. Esta amostra funciona com o Gemini 2.0.

Python

Instalar

pip install --upgrade google-genai

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/video/ad_copy_from_video.mp4",
            mime_type="video/mp4",
        ),
        "What is in the video?",
    ],
)
print(response.text)
# Example response:
# The video shows several people surfing in an ocean with a coastline in the background. The camera ...

REST

Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: .
  • FILE_URI: o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
    • URI do bucket do Cloud Storage:o objeto precisa ser publicamente legível ou residir no mesmo projeto Google Cloud que está enviando a solicitação. Para gemini-2.0-flash e gemini-2.0-flash-lite, o limite de tamanho é de 2 GB.
    • URL HTTP: o URL do arquivo precisa ser legível publicamente. É possível especificar um arquivo de vídeo, um arquivo de áudio e até 10 arquivos de imagem por solicitação. Os arquivos de áudio, vídeo e documentos não podem exceder 15 MB.
    • URL do vídeo do YouTube:o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.

    Ao especificar um fileURI, você também precisa especificar o tipo de mídia (mimeType) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia para fileURI.

    Se você não tiver um arquivo de vídeo no Cloud Storage, use o seguinte arquivo disponível publicamente: gs://cloud-samples-data/generative-ai/video/pixel8.mp4 com um tipo MIME de video/mp4. Para acessar este vídeo, abrir o MP4 de amostra .

  • MIME_TYPE: O tipo de mídia do arquivo especificado em data ou fileUri . Os valores aceitáveis são os seguintes:

    Clique para expandir os tipos MIME.

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT
    As instruções de texto a serem incluídas no comando. Por exemplo, Provide a description of the video. The description should also contain anything important which people say in the video.

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Depois execute o comando a seguir para enviar a solicitação 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

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Depois execute o comando a seguir para enviar a solicitação 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

Você receberá uma resposta JSON semelhante a seguinte.

Observe o seguinte no URL deste exemplo:
  • Use o generateContent para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando o streamGenerateContent .
  • O ID do modelo multimodal está localizado no final do URL, antes do método Por exemplo, gemini-2.0-flash). Este exemplo pode oferecer suporte a outros modelos de classificação.

Console

Para enviar um comando multimodal usando o console Google Cloud , faça o seguinte:

  1. Na seção "Vertex AI" do console Google Cloud , acesse a página do Vertex AI Studio.

    Acesse o Vertex AI Studio

  2. Clique em Criar prompt.

  3. Opcional: configure o modelo e os parâmetros:

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançado e faça a configuração da seguinte maneira:

    Clique para abrir as configurações avançadas

    • Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".

      O top-k muda a forma como o modelo seleciona tokens para saída. Um top-K de 1 significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de 3 significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.

      Para cada etapa da seleção de tokens, são amostrados os tokens top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de top-P com o token final selecionado por meio da amostragem de temperatura.

      Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.

    • Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte. Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis, defina top-P como 0.
    • Respostas máximas: use o controle deslizante ou a caixa de texto para inserir um valor para o número de respostas a serem geradas.
    • Respostas de streaming: ative para mostrar as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite de probabilidade de mostrar respostas que podem ser prejudiciais.
    • Ativar embasamento: o embasamento não é compatível com solicitações multimodais.
    • Região: selecione a região que você quer usar.
    • Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.

          
      The temperature is used for sampling during response generation, which occurs when topP
      and topK are 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 of 0
      means 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>

  5. Clique em Inserir mídia e selecione uma origem para o arquivo.

    Fazer upload

    Selecione o arquivo que você quer enviar e clique em Abrir.

    Por URL

    Insira o URL do arquivo que você quer usar e clique em Inserir.

    YouTube

    Insira o URL do vídeo do YouTube que você quer usar e clique em Inserir.

    Você pode usar qualquer vídeo público ou um vídeo que seja de propriedade da conta que você usou para fazer login no console do Google Cloud .

    Cloud Storage

    Selecione o bucket e o arquivo que você quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e conceda consentimento ao Vertex AI Studio para acessar sua conta na primeira vez que você selecionar essa opção. É possível fazer upload vários arquivos que tenham um tamanho total de até 10 MB. Um único arquivo não pode exceder 7 MB.
    2. Clique no arquivo que você quer adicionar.
    3. Clique em Selecionar.

      A miniatura do arquivo é mostrada no painel Comando. O número total de tokens também é exibido. Se os dados do comando excederem o limite de tokens, os tokens serão truncados e não serão incluídos no processamento dos dados.

  6. Digite o comando de texto no painel Prompt.

  7. Opcional: para conferir o ID do token para texto e os IDs de token, clique na contagem de tokens no painel Comando.

  8. Clique em Enviar.

  9. Opcional: para salvar o comando em Meus comandos, clique em Salvar.

  10. Opcional: para receber o código Python ou um comando curl para seu prompt, clique em Criar com código > Receber código.

Personalizar o processamento de vídeo

É possível personalizar o processamento de vídeo na API Gemini para Google Cloud definindo intervalos de corte ou fornecendo amostragem de taxa de frames personalizada.

Definir intervalos de corte

Você pode cortar vídeos especificando videoMetadata com ajustes de início e fim.

Definir uma taxa de frames personalizada

É possível definir uma amostragem personalizada de taxa de frames transmitindo um argumento fps para videoMetadata.

Por padrão, um frame por segundo (FPS) é amostrado do vídeo. Talvez seja melhor definir um valor baixo de QPS (< 1) para vídeos longos. Isso é especialmente útil para vídeos estáticos (por exemplo, palestras). Se quiser capturar mais detalhes em imagens que mudam rapidamente, defina um valor de QPS mais alto.

Ajustar a resolução da mídia

Você pode ajustar MediaResolution para processar seus vídeos com menos tokens.

Definir parâmetros opcionais do modelo

Cada modelo tem um conjunto de parâmetros opcionais que podem ser definidos. Para mais informações, consulte Parâmetros de geração de conteúdo.

Tokenização de vídeo

Veja como os tokens são calculados para vídeos:

  • A faixa de áudio é codificada com frames de vídeo. A faixa de áudio também é dividida em entroncamentos de um segundo que representam 32 tokens. O frame de vídeo e os tokens de áudio são intercalados com os respectivos carimbos de data/hora. Os carimbos de data/hora são representados como cinco tokens.
  • Para vídeos com amostragem de 1 frame por segundo (QPS) ou menos, os carimbos de data/hora da primeira hora de vídeo são representados como 5 tokens por frame de vídeo. Os carimbos de data/hora restantes são representados como sete tokens por frame de vídeo.
  • Para vídeos com amostragem acima de 1 frame por segundo (QPS), os carimbos de data/hora da primeira hora de vídeo são representados como 9 tokens por frame de vídeo. Os carimbos de data/hora restantes são representados como 11 tokens por frame de vídeo.

Práticas recomendadas

Ao usar vídeos, siga as práticas recomendadas e informações abaixo para ter os melhores resultados:

  • Se o comando contiver um único vídeo, coloque o vídeo antes do comando de texto.
  • Se você precisar de localização de carimbo de data/hora em um vídeo com áudio, peça ao modelo para gerar carimbos de data/hora que sigam o formato descrito em "Formato de carimbo de data/hora".

Limitações

Embora os modelos multimodais do Gemini sejam eficientes em muitos casos de uso multimodais, é importante entender as limitações dos modelos:

  • Moderação de conteúdo: os modelos se recusam a fornecer respostas sobre vídeos que violam nossas políticas de segurança.
  • Reconhecimento de som sem fala: os modelos compatíveis com áudio podem cometer erros ao reconhecer sons que não são fala.

Detalhes técnicos sobre vídeos

  • Modelos e contexto compatíveis: todos os modelos do Gemini 2.0 e 2.5 podem processar dados de vídeo.

    • Os modelos com uma janela de contexto de 2 milhões podem processar vídeos de até 2 horas na resolução de mídia padrão ou 6 horas na resolução de mídia baixa. Já os modelos com uma janela de contexto de 1 milhão podem processar vídeos de até 1 hora na resolução de mídia padrão ou 3 horas na resolução de mídia baixa.
  • Processamento da API File: ao usar a API File, os vídeos são amostrados a 1 frame por segundo (FPS), e o áudio é processado a 1 Kbps (canal único). Os carimbos de data/hora são adicionados a cada segundo.

    • Essas taxas estão sujeitas a mudanças no futuro para melhorias na inferência.
  • Cálculo de tokens: cada segundo de vídeo é tokenizado da seguinte forma:

    • Frames individuais (amostrados a 1 QPS):

      • Se mediaResolution estiver definido como "baixo", os frames serão tokenizados a 66 tokens por frame, mais tokens de carimbo de data/hora.

      • Caso contrário, os frames serão tokenizados a 258 tokens por frame, mais tokens de carimbo de data/hora.

    • Áudio: 25 tokens por segundo, mais tokens de carimbo de data/hora.

    • Os metadados também são incluídos.

    • Total: aproximadamente 300 tokens por segundo de vídeo na resolução de mídia padrão ou 100 tokens por segundo de vídeo na resolução de mídia baixa.

  • Formato de carimbo de data/hora: ao se referir a momentos específicos de um vídeo no comando, o formato do carimbo de data/hora depende da taxa de amostragem de frames por segundo (FPS) do vídeo:

    • Para taxas de amostragem de 1 FPS ou menos: use o formato MM:SS, em que os dois primeiros dígitos representam minutos e os dois últimos representam segundos. Se você tiver ajustes maiores que uma hora, use o formato H:MM:SS.

    • Para taxas de amostragem acima de 1 FPS: use o formato MM:SS.sss ou, se você tiver offsets maiores que 1 hora, use o formato H:MM:SS.sss, descrito da seguinte maneira:

      • O primeiro dígito representa a hora.
      • Os dois últimos dígitos representam os minutos.
      • Os dois últimos dígitos representam os segundos.
      • Os três últimos dígitos representam os subsegundos.
  • Práticas recomendadas:

    • Use apenas um vídeo por solicitação de comando para ter os melhores resultados.

    • Se você estiver combinando texto e um único vídeo, coloque o comando de texto depois da parte do vídeo na matriz contents.

    • Sequências de ação rápidas podem perder detalhes devido à taxa de amostragem de 1 FPS. Considere diminuir a velocidade desses clipes, se necessário.

A seguir