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
- Usa il comando pip install per aggiungere Aspose.Slides for Python al tuo progetto:
pip install aspose-slides==24.4.0 - Scarica ffmpeg da qui o installalo tramite il gestore di pacchetti.
- Assicurati che ffmpeg sia nel
PATH. In caso contrario, avvia ffmpeg usando il percorso completo del binario (ad esempioC:\ffmpeg\ffmpeg.exesu Windows o/opt/ffmpeg/ffmpegsu Linux). - 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 | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly In | ![]() |
![]() |
| Float In | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Wheel | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Grow & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
Enfasi:
| Animation Type | Aspose.Slides | PowerPoint |
|---|---|---|
| Pulse | ![]() |
![]() |
| Color Pulse | ![]() |
![]() |
| Teeter | ![]() |
![]() |
| Spin | ![]() |
![]() |
| Grow/Shrink | ![]() |
![]() |
| Desaturate | ![]() |
![]() |
| Darken | ![]() |
![]() |
| Lighten | ![]() |
![]() |
| Transparency | ![]() |
![]() |
| Object Color | ![]() |
![]() |
| Complementary Color | ![]() |
![]() |
| Line Color | ![]() |
![]() |
| Fill Color | ![]() |
![]() |
Uscita:
| Animation Type | Aspose.Slides | PowerPoint |
|---|---|---|
| Disappear | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly Out | ![]() |
![]() |
| Float Out | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shrink & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
Percorsi di movimento:
| Animation Type | Aspose.Slides | PowerPoint |
|---|---|---|
| Lines | ![]() |
![]() |
| Arcs | ![]() |
![]() |
| Turns | ![]() |
![]() |
| Shapes | ![]() |
![]() |
| Loops | ![]() |
![]() |
| Custom Path | ![]() |
![]() |
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 | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Push | ![]() |
![]() |
| Pull | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Split | ![]() |
![]() |
| Reveal | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Uncover | ![]() |
![]() |
| Cover | ![]() |
![]() |
| Flash | ![]() |
![]() |
| Strips | ![]() |
![]() |
Eccitante:
| Animation Type | 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 | ![]() |
![]() |
Contenuto dinamico:
| Animation Type | Aspose.Slides | PowerPoint |
|---|---|---|
| Pan | ![]() |
![]() |
| Ferris Wheel | ![]() |
![]() |
| Conveyor | ![]() |
![]() |
| Rotate | ![]() |
![]() |
| Orbit | ![]() |
![]() |
| Fly Through | ![]() |
![]() |
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.

