Konvertera PowerPoint-presentationer till video i Python

Introduktion

Genom att konvertera din PowerPoint- eller OpenDocument-presentation till video får du:

Ökad tillgänglighet: Alla enheter, oavsett plattform, har som standard videospelare, vilket gör det enklare för användare att öppna eller spela upp videor jämfört med traditionella presentationsprogram.

Bredare räckvidd: Videor gör det möjligt att nå en större publik och presentera information i ett mer engagerande format. Undersökningar och statistik visar att människor föredrar att titta på och konsumera videoinnehåll framför andra former, vilket gör ditt budskap mer kraftfullt.

I Aspose.Slides for Python 24.4 implementerade vi stöd för att konvertera presentationer till video.

  • Använd Aspose.Slides for Python för att generera bildrutor från presentationsbilderna med en specificerad bildfrekvens (FPS).
  • Använd sedan ett tredjepartsverktyg som ffmpeg för att sammanställa dessa bildrutor till en video.

Konvertera en PowerPoint-presentation till video

  1. Använd pip‑install‑kommandot för att lägga till Aspose.Slides for Python i ditt projekt: pip install aspose-slides==24.4.0
  2. Hämta ffmpeg från här eller installera det via pakethanteraren.
  3. Se till att ffmpeg finns i PATH. Annars starta ffmpeg med den fullständiga sökvägen till den körbara filen (t.ex. C:\ffmpeg\ffmpeg.exe på Windows eller /opt/ffmpeg/ffmpeg på Linux).
  4. Kör koden för PowerPoint‑till‑video‑konvertering.

Denna Python‑kod visar hur man konverterar en presentation (som innehåller en form och två animeringseffekter) till en video:

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)

Videoeffekter

När du konverterar en PowerPoint-presentation till video med Aspose.Slides for Python kan du applicera olika videoeffekter för att förbättra den visuella kvaliteten på resultatet. Dessa effekter låter dig styra hur bilderna ser ut i den färdiga videon genom att lägga till mjuka övergångar, animationer och andra visuella element. Denna avsnitt förklarar de tillgängliga videoeffektalternativen och visar hur man använder dem.

Animationer och övergångar gör bildspel mer engagerande och intressanta — och de gör samma sak för videor. Låt oss lägga till en ytterligare bild och en övergång i koden för den föregående presentationen:

import aspose.pydrawing as drawing

# Lägg till en leendeform och animera den.
# ...

# Lägg till en ny bild och en animerad övergång.
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

Aspose.Slides for Python stödjer också textanimationer. I detta exempel animerar vi stycken på objekt så att de visas ett efter ett, med en sekunds fördröjning mellan dem:

import aspose.slides as slides
import subprocess

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

    # Lägg till text och animationer.
    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

    # Konvertera bildrutor till video.
    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)

Klasser för videokonvertering

För att möjliggöra PowerPoint‑till‑video‑konverteringsuppgifter tillhandahåller Aspose.Slides for Python PresentationEnumerableFramesGenerator.

PresentationEnumerableFramesGenerator låter dig ange bildstorleken för videon (som kommer att skapas senare) och FPS‑värdet (bilder per sekund) via dess konstruktor. Om du anger en instans av en presentation kommer dess Presentation.SlideSize att användas.

För att låta alla animationer i en presentation spelas upp samtidigt, använd metoden PresentationEnumerableFramesGenerator.enumerate_frames. Denna metod tar en samling bilder och returnerar sekventiellt EnumerableFrameArgs. Använd sedan EnumerableFrameArgs.get_frame() för att hämta varje videobildruta.

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

Därefter kan de genererade bildrutorna sammanställas till en video. För mer information, se avsnittet Konvertera PowerPoint till video.

Stödda animationer och effekter

När du konverterar en PowerPoint-presentation till video med Aspose.Slides for Python är det viktigt att förstå vilka animationer och effekter som stöds i resultatet. Aspose.Slides stödjer ett brett spektrum av vanliga inträdes-, utgångs‑ och betoningseffekter såsom toning, inflygning, zoom och rotation. Vissa avancerade eller anpassade animationer kan dock inte bevaras helt eller kan visas annorlunda i den färdiga videon. Detta avsnitt beskriver de stödda animationerna och effekterna.

Inträde:

Animationstyp 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

Betoning:

Animationstyp 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

Utgång:

Animationstyp 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

Rörelsebanor:

Animationstyp Aspose.Slides PowerPoint
Lines supported supported
Arcs supported supported
Turns supported supported
Shapes supported supported
Loops supported supported
Custom Path supported supported

Stödda bildövergångseffekter

Bildövergångseffekter spelar en viktig roll för att skapa smidiga och visuellt tilltalande övergångar mellan bilder i en video. Aspose.Slides for Python stödjer en mängd vanliga övergångseffekter för att bevara flödet och stilen i din ursprungliga presentation. Detta avsnitt lyfter fram vilka övergångseffekter som stöds under konverteringsprocessen.

Subtila:

Animationstyp 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

Spännande:

Animationstyp 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

Dynamiskt innehåll:

Animationstyp 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

Vanliga frågor

Är det möjligt att konvertera presentationer som är lösenordsskyddade?

Ja, Aspose.Slides for Python tillåter arbete med lösenordsskyddade presentationer. Vid bearbetning av sådana filer måste du ange rätt lösenord så att biblioteket kan komma åt presentationens innehåll.

Stöder Aspose.Slides for Python användning i molnlösningar?

Ja, Aspose.Slides for Python kan integreras i molnapplikationer och -tjänster. Biblioteket är designat för att fungera i servermiljöer och säkerställer hög prestanda och skalbarhet för batchbearbetning av filer.

Finns det några storleksbegränsningar för presentationer vid konvertering?

Aspose.Slides for Python kan hantera presentationer av i princip vilken storlek som helst. Vid arbete med mycket stora filer kan dock ytterligare systemresurser behövas, och det kan ibland rekommenderas att optimera presentationen för att förbättra prestandan.