Convertire le presentazioni PowerPoint in video con Python

Introduzione

Convertendo la tua presentazione PowerPoint o OpenDocument in video, ottieni:

Accessibilità aumentata: Tutti i dispositivi, indipendentemente dalla piattaforma, sono dotati di lettori video di default, rendendo più facile per gli utenti aprire o riprodurre video rispetto alle tradizionali applicazioni di presentazione.

Portata più ampia: I video ti permettono di raggiungere un pubblico più ampio e presentare le informazioni in un formato più coinvolgente. Indagini e statistiche indicano che le persone preferiscono guardare e consumare contenuti video rispetto ad altri formati, rendendo il tuo messaggio più incisivo.

In Aspose.Slides for Python 24.4, abbiamo implementato il supporto per la conversione delle presentazioni in video.

  • Usa Aspose.Slides for Python per generare fotogrammi dalle diapositive della presentazione a una frequenza specificata (FPS).
  • Quindi, utilizza un’utilità di terze parti come ffmpeg per compilare questi fotogrammi in un video.

Convertire una presentazione PowerPoint in video

  1. Usa il comando pip install per aggiungere Aspose.Slides for Python al tuo progetto: pip install aspose-slides==24.4.0
  2. Scarica ffmpeg da qui o installalo tramite il gestore di pacchetti.
  3. Assicurati che ffmpeg sia nel PATH. In caso contrario, avvia ffmpeg usando il percorso completo del binario (ad esempio C:\ffmpeg\ffmpeg.exe su Windows o /opt/ffmpeg/ffmpeg su Linux).
  4. Esegui il codice di conversione da PowerPoint a video.

Questo codice Python dimostra come convertire una presentazione (contenente una forma e due effetti di animazione) in un 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)

Effetti video

Convertendo una presentazione PowerPoint in video usando Aspose.Slides for Python, puoi applicare vari effetti video per migliorare la qualità visiva dell’output. Questi effetti ti consentono di controllare l’aspetto delle diapositive nel video finale aggiungendo transizioni fluide, animazioni e altri elementi visivi. Questa sezione spiega le opzioni di effetto video disponibili e mostra come applicarle.

Le animazioni e le transizioni rendono le presentazioni più coinvolgenti e interessanti — e lo stesso vale per i video. Aggiungiamo un’altra diapositiva e una transizione al codice della presentazione precedente:

import aspose.pydrawing as drawing

# Aggiungi una forma sorridente e animala.
# ...

# Aggiungi una nuova diapositiva e una transizione animata.
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 supporta anche le animazioni di testo. In questo esempio, animiamo i paragrafi sugli oggetti in modo che appaiano uno dopo l’altro, con un ritardo di un secondo tra di loro:

import aspose.slides as slides
import subprocess

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

    # Aggiungi testo e animazioni.
    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

    # Converti i fotogrammi in 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)

Classi di conversione video

Per abilitare le attività di conversione da PowerPoint a video, Aspose.Slides for Python fornisce il PresentationEnumerableFramesGenerator.

PresentationEnumerableFramesGenerator ti consente di impostare la dimensione del fotogramma per il video (che sarà creato successivamente) e il valore FPS (fotogrammi al secondo) tramite il suo costruttore. Se passi un’istanza di una presentazione, verrà utilizzato il suo Presentation.SlideSize.

Per far riprodurre tutte le animazioni di una presentazione contemporaneamente, usa il metodo PresentationEnumerableFramesGenerator.enumerate_frames. Questo metodo prende una collezione di diapositive e restituisce sequenzialmente EnumerableFrameArgs. Poi, usa EnumerableFrameArgs.get_frame() per ottenere ogni fotogramma video.

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

Le fotogrammi generate possono quindi essere compilate in un video. Per ulteriori dettagli, consulta la sezione Convert PowerPoint to Video.

Animazioni ed effetti supportati

Convertendo una presentazione PowerPoint in video usando Aspose.Slides for Python, è importante capire quali animazioni ed effetti sono supportati nell’output. Aspose.Slides supporta un’ampia gamma di effetti comuni di ingresso, uscita e enfasi come dissolvenza, ingresso volante, zoom e rotazione. Tuttavia, alcune animazioni avanzate o personalizzate potrebbero non essere completamente preservate o potrebbero apparire diversamente nel video finale. Questa sezione elenca le animazioni ed effetti supportati.

Ingresso:

Animation Type 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

Enfasi:

Animation Type 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

Uscita:

Animation Type 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

Percorsi di movimento:

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

Effetti di transizione delle diapositive supportati

Gli effetti di transizione delle diapositive svolgono un ruolo importante nel creare cambiamenti fluidi e visivamente accattivanti tra le diapositive in un video. Aspose.Slides for Python supporta una varietà di effetti di transizione comunemente usati per aiutare a preservare il flusso e lo stile della tua presentazione originale. Questa sezione evidenzia quali effetti di transizione sono supportati durante il processo di conversione.

Sottile:

Animation Type 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

Eccitante:

Animation Type 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

Contenuto dinamico:

Animation Type 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

Domande frequenti

È possibile convertire presentazioni protette da password?

Sì, Aspose.Slides for Python permette di lavorare con presentazioni protette da password. Quando si elaborano tali file, è necessario fornire la password corretta affinché la libreria possa accedere al contenuto della presentazione.

Aspose.Slides for Python supporta l’uso in soluzioni cloud?

Sì, Aspose.Slides for Python può essere integrato in applicazioni e servizi cloud. La libreria è progettata per funzionare in ambienti server, garantendo alte prestazioni e scalabilità per l’elaborazione batch di file.

Ci sono limiti di dimensione per le presentazioni durante la conversione?

Aspose.Slides for Python è in grado di gestire presentazioni di praticamente qualsiasi dimensione. Tuttavia, quando si lavora con file molto grandi, potrebbero essere necessarie risorse di sistema aggiuntive, ed è talvolta consigliato ottimizzare la presentazione per migliorare le prestazioni.