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
- 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 - Töltse le az ffmpeg-et itt, vagy telepítse a csomagkezelőn keresztül.
- Győződjön meg arról, hogy az ffmpeg szerepel a
PATHkörnyezeti változóban. Ellenkező esetben indítsa az ffmpeg-et a bináris teljes elérési útjával (pl.C:\ffmpeg\ffmpeg.exeWindows alatt vagy/opt/ffmpeg/ffmpegLinux alatt). - 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 | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly In | ![]() |
![]() |
| Float In | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Wheel | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Grow & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
Kiemelés:
| Animáció típusa | Aspose.Slides | PowerPoint |
|---|---|---|
| Pulse | ![]() |
![]() |
| Color Pulse | ![]() |
![]() |
| Teeter | ![]() |
![]() |
| Spin | ![]() |
![]() |
| Grow/Shrink | ![]() |
![]() |
| Desaturate | ![]() |
![]() |
| Darken | ![]() |
![]() |
| Lighten | ![]() |
![]() |
| Transparency | ![]() |
![]() |
| Object Color | ![]() |
![]() |
| Complementary Color | ![]() |
![]() |
| Line Color | ![]() |
![]() |
| Fill Color | ![]() |
![]() |
Kilépés:
| Animáció típusa | Aspose.Slides | PowerPoint |
|---|---|---|
| Disappear | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly Out | ![]() |
![]() |
| Float Out | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shrink & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
Mozgási útvonalak:
| Animáció típusa | Aspose.Slides | PowerPoint |
|---|---|---|
| Lines | ![]() |
![]() |
| Arcs | ![]() |
![]() |
| Turns | ![]() |
![]() |
| Shapes | ![]() |
![]() |
| Loops | ![]() |
![]() |
| Custom Path | ![]() |
![]() |
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 | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Push | ![]() |
![]() |
| Pull | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Split | ![]() |
![]() |
| Reveal | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Uncover | ![]() |
![]() |
| Cover | ![]() |
![]() |
| Flash | ![]() |
![]() |
| Strips | ![]() |
![]() |
Izgalmas:
| Animáció típusa | Aspose.Slides | PowerPoint |
|---|---|---|
| Fall Over | ![]() |
![]() |
| Drape | ![]() |
![]() |
| Curtains | ![]() |
![]() |
| Wind | ![]() |
![]() |
| Prestige | ![]() |
![]() |
| Fracture | ![]() |
![]() |
| Crush | ![]() |
![]() |
| Peel Off | ![]() |
![]() |
| Page Curl | ![]() |
![]() |
| Airplane | ![]() |
![]() |
| Origami | ![]() |
![]() |
| Dissolve | ![]() |
![]() |
| Checkerboard | ![]() |
![]() |
| Blinds | ![]() |
![]() |
| Clock | ![]() |
![]() |
| Ripple | ![]() |
![]() |
| Honeycomb | ![]() |
![]() |
| Glitter | ![]() |
![]() |
| Vortex | ![]() |
![]() |
| Shred | ![]() |
![]() |
| Switch | ![]() |
![]() |
| Flip | ![]() |
![]() |
| Gallery | ![]() |
![]() |
| Cube | ![]() |
![]() |
| Doors | ![]() |
![]() |
| Box | ![]() |
![]() |
| Comb | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Random | ![]() |
![]() |
Dinamikus tartalom:
| Animáció típusa | Aspose.Slides | PowerPoint |
|---|---|---|
| Pan | ![]() |
![]() |
| Ferris Wheel | ![]() |
![]() |
| Conveyor | ![]() |
![]() |
| Rotate | ![]() |
![]() |
| Orbit | ![]() |
![]() |
| Fly Through | ![]() |
![]() |
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.

