PowerPoint prezentációk videóvá alakítása Pythonban

Bevezetés

PowerPoint vagy OpenDocument prezentációjának videóvá alakításával a következőket nyújtja:

Növelt hozzáférhetőség: Minden eszköz, platformtól függetlenül, alapértelmezés szerint videólejátszóval van felszerelve, így a felhasználók számára egyszerűbb a videók megnyitása vagy lejátszása a hagyományos prezentációs alkalmazásokhoz képest.

Szélesebb közönség: A videók lehetővé teszik, hogy nagyobb közönséget érjen el, és információkat vonzóbb formátumban mutasson be. Felmérések és statisztikák szerint az emberek szívesebben néznek és fogyasztanak videótartalmakat más formákkal szemben, így üzenete hatásosabb lesz.

Az Aspose.Slides for Python 24.4 verzióban bevezettük a prezentációk videóvá alakításának támogatását.

  • Használja az Aspose.Slides for Python-t a diák képkockáinak előállításához a megadott képkockasebességgel (FPS).
  • Ezután használjon harmadik fél által biztosított eszközt, például az ffmpeg-et, hogy ezeket a képkockákat videóvá állítsa össze.

PowerPoint prezentáció videóvá alakítása

  1. Használja a pip install parancsot az Aspose.Slides for Python hozzáadásához a projektjéhez: pip install aspose-slides==24.4.0
  2. Töltse le az ffmpeg-et itt, vagy telepítse a csomagkezelőn keresztül.
  3. Győződjön meg arról, hogy az ffmpeg szerepel a PATH környezeti változóban. Ellenkező esetben indítsa az ffmpeg-et a bináris teljes elérési útjával (pl. C:\ffmpeg\ffmpeg.exe Windows alatt vagy /opt/ffmpeg/ffmpeg Linux alatt).
  4. Futtassa a PowerPoint‑videó átalakító kódot.

Ez a Python kód bemutatja, hogyan konvertáljon egy prezentációt (amely egy alakzatot és két animációs effektet tartalmaz) videóvá:

import aspose.slides as slides
import subprocess

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    smile_shape = slide.shapes.add_auto_shape(slides.ShapeType.SMILEY_FACE, 110, 20, 500, 500)

    effect_in = slide.timeline.main_sequence.add_effect(
        smile_shape,
        slides.animation.EffectType.FLY,
        slides.animation.EffectSubtype.TOP_LEFT,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect_out = slide.timeline.main_sequence.add_effect(
        smile_shape,
        slides.animation.EffectType.FLY,
        slides.animation.EffectSubtype.BOTTOM_RIGHT,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect_in.timing.duration = 2
    effect_out.preset_class_type = slides.animation.EffectPresetClassType.EXIT

    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
            frame_args.get_frame().save(frame)

    cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p",
                "smile.webm"]
    subprocess.call(cmd_line)

Videóhatások

PowerPoint prezentáció videóvá alakításakor az Aspose.Slides for Python segítségével különféle videóhatásokat alkalmazhat a kimenet vizuális minőségének javításához. Ezek a hatások lehetővé teszik a diák megjelenésének szabályozását a végvideóban, sima átmenetek, animációk és egyéb vizuális elemek hozzáadásával. Ez a rész bemutatja a rendelkezésre álló videóeffektus opciókat és azok alkalmazását.

Az animációk és átmenetek élvezetesebbé és érdekesebbé teszik a diavetítéseket — és ugyanezt teszik a videók esetében is. Adjunk egy új diát és átmenetet a korábbi prezentáció kódjához:

import aspose.pydrawing as drawing

# Adj hozzá egy mosoly alakzatot és animáld.
# ...

# Adj hozzá egy új diát és egy animált átmenetet.
new_slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
new_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
new_slide.background.fill_format.fill_type = slides.FillType.SOLID
new_slide.background.fill_format.solid_fill_color.color = drawing.Color.indigo
new_slide.slide_show_transition.type = slides.TransitionType.PUSH

Az Aspose.Slides for Python szöveganimációkat is támogat. Ebben a példában bekezdéseket animálunk objektumokon úgy, hogy egyesével, egy másodperces késleltetéssel jelennek meg:

import aspose.slides as slides
import subprocess

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Szöveget és animációkat adjon hozzá.
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 210, 120, 300, 300)
    para1 = slides.Paragraph()
    para1.portions.add(slides.Portion("Aspose.Slides for Python"))
    para2 = slides.Paragraph()
    para2.portions.add(slides.Portion("Convert a PowerPoint presentation with text to video"))

    para3 = slides.Paragraph()
    para3.portions.add(slides.Portion("paragraph by paragraph"))
    auto_shape.text_frame.paragraphs.add(para1)
    auto_shape.text_frame.paragraphs.add(para2)
    auto_shape.text_frame.paragraphs.add(para3)
    auto_shape.text_frame.paragraphs.add(slides.Paragraph())

    effect = slide.timeline.main_sequence.add_effect(
        para1,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect2 = slide.timeline.main_sequence.add_effect(
        para2,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect3 = slide.timeline.main_sequence.add_effect(
        para3,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect4 = slide.timeline.main_sequence.add_effect(
        para3,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect.timing.trigger_delay_time = 1
    effect2.timing.trigger_delay_time = 1
    effect3.timing.trigger_delay_time = 1
    effect4.timing.trigger_delay_time = 1

    # Képkockák konvertálása videóvá.
    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
            frame_args.get_frame().save(frame)

    cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p", "text_animation.webm"]
    subprocess.call(cmd_line)

Videókonverziós osztályok

A PowerPoint‑videó konverziós feladatok támogatásához az Aspose.Slides for Python a PresentationEnumerableFramesGenerator szolgáltatást kínálja.

PresentationEnumerableFramesGenerator a konstruktorában lehetővé teszi a videó képkockaméretének és a FPS (képkocka per másodperc) értékének beállítását. Ha egy prezentáció példányát adja át, annak Presentation.SlideSize értéke lesz felhasználva.

A prezentáció összes animációjának egyidejű lejátszásához használja a PresentationEnumerableFramesGenerator.enumerate_frames metódust. Ez a metódus egy diakollekciót vár, és sorban visszaadja a EnumerableFrameArgs elemeket. Ezután a EnumerableFrameArgs.get_frame() hívással szerezheti meg az egyes videóképkockákat.

import aspose.slides as slides

with slides.Presentation("animated.pptx") as presentation:
    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame_args.get_frame().save(f"frame_{frame_args.frames_generator.frame_index:04d}.png")

Ezután a generált képkockák videóvá állíthatók össze. További részletekért lásd a Convert PowerPoint to Video szakaszt.

Támogatott animációk és hatások

PowerPoint prezentáció videóvá alakításakor az Aspose.Slides for Python használatával fontos megérteni, hogy mely animációk és hatások támogatottak a kimenetben. Az Aspose.Slides számos általános belépő, kilépő és kiemelő effektust támogat, például fade, fly in, zoom és spin. Egyes fejlett vagy egyedi animációk azonban nem biztos, hogy teljesen megmaradnak, vagy eltérően jelennek meg a végvideóban. Ez a szakasz felsorolja a támogatott animációkat és hatásokat.

Belépés:

Animáció típusa Aspose.Slides PowerPoint
Appear not supported supported
Fade supported supported
Fly In supported supported
Float In supported supported
Split supported supported
Wipe supported supported
Shape supported supported
Wheel supported supported
Random Bars supported supported
Grow & Turn not supported supported
Zoom supported supported
Swivel supported supported
Bounce supported supported

Kiemelés:

Animáció típusa Aspose.Slides PowerPoint
Pulse not supported supported
Color Pulse not supported supported
Teeter supported supported
Spin supported supported
Grow/Shrink not supported supported
Desaturate not supported supported
Darken not supported supported
Lighten not supported supported
Transparency not supported supported
Object Color not supported supported
Complementary Color not supported supported
Line Color not supported supported
Fill Color not supported supported

Kilépés:

Animáció típusa Aspose.Slides PowerPoint
Disappear not supported supported
Fade supported supported
Fly Out supported supported
Float Out supported supported
Split supported supported
Wipe supported supported
Shape supported supported
Random Bars supported supported
Shrink & Turn not supported supported
Zoom supported supported
Swivel supported supported
Bounce supported supported

Mozgási útvonalak:

Animáció típusa Aspose.Slides PowerPoint
Lines supported supported
Arcs supported supported
Turns supported supported
Shapes supported supported
Loops supported supported
Custom Path supported supported

Támogatott diaátmenet‑effektusok

A diaátmenet‑effektusok fontos szerepet játszanak a diák közötti sima és vizuálisan vonzó változások létrehozásában a videóban. Az Aspose.Slides for Python számos gyakran használt átmeneti effektust támogat, amelyek segítenek megőrizni az eredeti prezentáció folyamatát és stílusát. Ez a rész kiemeli, mely átmeneti effektusok támogatottak a konverziós folyamat során.

Finom:

Animáció típusa Aspose.Slides PowerPoint
Morph not supported supported
Fade supported supported
Push supported supported
Pull supported supported
Wipe supported supported
Split supported supported
Reveal not supported supported
Random Bars supported supported
Shape not supported supported
Uncover not supported supported
Cover supported supported
Flash supported supported
Strips supported supported

Izgalmas:

Animáció típusa Aspose.Slides PowerPoint
Fall Over not supported supported
Drape not supported supported
Curtains not supported supported
Wind not supported supported
Prestige not supported supported
Fracture not supported supported
Crush not supported supported
Peel Off not supported supported
Page Curl not supported supported
Airplane not supported supported
Origami not supported supported
Dissolve supported supported
Checkerboard not supported supported
Blinds not supported supported
Clock supported supported
Ripple not supported supported
Honeycomb not supported supported
Glitter not supported supported
Vortex not supported supported
Shred not supported supported
Switch not supported supported
Flip not supported supported
Gallery not supported supported
Cube not supported supported
Doors not supported supported
Box not supported supported
Comb not supported supported
Zoom supported supported
Random not supported supported

Dinamikus tartalom:

Animáció típusa Aspose.Slides PowerPoint
Pan not supported supported
Ferris Wheel supported supported
Conveyor not supported supported
Rotate not supported supported
Orbit not supported supported
Fly Through supported supported

GYIK

Lehetőség van jelszóval védett prezentációk konvertálására?

Igen, az Aspose.Slides for Python lehetővé teszi a jelszóval védett prezentációk kezelését. Az ilyen fájlok feldolgozásakor meg kell adnia a megfelelő jelszót, hogy a könyvtár hozzáférhessen a prezentáció tartalmához.

Támogatja-e az Aspose.Slides for Python a felhőalapú megoldásokat?

Igen, az Aspose.Slides for Python integrálható felhőalapú alkalmazásokba és szolgáltatásokba. A könyvtár úgy van tervezve, hogy szerver környezetben működjön, biztosítva a magas teljesítményt és a skálázhatóságot nagy mennyiségű fájl feldolgozásához.

Vannak-e méretkorlátok a prezentációk konvertálása során?

Az Aspose.Slides for Python gyakorlatilag bármilyen méretű prezentáció kezelésére képes. Nagyon nagy fájlok esetén azonban további rendszererőforrásokra lehet szükség, és gyakran ajánlott a prezentáció optimalizálása a teljesítmény javítása érdekében.