Video genereren in Python

Voltooid

Tip

Zie het tabblad Tekst en afbeeldingen voor meer informatie.

Als u toepassingen wilt bouwen die programmatisch video's genereren, kunt u de OpenAI Python SDK gebruiken met uw Sora 2-implementatie in Microsoft Foundry. Het genereren van video's is een asynchroon proces: u verzendt een taak, peilt de status en downloadt het resultaat wanneer deze gereed is.

Een video genereren

Videogeneratie volgt een patroon in drie stappen: maak de taak, peiling voor voltooiing en download het resultaat.

import time

# Create the video generation job
video = client.videos.create(
    model="sora-2",
    prompt="A robot walks through a rainy city street at dusk, neon signs reflecting in puddles",
    size="1280x720",
    seconds="4",
)

print(f"Video creation started. ID: {video.id}")

# Poll for completion
while video.status not in ["completed", "failed", "cancelled"]:
    print(f"Status: {video.status}. Waiting...")
    time.sleep(20)
    video = client.videos.retrieve(video.id)

# Download when complete
if video.status == "completed":
    content = client.videos.download_content(video.id, variant="video")
    content.write_to_file("output.mp4")
    print("Video saved to output.mp4")

Video genereren op basis van een referentieafbeelding

Als u een afbeelding als beginframe wilt gebruiken, geeft u deze door aan de input_reference parameter. De resolutie van de afbeelding moet overeenkomen met de grootte van de doelvideo:

video = client.videos.create(
    model="sora-2",
    prompt="The camera slowly pans across the landscape as clouds drift overhead",
    size="1280x720",
    seconds="4",
    input_reference=open("landscape.png", "rb"),
)

Opmerking

Verwijzingsafbeeldingen met menselijke gezichten worden momenteel geweigerd. Gebruik in plaats daarvan afbeeldingen van landschappen, objecten of animaties.

Een bestaande video remixen

Als u een bestaande video wilt wijzigen met behoud van de structuur, gebruikt u de remixmethode met de id van de oorspronkelijke video:

video = client.videos.remix(
    video_id="video_abc123",
    prompt="Change the color palette to warm sunset tones",
)

Taakstatus verwerken

Videobewerkingen kunnen deze statuswaarden retourneren:

Status Beschrijving
queued De taak wacht op verwerking
in_progress Video wordt gegenereerd
completed Video is gereed voor download
failed Genereren is mislukt (controleer foutdetails)
cancelled Taak is geannuleerd

Wanneer een taak mislukt, controleert u op video.error details over wat er is misgegaan.

Belangrijkste overwegingen

  • Frequentielimieten: u kunt maximaal twee taken voor het maken van video's tegelijk uitvoeren
  • Verlooptijd van de taak: voltooide video's zijn 24 uur beschikbaar om te downloaden
  • Oplossingsvereisten: Referentieafbeeldingen moeten exact overeenkomen met de doelvideoresolutie
  • Inhoudsfiltering: vragen zijn onderworpen aan inhoudsbeheer; schadelijke inhoud wordt niet gegenereerd

In de volgende oefening past u deze technieken toe om een volledige toepassing voor het genereren van video's te bouwen.