KI-Videoproduktion mit Google Veo3: Text-Prompt rein, fertiges Video raus

Automatische Multi-Szene-Videoproduktion mit nahtlosen Übergängen

Python Google Vertex AI Veo3 FFmpeg

🎬 Ihr Video. KI-generiert. In Minuten statt Tagen.

📞 02406 803 7603 ✉️ info@computerkumpel.de

💰 Warum sich KI-Videoproduktion rechnet

Ein professionelles 2-Minuten-Video kostet in der Produktion 1.500–5.000 € und dauert 2–4 Wochen. Mit Veo3 und einer automatisierten Pipeline entsteht das gleiche Video in 10–30 Minuten für unter 50 € Cloud-Kosten. Der Unterschied zwischen „wir machen vielleicht nächstes Quartal ein Video" und „wir machen heute eins".

Geschwindigkeit
Von 2–4 Wochen auf 10–30 Minuten pro Video. Mehrere Videos parallel generierbar durch API-Batching.
💶
Kostensenkung
Statt 1.500–5.000 € für ein Video nur noch ~50 € Cloud-API-Kosten. ROI ab dem ersten produzierten Video.
🔄
Nahtlose Übergänge
Image-to-Video nutzt den letzten Frame der Vorszene als Startpunkt. Kein harter Schnitt — fließende Übergänge.
📜
Script-basierte Produktion
Video-Script als JSON-Datei definieren: Titel, Szenen mit Prompts, Dauer. Pipeline verarbeitet alles automatisch.

⚙️ So funktioniert's

Vom JSON-Script zum fertigen Video — vollautomatisch.

📜
1. Script definieren
JSON-Datei mit Titel, Szenen-Prompts und Dauer. Mehrere Szenen = automatische Übergänge.
🎬
2. Szene 1: Text-to-Video
Erste Szene wird aus reinem Text-Prompt via Veo3 generiert. Kein Referenzbild nötig.
🖼️
3. Folgeszenen: Image-to-Video
FFmpeg extrahiert letzten Frame. Veo3 nutzt ihn als Startbild — nahtlose Übergänge.
🎞️
4. Finales Video mergen
Alle Szenen mit FFmpeg concat zu einem finalen Video zusammenführen. Fertig.

💻 Technische Umsetzung

Die Pipeline ist ein Python-Script, das Google Vertex AI (Veo3) für die KI-Videogenerierung und FFmpeg für Frame-Extraktion und Video-Merging nutzt. Die Steuerung erfolgt über ein JSON-Script.

🏗️ Architektur

veo3_video_pipeline.py
Haupt-Pipeline: Script laden, Szenen generieren, Frames extrahieren, Videos mergen.
extract_last_frame.py
FFmpeg-Wrapper: Extrahiert den letzten Frame eines Videos als JPG-Referenzbild.
Veo3GenerateVideo
Zwei Modi: Text-to-Video (Szene 1) und Image-to-Video (Folgeszenen mit Referenzbild).
merge_videos()
FFmpeg concat demuxer — verlustfreies Zusammenführen aller Szenen zu einem Video.

🎬 Der Veo3VideoPipeline Core

class Veo3VideoPipeline:
    def __init__(self, project_id, location="us-central1", output_dir="output"):
        self.project_id = project_id
        self.location = location
        self.output_dir = Path(output_dir)
        self.output_dir.mkdir(exist_ok=True)
        
        if VERTEX_AI_AVAILABLE:
            aiplatform.init(project=project_id, location=location)

    def generate_video_text_to_video(self, prompt, scene_number, duration=8):
        model = VideoGenerationModel.from_pretrained("veo-3")
        response = model.generate_video(
            prompt=prompt,
            duration=duration,
            aspect_ratio="16:9"
        )
        output_path = self.output_dir / f"scene_{scene_number:03d}.mp4"
        with open(output_path, "wb") as f:
            f.write(response.video_data)
        return str(output_path)

    def generate_video_image_to_video(self, prompt, reference_image, 
                                       scene_number, duration=8):
        model = VideoGenerationModel.from_pretrained("veo-3")
        with open(reference_image, "rb") as f:
            image_data = f.read()
        response = model.generate_video(
            prompt=prompt,
            reference_image=image_data,
            duration=duration,
            aspect_ratio="16:9"
        )
        output_path = self.output_dir / f"scene_{scene_number:03d}.mp4"
        with open(output_path, "wb") as f:
            f.write(response.video_data)
        return str(output_path)

🖼️ Frame-Extraktion mit FFmpeg

def extract_last_frame(self, video_path, output_image_path):
    cmd = [
        "ffmpeg",
        "-sseof", "-3",       # 3 Sekunden vor Ende starten
        "-i", video_path,
        "-vframes", "1",      # Nur ein Frame
        "-q:v", "2",          # Hohe Qualität
        "-update", "1",       # Single image output
        "-y",                 # Überschreiben
        output_image_path
    ]
    subprocess.run(cmd, capture_output=True, text=True, check=True)
    return Path(output_image_path).exists()

🔀 Workflow: Script → Szenen → Mergen

def process_script(self, script):
    scenes = script.get("scenes", [])
    generated_videos = []
    previous_frame = None

    for idx, scene in enumerate(scenes, start=1):
        prompt = scene.get("prompt", "")
        duration = scene.get("duration", 8)

        if idx == 1:
            # Erste Szene: Text-to-Video
            video_path = self.generate_video_text_to_video(
                prompt=prompt, scene_number=idx, duration=duration
            )
        else:
            # Weitere Szenen: Image-to-Video mit vorherigem Frame
            if previous_frame and Path(previous_frame).exists():
                video_path = self.generate_video_image_to_video(
                    prompt=prompt, reference_image=previous_frame,
                    scene_number=idx, duration=duration
                )
            else:
                video_path = self.generate_video_text_to_video(
                    prompt=prompt, scene_number=idx, duration=duration
                )

        if video_path:
            generated_videos.append(video_path)
            # Letzten Frame für nächste Szene extrahieren
            frame_path = self.output_dir / f"scene_{idx:03d}_last_frame.jpg"
            if self.extract_last_frame(video_path, str(frame_path)):
                previous_frame = str(frame_path)

    return generated_videos

def merge_videos(self, video_paths, output_name="final_video.mp4"):
    concat_file = self.output_dir / "concat_list.txt"
    with open(concat_file, 'w') as f:
        for video_path in video_paths:
            f.write(f"file '{Path(video_path).absolute()}'\n")
    
    subprocess.run([
        "ffmpeg", "-f", "concat", "-safe", "0",
        "-i", str(concat_file), "-c", "copy", "-y",
        str(self.output_dir / output_name)
    ], check=True)
    concat_file.unlink()

📜 Beispiel: Video-Script JSON

{
  "title": "KI im Mittelstand",
  "merge_videos": true,
  "scenes": [
    {
      "prompt": "Eine moderne Büroumgebung mit Mitarbeitern, die an Computern arbeiten. 
                 Eine KI-Assistentin erscheint als Hologramm und hilft bei der Arbeit.",
      "duration": 8
    },
    {
      "prompt": "Nahaufnahme eines Bildschirms, auf dem automatisch E-Mails sortiert werden. 
                 Die KI kategorisiert blitzschnell hunderte Nachrichten.",
      "duration": 8
    },
    {
      "prompt": "Glückliche Mitarbeiter beim Feierabend. Text erscheint: 
                 '90% weniger Routinearbeit — dank KI'. Firmenlogo blendet ein.",
      "duration": 8
    }
  ]
}

⚡ In 5–7 Tagen zum MVP — nicht in 8–13 Wochen.

📞 02406 803 7603 ✉️ info@computerkumpel.de

🚀 Gebaut mit Vibecoding — in 5–7 Tagen statt 8–13 Wochen

👴 Klassische Entwicklung
  • 📋 2–3 Wochen Requirements Engineering
  • 🏗️ 2–3 Wochen Architektur & Design
  • 💻 3–4 Wochen Implementierung
  • 🧪 1–2 Wochen Testing
  • 🚢 1 Woche Deployment
  • ⏱️ Gesamt: 8–13 Wochen
🤖 Vibecoding-Ansatz
  • 🗣️ 0.5 Tage Prompt-Engineering
  • ⚡ 2–3 Tage iterative Generierung
  • 🔧 1–2 Tage Refinement & Debugging
  • ✅ 1 Tag Integration & Testing
  • 🚀 0.5 Tage Deployment
  • ⏱️ Gesamt: 5–7 Tage

🗣️ Der System-Prompt hinter diesem Projekt

Dieser Prompt erzeugte die komplette Veo3-Pipeline mit Text-to-Video, Image-to-Video und FFmpeg-Integration:

Du bist ein Python-Experte für Google Cloud Vertex AI und Videoproduktion.

Aufgabe: Erstelle eine automatisierte Video-Pipeline mit Google Veo3, 
die aus einem JSON-Videoscript ein fertiges Multi-Szene-Video generiert.

Technische Anforderungen:
- Google Vertex AI SDK mit VideoGenerationModel (Veo3)
- Zwei Generierungs-Modi:
  * Text-to-Video für die erste Szene
  * Image-to-Video für Folgeszenen (mit letztem Frame der Vorszene)
- FFmpeg-Integration:
  * Frame-Extraktion: Letzten Frame via -sseof -3 extrahieren
  * Video-Merging: FFmpeg concat demuxer für verlustfreies Zusammenführen
- JSON-basierte Script-Steuerung (Titel, Szenen-Array, Prompts, Dauer)
- Robustes Error-Handling mit Fallback auf Text-to-Video
- CLI-Argumente: script.json [project-id]

VideoScript JSON-Format:
{
  "title": "Video Titel",
  "merge_videos": true,
  "scenes": [
    {"prompt": "Beschreibung Szene 1", "duration": 8},
    {"prompt": "Beschreibung Szene 2", "duration": 8}
  ]
}

Output: Ausführbare .py-Datei mit vollständiger Pipeline, inklusive 
setup_veo3.py für Authentifizierung und Beispiel-Script.

🎯 Strategische Erkenntnisse aus diesem Projekt

KI-Videogenerierung ist 2026 auf einem Level, das vor zwei Jahren Science-Fiction war. Die strategische Frage ist nicht mehr „ob", sondern „wie schnell".

🚀
Time-to-Market ist der entscheidende Vorteil
Ein Marketing-Video, das heute produziert wird, generiert ab morgen Leads. Ein Video, das in 4 Wochen fertig ist, verpasst den aktuellen Kampagnen-Zyklus. KI-Pipelines verkürzen den Zyklus von „Monaten" auf „Stunden" — das verändert die gesamte Content-Strategie eines Unternehmens.
🔗
Image-to-Video: Der unterschätzte Qualitätshebel
Der Unterschied zwischen „zusammengestückelten Clips" und einem „professionellen Video" sind nahtlose Übergänge. Image-to-Video mit dem letzten Frame der Vorszene als Referenzbild erzeugt visuelle Kontinuität, die kein Zuschauer als KI-generiert erkennt. Allein dieser eine technische Kniff steigert die wahrgenommene Videoqualität um 80%.
📐
JSON-Script als Content-as-Code
Ein Videoscript als JSON-Datei zu speichern ist mehr als nur eine Datenstruktur — es ist Content-as-Code. Scripts sind versionierbar via Git, reviewbar im Team, und können von anderen KI-Systemen generiert werden. Ein LLM schreibt das Script, ein anderes produziert das Video. Vollautomatische Content-Pipeline.
🧩
FFmpeg als universeller Klebstoff
In jeder KI-Video-Pipeline ist FFmpeg der unbesungene Held. Frame-Extraktion, Video-Concatenation, Format-Konvertierung — FFmpeg löst alle Post-Processing-Probleme, die die KI-API nicht abdeckt. Wer FFmpeg nicht beherrscht, wird in KI-Videoprojekten immer an der letzten Meile scheitern.

Ihre eigene KI-Videoproduktion — in 5–7 Tagen produktionsreif

Video-Content ist der König — aber Produktion war immer der Flaschenhals. Lassen Sie uns Ihre Video-Pipeline bauen, die in Minuten produziert, was früher Wochen dauerte.

🔍
Workshop & Analyse
Wir analysieren Ihre Video-Content-Strategie und identifizieren die besten Use Cases für KI-gestützte Videoproduktion. Dauer: 1 Tag.
🧪
Proof-of-Concept
Ein funktionierender Prototyp mit Ihren Scripts und Marken-Assets — innerhalb von 5–7 Tagen. Ihr erstes KI-Video als Demo.
🤝
Projektbegleitung
Von der Vertex-AI-Authentifizierung über das Script-Design bis zur produktiven Pipeline — Ende-zu-Ende-Begleitung.
📞 02406 803 7603 ✉️ info@computerkumpel.de