Videos mit Veo 3.1 in der Gemini API erstellen

Weitere Informationen finden Sie im Leitfaden zum Video-Understanding.

Veo 3.1 ist ein Modell zum Generieren von 8‑sekündigen Videos (720p, 1080p oder 4K) mit nativ generiertem Audio. Sie können programmatisch über die Gemini API auf dieses Modell zugreifen. Weitere Informationen zu den verfügbaren Veo-Modellvarianten finden Sie im Abschnitt Modellversionen.

Veo 3.1 eignet sich hervorragend für eine Vielzahl von visuellen und filmischen Stilen und bietet mehrere neue Funktionen:

  • Videos im Hochformat: Wählen Sie zwischen Videos im Querformat (16:9) und im Hochformat (9:16) aus.
  • Video verlängern: Sie können Videos verlängern, die zuvor mit Veo generiert wurden.
  • Frame-spezifische Generierung: Generieren Sie ein Video, indem Sie den ersten und den letzten Frame angeben.
  • Bildbasierte Anleitung: Sie können bis zu drei Referenzbilder verwenden, um den Inhalt Ihres generierten Videos zu bestimmen.

Weitere Informationen zum Schreiben effektiver Text-Prompts für die Videogenerierung finden Sie im Veo-Leitfaden für Prompts.

Text-zu-Video-Generierung

Die folgenden Beispiele zeigen, wie Sie ein Video mit Dialog, filmreifen Realismus oder kreativer Animation generieren können:

Dialoge und Soundeffekte

Python

import time
from google import genai
from google.genai import types

client = genai.Client()

prompt = """A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'"""

operation = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt=prompt,
)

# Poll the operation status until the video is ready.
while not operation.done:
    print("Waiting for video generation to complete...")
    time.sleep(10)
    operation = client.operations.get(operation)

# Download the generated video.
generated_video = operation.response.generated_videos[0]
client.files.download(file=generated_video.video)
generated_video.video.save("dialogue_example.mp4")
print("Generated video saved to dialogue_example.mp4")

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

const prompt = `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`;

let operation = await ai.models.generateVideos({
    model: "veo-3.1-generate-preview",
    prompt: prompt,
});

// Poll the operation status until the video is ready.
while (!operation.done) {
    console.log("Waiting for video generation to complete...")
    await new Promise((resolve) => setTimeout(resolve, 10000));
    operation = await ai.operations.getVideosOperation({
        operation: operation,
    });
}

// Download the generated video.
ai.files.download({
    file: operation.response.generatedVideos[0].video,
    downloadPath: "dialogue_example.mp4",
});
console.log(`Generated video saved to dialogue_example.mp4`);

Ok

package main

import (
    "context"
    "log"
    "os"
    "time"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    prompt := `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
    A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`

    operation, _ := client.Models.GenerateVideos(
        ctx,
        "veo-3.1-generate-preview",
        prompt,
        nil,
        nil,
    )

    // Poll the operation status until the video is ready.
    for !operation.Done {
    log.Println("Waiting for video generation to complete...")
        time.Sleep(10 * time.Second)
        operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
    }

    // Download the generated video.
    video := operation.Response.GeneratedVideos[0]
    client.Files.Download(ctx, video.Video, nil)
    fname := "dialogue_example.mp4"
    _ =