Videos zu Präsentationen in Python hinzufügen

Ein gut platziertes Video in einer Präsentation kann Ihre Botschaft überzeugender machen und das Engagement Ihres Publikums steigern.

PowerPoint ermöglicht es Ihnen, Videos in einer Folie einer Präsentation auf zwei Arten hinzuzufügen:

  • Ein lokales Video hinzufügen oder einbetten (auf Ihrem Rechner gespeichert)
  • Ein Online-Video hinzufügen (aus einer Web-Quelle wie YouTube).

Um Ihnen das Hinzufügen von Videos (Video-Objekten) zu einer Präsentation zu ermöglichen, stellt Aspose.Slides die Klasse Video bereit, die Klasse VideoFrame und weitere relevante Typen.

Eingebetteten Video‑Frame erstellen

Wenn die Videodatei, die Sie zu Ihrer Folie hinzufügen möchten, lokal gespeichert ist, können Sie einen Video‑Frame erstellen, um das Video in Ihre Präsentation einzubetten.

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Holen Sie sich die Referenz einer Folie über deren Index.
  3. Fügen Sie ein Video-Objekt hinzu und übergeben Sie den Pfad zur Videodatei, um das Video in die Präsentation einzubetten.
  4. Fügen Sie ein VideoFrame-Objekt hinzu, um einen Frame für das Video zu erstellen.
  5. Speichern Sie die geänderte Präsentation.

Dieser Python-Code zeigt Ihnen, wie Sie ein lokal gespeichertes Video zu einer Präsentation hinzufügen:

import aspose.slides as slides

with slides.Presentation(path + "pres.pptx") as pres:
    with open("Wildlife.mp4", "br") as fileStream:
        video = pres.videos.add_video(fileStream, slides.LoadingStreamBehavior.KEEP_LOCKED)

        # Holt die erste Folie und fügt einen Videoframe hinzu
        pres.slides[0].shapes.add_video_frame(10, 10, 150, 250, video)

        # Speichert die Präsentation auf dem Datenträger
        pres.save(path + "pres-with-video.pptx", slides.export.SaveFormat.PPTX)

Alternativ können Sie ein Video hinzufügen, indem Sie dessen Dateipfad direkt an die Methode add_video_frame(x, y, width, height, fname) übergeben:

import aspose.slides as slides

with slides.Presentation() as pres:
    sld = pres.slides[0]
    vf = sld.shapes.add_video_frame(50, 150, 300, 150, "video1.avi")

Video‑Frame mit Video aus Web‑Quelle erstellen

Microsoft PowerPoint 2013 und neuer unterstützt YouTube-Videos in Präsentationen. Wenn das von Ihnen zu verwendende Video online verfügbar ist (z. B. auf YouTube), können Sie es über dessen Web-Link Ihrer Präsentation hinzufügen.

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Holen Sie sich die Referenz einer Folie über deren Index.
  3. Fügen Sie ein Video-Objekt hinzu und übergeben Sie den Link zum Video.
  4. Legen Sie ein Thumbnail für den Video‑Frame fest.
  5. Speichern Sie die Präsentation.

Dieser Python-Code zeigt Ihnen, wie Sie ein Video aus dem Web zu einer Folie in einer PowerPoint-Präsentation hinzufügen:

import aspose.slides as slides
from urllib.request import urlopen

def add_video_from_youyube(pres, videoId):
    # Fügt einen videoFrame hinzu
    videoFrame = pres.slides[0].shapes.add_video_frame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId)
    videoFrame.play_mode = slides.VideoPlayModePreset.AUTO

    # Lädt das Thumbnail
    thumbnail_uri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg"
    f = urlopen(thumbnail_uri)
    videoFrame.picture_format.picture.image = pres.images.add_image(f.read())


with slides.Presentation() as pres:
    add_video_from_youyube(pres, "s5JbfQZ5Cc0")
    pres.save("AddVideoFrameFromWebSource_out.pptx", slides.export.SaveFormat.PPTX)

Video‑Untertitel verwalten

Aspose.Slides ermöglicht Ihnen das Verwalten von Untertiteln für Video‑Frames in PowerPoint‑Präsentationen. Untertitel werden im WebVTT-Format gespeichert und über die Eigenschaft VideoFrame.caption_tracks bereitgestellt.

Untertitel zu einem Video‑Frame hinzufügen

Um Untertitel zu einem Video‑Frame hinzuzufügen:

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Fügen Sie der Präsentation ein Video hinzu.
  3. Fügen Sie einer Folie ein VideoFrame-Objekt hinzu.
  4. Verwenden Sie die CaptionsCollection , die von caption_tracks zurückgegeben wird, um eine WebVTT-Untertitelspur hinzuzufügen.
  5. Speichern Sie die geänderte Präsentation.

Der folgende Code zeigt Ihnen, wie Sie Untertitel zu einem Video‑Frame hinzufügen:

import aspose.slides as slides

with slides.Presentation() as presentation:
    with open("video.mp4", "rb") as video_stream:
        video_data = video_stream.read()

    video = presentation.videos.add_video(video_data)

    slide = presentation.slides[0]
    video_frame = slide.shapes.add_video_frame(0, 0, 100, 100, video)

    # Fügt eine neue Untertitelspur aus einer WebVTT-Datei hinzu.
    video_frame.caption_tracks.add("English", "track.vtt")

    presentation.save("video_with_captions.pptx", slides.export.SaveFormat.PPTX)

Die Klasse CaptionsCollection bietet zudem eine Überladung, mit der Sie Untertitel aus einem Stream hinzufügen können.

Untertitel aus einem Video‑Frame extrahieren

Um Untertitel aus einem Video‑Frame zu extrahieren:

  1. Laden Sie die Präsentation, die das Video enthält.
  2. Finden Sie das Ziel‑VideoFrame-Objekt.
  3. Durchlaufen Sie die Sammlung caption_tracks.
  4. Speichern Sie jede Untertitelspur in einer .vtt‑Datei.

Der folgende Code zeigt Ihnen, wie Sie Untertitel aus einem Video‑Frame extrahieren:

import aspose.slides as slides

with slides.Presentation("video_with_captions.pptx") as presentation:
    slide = presentation.slides[0]
    for shape in slide.shapes:
        if isinstance(shape, slides.VideoFrame):
            for caption_track in shape.caption_tracks:
                # Speichert die Untertitelspur in einer WebVTT-Datei.
                file_path = f"{caption_track.caption_id}.vtt"
                with open(file_path, "wb") as track_stream:
                    track_stream.write(bytes(caption_track.binary_data))

Jedes Captions-Objekt stellt die Untertitel‑Kennung, das Label, die Binärdaten und den Untertiteltext als UTF‑8‑String bereit.

Untertitel aus einem Video‑Frame entfernen

Um Untertitel aus einem Video‑Frame zu entfernen:

  1. Laden Sie die Präsentation, die das Video enthält.
  2. Holen Sie das Ziel‑VideoFrame-Objekt.
  3. Entfernen Sie Untertitelspuren aus der CaptionsCollection.
  4. Speichern Sie die geänderte Präsentation.

Der folgende Code zeigt Ihnen, wie Sie alle Untertitel aus einem Video‑Frame entfernen:

import aspose.slides as slides

with slides.Presentation("video_with_captions.pptx") as presentation:
    slide = presentation.slides[0]
    video_frame = slide.shapes[0]  # Typ: slides.VideoFrame

    # Entfernt alle Untertitel aus dem Video‑Frame.
    video_frame.caption_tracks.clear()

    presentation.save("video_without_captions.pptx", slides.export.SaveFormat.PPTX)

Wenn Sie nur eine Untertitelspur entfernen müssen, verwenden Sie die Methoden remove oder remove_at, anstelle von clear.

Video aus Folie extrahieren

Neben dem Hinzufügen von Videos zu Folien ermöglicht Aspose.Slides das Extrahieren von in Präsentationen eingebetteten Videos.

  1. Erstellen Sie eine Instanz der Klasse Presentation, um die Präsentation zu laden, die das Video enthält.
  2. Durchlaufen Sie alle Slide-Objekte.
  3. Durchlaufen Sie alle Shape-Objekte, um ein VideoFrame zu finden.
  4. Speichern Sie das Video auf dem Datenträger.

Dieser Python-Code zeigt Ihnen, wie Sie das Video einer Präsentationsfolie extrahieren:

import aspose.slides as slides

# Instanziiert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
with slides.Presentation(path + "Video.pptx") as presentation:
    for shape in presentation.slides[0].shapes:
        if type(shape) is slides.VideoFrame:
            type = shape.embedded_video.content_type
            buffer = shape.embedded_video.binary_data
            with open("NewVideo_out." + type[type.rfind('/') + 1:len(type)], "wb") as stream:
                stream.write(buffer)

FAQ

Welche Videowiedergabe-Parameter können für einen Video‑Frame geändert werden?

Sie können den Wiedergabemodus (automatisch oder bei Klick) und das Looping steuern. Diese Optionen stehen über die Eigenschaften des VideoFrame-Objekts zur Verfügung.

Beeinflusst das Hinzufügen eines Videos die PPTX-Dateigröße?

Ja. Wenn Sie ein lokales Video einbetten, werden die Binärdaten in das Dokument aufgenommen, sodass die Größe der Präsentation proportional zur Dateigröße wächst. Wenn Sie ein Online-Video hinzufügen, werden ein Link und ein Thumbnail eingebettet, sodass die Größenzunahme geringer ist.

Kann ich das Video in einem bestehenden Video‑Frame ersetzen, ohne Position und Größe zu ändern?

Ja. Sie können den Videoinhalt im Frame austauschen, während Sie die Geometrie der Form beibehalten; dies ist ein häufiges Szenario zum Aktualisieren von Medien in einem bestehenden Layout.

Kann der Inhaltstyp (MIME) eines eingebetteten Videos ermittelt werden?

Ja. Ein eingebettetes Video hat einen content type, den Sie auslesen und beispielsweise beim Speichern auf dem Datenträger verwenden können.