DEV Community

Cover image for Como estender um vídeo para 40 segundos com Gemini Omni 1.1 Flash
Lucas
Lucas

Posted on Originally published at apidog.com

Como estender um vídeo para 40 segundos com Gemini Omni 1.1 Flash

O Gemini Omni 1.1 Flash gera clipes de 10 segundos. A extensão de cena ultrapassa esse limite: cada chamada adiciona mais 10 segundos, até um total de 40 segundos.

Experimente o Apidog hoje

A versão de prévia analisava apenas o último segundo do vídeo, o que preservava parcialmente as cores, mas não a continuidade. Personagens trocavam de roupa e os movimentos de câmera eram reiniciados. O lançamento GA de 27 de agosto de 2026 ampliou o contexto anterior para 10 segundos, melhorando a consistência visual e a aderência narrativa, segundo o Google.

Este guia mostra como fazer a extensão, quais são os limites e como evitar que uma sequência de 40 segundos se desfaça no terceiro segmento.

A chamada de extensão básica

A extensão usa a Files API. Carregue o clipe e envie o URI junto a um prompt que descreva o próximo acontecimento:

import base64
from google import genai

client = genai.Client()

video_file = client.files.upload(file="my_video.mp4")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue a cena."},
    ],
)

with open("extended.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))

Enter fullscreen mode Exit fullscreen mode

Os uploads são processados de forma assíncrona. Verifique o estado antes de enviar a interação:

import time

while video_file.state == "PROCESSING":
    time.sleep(10)
    video_file = client.files.get(name=video_file.name)

if video_file.state == "FAILED":
    raise ValueError(video_file.state)

Enter fullscreen mode Exit fullscreen mode

Se o vídeo foi gerado pelo Omni na mesma sessão, não faça upload novamente. Encadeie o ID da interação anterior para gastar menos tokens e preservar mais contexto:

res2 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    previous_interaction_id=res1.id,
    input="A câmera recua para revelar a rua inteira.",
)

Enter fullscreen mode Exit fullscreen mode

O passo a passo da API detalha outras opções, incluindo resolução e entrega.

Introduzindo um personagem

Você pode anexar mídia de referência e mencioná-la no prompt. As referências recebem slots como <IMAGE_REF_0>:

video_file = client.files.upload(file="my_video.mp4")
character_img = client.files.upload(file="character.png")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "document", "uri": character_img.uri},
        {"type": "text", "text": "Estenda este vídeo: faça o personagem mostrado em <IMAGE_REF_0> entrar em cena e acenar."},
    ],
)

Enter fullscreen mode Exit fullscreen mode

Referências de vídeo também são aceitas, limitadas a três clipes de três segundos cada. O modelo usa esses clipes para analisar movimento e aparência, mas ignora o áudio.

Limites importantes

  • 40 segundos é o teto: uma geração inicial de 10 segundos mais três extensões.
  • A extensão apenas acrescenta conteúdo ao final: não é possível adicionar ao início ou inserir no meio. Se o segundo segmento estiver errado, será necessário regenerá-lo e regenerar tudo depois dele.
  • Uploads têm limite de 10 segundos: cadeias com previous_interaction_id não sofrem essa limitação porque o modelo mantém o estado anterior.
  • Uploads estendidos não aceitam diálogo: é possível estender um vídeo enviado sem adicionar diálogo, ou trabalhar em uma interação com várias etapas.
  • Há restrições regionais: upload e edição de vídeo não estão disponíveis no Espaço Econômico Europeu, na Suíça e no Reino Unido. Vídeos gerados pelo modelo continuam editáveis nessas regiões pelo caminho previous_interaction_id.
  • Apenas um vídeo de entrada é processado por vez.

Planeje o arco antes de renderizar

Uma sequência de 40 segundos em 720p custa aproximadamente US$ 4,06 em saída de vídeo. O problema comum aparece no terceiro segmento: você precisa regenerar os segmentos três e quatro e pode acabar alterando a abertura que já estava boa.

Rascunhe os quatro segmentos em 360p. A geração chega a ser 60% mais rápida e custa um terço do preço, reduzindo o custo da sequência para cerca de US$ 1,35. Depois de validar a narrativa, renderize novamente em 720p ou superior. Consulte o artigo de precificação para conferir os cálculos.

Defina a resolução no formato de resposta:

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue a cena."},
    ],
    response_format={"type": "video", "resolution": "360p"},
)

Enter fullscreen mode Exit fullscreen mode

Escreva prompts que mantenham a continuidade

Use estes padrões:

  • Descreva a mudança, não a cena inteira. O modelo já recebe 10 segundos de contexto. Prefira “A câmera se aproxima da porta” a uma nova descrição do quarto.
  • Peça apenas um movimento por segmento. Dez segundos funcionam melhor quando representam uma única ação.
  • Explicite as âncoras de continuidade. Diga o que deve permanecer igual, como “o mesmo casaco vermelho” ou “o mesmo ângulo baixo”.
  • Respeite o modelo de anexação. Planeje a sequência na ordem de reprodução, pois não há como corrigir o início sem regenerar tudo depois dele.

A elaboração do prompt é decisiva. O guia de prompts do Veo apresenta princípios que também se aplicam a outros modelos de vídeo.

Teste cada extensão individualmente

Quatro chamadas encadeadas criam quatro pontos de possível regressão. Salve cada etapa como uma solicitação no Apidog, usando variáveis de ambiente para o URI do arquivo e o ID da interação. Assim, você consegue repetir um segmento sem reconstruir toda a cadeia.

Também faça asserções sobre o formato da resposta. Uma extensão em resolução maior pode ultrapassar 4 MB e trocar o vídeo embutido em base64 por um URI. Aumente o tempo limite: extensões podem demorar mais que a geração inicial porque o modelo precisa ler os 10 segundos de contexto.

Esse teste leva cerca de dez minutos e ajuda a distinguir problemas no prompt de mudanças no modelo. Baixe o Apidog para configurá-lo.

FAQ

Quanto tempo pode ter um vídeo do Gemini Omni?

Até 40 segundos cumulativos: uma geração de 10 segundos e três extensões de 10 segundos.

Posso estender um vídeo que gravei?

Sim, desde que a entrada tenha no máximo 10 segundos e você esteja fora do EEE, da Suíça e do Reino Unido. Faça o upload pela Files API e envie o URI.

Posso adicionar conteúdo ao início?

Não. A extensão só acrescenta conteúdo ao final.

Por que o personagem muda de aparência?

Normalmente, porque o prompt redescreve a cena em vez de indicar a mudança, ou porque as âncoras de continuidade não estão explícitas. Informe o que deve permanecer igual e considere anexar uma imagem de referência do personagem.

Cada extensão custa mais?

Sim. Cada chamada cobra os próprios 10 segundos de saída, além dos tokens de entrada referentes ao contexto analisado.

E se eu precisar de mais de 40 segundos?

O Veo 3.1 estende vídeos em blocos de 7 segundos até 148 segundos, apenas em 720p. A comparação de modelos explica essa troca, e o guia da API do Veo mostra os detalhes de integração.

A extensão de cena transforma o Omni de demonstração em um recurso para produção, mas exige planejamento. Faça o storyboard dos quatro momentos, valide o arco completo em 360p, limite cada prompt a um movimento e use 720p apenas na versão que já foi comprovada.

Top comments (0)