Video genereren in Python
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.