Videók hozzáadása prezentációkhoz Pythonban

Bevezetés

Egy jól elhelyezett videó egy prezentációban hatékonyabbá teheti az üzenetet és növelheti a közönség elköteleződését.

A PowerPoint két módon teszi lehetővé, hogy videókat adjunk hozzá egy diát tartalmazó prezentációhoz:

  • Helyi videó hozzáadása vagy beágyazása (a gépén tárolt)
  • Online videó hozzáadása (webes forrásból, például a YouTube-ról).

A videók (videoobjektumok) prezentációhoz való hozzáadásához az Aspose.Slides biztosítja a Video osztályt, a VideoFrame osztályt és más kapcsolódó típusokat.

Beágyazott videó keret létrehozása

Ha a diára felvenni kívánt videófájl helyileg van tárolva, létrehozhat egy videókeretet a videó prezentációba való beágyazásához.

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg egy dia referenciáját az indexe alapján.
  3. Adjon hozzá egy Video objektumot, és adja át a videó fájl útvonalát a videó prezentációba való beágyazásához.
  4. Adjon hozzá egy VideoFrame objektumot a videó keretének létrehozásához.
  5. Mentse el a módosított prezentációt.

Ez a Python-kód bemutatja, hogyan adhat hozzá egy helyileg tárolt videót a prezentációhoz:

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)

        # Megkapja az első diát és hozzáad egy videókeretet
        pres.slides[0].shapes.add_video_frame(10, 10, 150, 250, video)

        # A prezentációt lemezre menti
        pres.save(path + "pres-with-video.pptx", slides.export.SaveFormat.PPTX)

Alternatívaként hozzáadhat egy videót a fájl útvonalát közvetlenül az add_video_frame(x, y, width, height, fname) metódusnak átadva:

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")

Videókeret létrehozása webes forrásból származó videóval

A Microsoft PowerPoint újabb verziói támogatják az online videókat a prezentációkban. Ha a használni kívánt videó online elérhető (például a YouTube-on), hozzáadhatja a prezentációhoz a webes hivatkozáson keresztül.

  1. Hozzon létre egy példányt a Presentation osztályból
  2. Szerezze meg egy dia referenciáját az indexe alapján.
  3. Adjon hozzá egy Video objektumot, és adja át a videó hivatkozását.
  4. Állítson be egy miniatűrt a videókerethez.
  5. Mentse el a prezentációt.

Ez a Python-kód megmutatja, hogyan adhat hozzá egy webes videót a PowerPoint-prezentáció egy diájához:

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

def add_video_from_youyube(pres, videoId):
    # Videókeretet ad hozzá
    videoFrame = pres.slides[0].shapes.add_video_frame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId)
    videoFrame.play_mode = slides.VideoPlayModePreset.AUTO

    # Betölti a bélyegképet
    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)

Videókeret levágása

Az Aspose.Slides lehetővé teszi, hogy a videó lejátszott részét a trim-from-start és trim-from-end értékek beállításával irányítsa a VideoFrame.trim_from_start és a VideoFrame.trim_from_end segítségével. Mindkét érték ezredmásodpercben van megadva, és meghatározza, mennyi időt hagyunk ki a videó elejéről és végéről. Ezek a beállítások a prezentációban a videó lejátszási beállításait módosítják; nem vágják vagy egyébként nem módosítják a beágyazott videó bináris adatát.

Trim beállítások beállítása

Videókeret létrehozásához és trim beállításainak megadásához:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Adjon hozzá egy Video objektumot a prezentációhoz.
  3. Adjon hozzá egy VideoFrame objektumot egy diához.
  4. Állítsa be a trim-from-start és trim-from-end értékeket a VideoFrame.trim_from_start és a VideoFrame.trim_from_end segítségével.
  5. Mentse el a módosított prezentációt.

Az alábbi kódrészlet kihagyja az beágyazott videó első 2,5 másodpercét és az utolsó másodpercet lejátszáskor:

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(50, 50, 640, 360, video)

    video_frame.trim_from_start = 2500.0
    video_frame.trim_from_end = 1000.0

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

Trim beállítások olvasása

A meglévő trim beállítások megtekintéséhez töltse be a prezentációt, keresse meg az első dián lévő alakzatok között a VideoFrame objektumot, és olvassa ki az értékeket a VideoFrame.trim_from_start és a VideoFrame.trim_from_end segítségével.

Az alábbi kódrészlet megtalálja az első videókeretet az első dián, és ezredmásodpercben jelzi a trim beállításait:

import aspose.slides as slides

with slides.Presentation("video_with_trim.pptx") as presentation:
    slide = presentation.slides[0]
    for shape in slide.shapes:
        if isinstance(shape, slides.VideoFrame):
            video_frame = shape
            trim_from_start = video_frame.trim_from_start
            trim_from_end = video_frame.trim_from_end

            print(f"Trim from start: {trim_from_start} ms")
            print(f"Trim from end: {trim_from_end} ms")
            break

Videó feliratok kezelése

Az Aspose.Slides lehetővé teszi a zárt feliratok kezelését a PowerPoint-prezentációk videókereteihez. A feliratok WebVTT formátumban tárolódnak, és a [VideoFrame.caption_tracks] tulajdonságon keresztül érhetők el.

Feliratok hozzáadása egy videókerethez

Feliratok hozzáadásához egy videókerethez:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Adjon hozzá egy videót a prezentációhoz.
  3. Adjon hozzá egy VideoFrame objektumot egy diához.
  4. Használja a [caption_tracks] által visszaadott [CaptionsCollection] típusú gyűjteményt egy WebVTT felirat sáv hozzáadásához.
  5. Mentse el a módosított prezentációt.

Az alábbi kód bemutatja, hogyan adhat feliratokat egy videókerethez:

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)

    # Új feliratsáv hozzáadása WebVTT fájlból.
    video_frame.caption_tracks.add("English", "track.vtt")

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

A [CaptionsCollection] osztály egy túlterhelést is biztosít, amely lehetővé teszi feliratok hozzáadását adatfolyamból.

Feliratok kinyerése egy videókeretből

Feliratok kinyeréséhez egy videókeretből:

  1. Töltse be a videót tartalmazó prezentációt.
  2. Keresse meg a cél [VideoFrame] objektumot.
  3. Iteráljon a [caption_tracks] gyűjteményen.
  4. Mentse minden feliratsávot egy .vtt fájlba.

Az alábbi kód bemutatja, hogyan nyerhet ki feliratokat egy videókeretből:

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:
                # A feliratsáv mentése WebVTT fájlba.
                file_path = f"{caption_track.caption_id}.vtt"
                with open(file_path, "wb") as track_stream:
                    track_stream.write(bytes(caption_track.binary_data))

Minden [Captions] objektum megjeleníti a felirat azonosítóját, címkéjét, bináris adatait és a feliratszöveget UTF-8 karakterláncként.

Feliratok eltávolítása egy videókeretből

Feliratok eltávolításához egy videókeretből:

  1. Töltse be a videót tartalmazó prezentációt.
  2. Szerezze meg a cél [VideoFrame] objektumot.
  3. Távolítsa el a feliratsávokat a [CaptionsCollection] gyűjteményből.
  4. Mentse el a módosított prezentációt.

Az alábbi kód bemutatja, hogyan távolíthatja el az összes feliratot egy videókeretből:

import aspose.slides as slides

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

    # Eltávolítja az összes feliratot a videókeretről.
    video_frame.caption_tracks.clear()

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

Ha csak egy feliratsávot kell eltávolítani, használja a [remove] vagy a [remove_at] metódust a [clear] helyett.

Videó kinyerése diáról

A videók diákhoz való hozzáadása mellett az Aspose.Slides lehetővé teszi a prezentációkba beágyazott videók kinyerését.

  1. Hozzon létre egy példányt a [Presentation] osztályból a videót tartalmazó prezentáció betöltéséhez.
  2. Iteráljon az összes [Slide] objektumon.
  3. Iteráljon az összes [Shape] objektumon, hogy megtalálja a [VideoFrame] objektumot.
  4. Mentse a videót a lemezre.

Ez a Python-kód megmutatja, hogyan nyerheti ki a videót egy prezentációs diáról:

import aspose.slides as slides

# Létrehozza a Presentation objektumot, amely egy prezentációs fájlt képvisel
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)

GYIK

Milyen videólejátszási paraméterek módosíthatók egy VideoFrame esetén?

A [playback mode] (automatikus vagy kattintásra) és a [looping] (ismétlés) vezérelhető. Ezek az opciók a [VideoFrame] objektum tulajdonságain keresztül érhetők el.

A videó hozzáadása befolyásolja a PPTX fájl méretét?

Igen. Ha helyi videót ágyaz be, a bináris adat is része lesz a dokumentumnak, így a prezentáció mérete arányosan nő a fájl méretével. Ha online videót ad hozzá, csak egy hivatkozás és egy miniatűr kerül beágyazásra, ezért a méretnövekedés kisebb.

Lecserélhetem a videót egy meglévő VideoFrame-ben anélkül, hogy megváltoztatnám a pozícióját és méretét?

Igen. A keretben lévő [video content] cserélhető a forma geometriai adatainak megőrzése mellett; ez gyakori eset a média frissítésére egy meglévő elrendezésben.

Megállapítható-e egy beágyazott videó tartalomtípusa (MIME)?

Igen. Egy beágyazott videónak van [content type] (tartalomtípusa), amelyet leolvashat és felhasználhat, például a lemezre mentéskor.