Crea video in PowerPoint

Un video derivato da una presentazione di PowerPoint è abbastanza efficace per mostrare una visualizzazione dei dati e commercializzare un prodotto. È anche abbastanza abile nel fornire diversi tipi di messaggi a un’ampia categoria di pubblico. Dati i vantaggi associati a una riproduzione video reale rispetto a una presentazione standard, ha senso convertire PPT in video in molti scenari.

Converti PPT in video in C#

In questo articolo, intendiamo guidarti attraverso un’operazione sull’esecuzione di PPT in MP4 attività di conversione a livello di codice. Scopri come convertire PPT in video in C# di seguito.

API C# per convertire PPT in video

Converti PPT in video

Un video è costituito da fotogrammi, quindi il processo di conversione da PowerPoint a video richiede di eseguire due operazioni:

  • Genera una serie di frame basati sulle diapositive della presentazione. Aspose.Slides for .NET è utile qui. Per installare Aspose.Slides for .NET, vedere Installazione.

  • creare un video basato sui fotogrammi generati. È qui che entra in gioco ffmpeg (e ffmpeg core per .NET): scarica ffmpeg qui.

Informazioni: Aspose fornisce un convertitore da PowerPoint a video gratuito che consente di trasformare le presentazioni PowerPoint in video. Potresti voler vedere questo convertitore perché è un’implementazione live del processo qui.

Converti PPT in video in C#

  1. Aggiungi Aspose.Slides for .NET e FFMpegCore al tuo progetto tramite il comando “dotnet add package”:

    • Per aggiungere Aspose.Slides for .NET, eseguire dotnet add package Aspose.Slides.NET --version 22.11.0
    • Per aggiungere FFMpegCore, esegui dotnet add package FFMpegCore --version 4.8.0
  2. Specifica il percorso del file ffmpeg che hai ottenuto in precedenza (ad esempio, lo hai estratto in “C:\tools\ffmpeg”) in questo modo: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Esegui il codice per convertire PowerPoint in video:

using System.Collections.Generic;
using Aspose.Slides;
using FFMpegCore; // Will use FFmpeg binaries we extracted to "c:\tools\ffmpeg" before
using Aspose.Slides.Animation;
using (Presentation presentation = new Presentation())

{
    // Aggiunge una forma di sorriso e poi la anima
    IAutoShape smile = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.SmileyFace, 110, 20, 500, 500);
    IEffect effectIn = presentation.Slides[0].Timeline.MainSequence.AddEffect(smile, EffectType.Fly, EffectSubtype.TopLeft, EffectTriggerType.AfterPrevious);
    IEffect effectOut = presentation.Slides[0].Timeline.MainSequence.AddEffect(smile, EffectType.Fly, EffectSubtype.BottomRight, EffectTriggerType.AfterPrevious);
    effectIn.Timing.Duration = 2f;
    effectOut.PresetClassType = EffectPresetClassType.Exit;

   const int Fps = 33;
   List<string> frames = new List<string>();

   using (var animationsGenerator = new PresentationAnimationsGenerator(presentation))
    using (var player = new PresentationPlayer(animationsGenerator, Fps))
    {
        player.FrameTick += (sender, args) =>
        {
            string frame = $"frame_{(sender.FrameIndex):D4}.png";
            args.GetFrame().Save(frame);
            frames.Add(frame);
        };
        animationsGenerator.Run(presentation.Slides);
    }

    // Configura la cartella dei binari di ffmpeg. Vedi questa pagina: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Converte i fotogrammi in video webm
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Applica effetti e animazioni ai video

Le presentazioni contenenti transizioni e animazioni sono generalmente più coinvolgenti e interessanti di quelle prive di tali effetti. Lo stesso principio si applica ai video: un video che scorre semplicemente in rapida successione a volte non viene tagliato.

Aspose.Slides supporta transizioni e animazioni comuni, quindi puoi applicare e utilizzare quegli effetti nel tuo video. Supponendo di continuare con il codice della sezione precedente, possiamo un’altra diapositiva e una transizione in questo modo:

// Aggiunge una forma di sorriso e la anima

// ...

// Aggiunge una nuova diapositiva e una transizione animata

ISlide newSlide = presentation.Slides.AddEmptySlide(presentation.Slides[0].LayoutSlide);

newSlide.Background.Type = BackgroundType.OwnBackground;

newSlide.Background.FillFormat.FillType = FillType.Solid;

newSlide.Background.FillFormat.SolidFillColor.Color = Color.Indigo;

newSlide.SlideShowTransition.Type = TransitionType.Push;

Oltre alle animazioni per le diapositive, Aspose.Slides ti consente di aggiungere animazioni per i testi. In questo modo, puoi animare i paragrafi sugli oggetti per farli apparire uno dopo l’altro (con il ritardo impostato su un secondo, ad esempio):

using System.Collections.Generic;
using Aspose.Slides.Export;
using Aspose.Slides;
using FFMpegCore;
using Aspose.Slides.Animation;

using (Presentation presentation = new Presentation())
{
    // Aggiunge testo e animazioni
    IAutoShape autoShape = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 210, 120, 300, 300);
    Paragraph para1 = new Paragraph();
    para1.Portions.Add(new Portion("Aspose Slides for .NET"));
    Paragraph para2 = new Paragraph();
    para2.Portions.Add(new Portion("convert PowerPoint Presentation with text to video"));

    Paragraph para3 = new Paragraph();
    para3.Portions.Add(new Portion("paragraph by paragraph"));
    autoShape.TextFrame.Paragraphs.Add(para1);
    autoShape.TextFrame.Paragraphs.Add(para2);
    autoShape.TextFrame.Paragraphs.Add(para3);
    autoShape.TextFrame.Paragraphs.Add(new Paragraph());

    IEffect effect = presentation.Slides[0].Timeline.MainSequence.AddEffect(para1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    IEffect effect2 = presentation.Slides[0].Timeline.MainSequence.AddEffect(para2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    IEffect effect3 = presentation.Slides[0].Timeline.MainSequence.AddEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    IEffect effect4 = presentation.Slides[0].Timeline.MainSequence.AddEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    effect.Timing.TriggerDelayTime = 1f;
    effect2.Timing.TriggerDelayTime = 1f;
    effect3.Timing.TriggerDelayTime = 1f;
    effect4.Timing.TriggerDelayTime = 1f;

    // Converte i fotogrammi in video
    const int Fps = 33;
    List<string> frames = new List<string>();
    
    using (var animationsGenerator = new PresentationAnimationsGenerator(presentation))

    using (var player = new PresentationPlayer(animationsGenerator, Fps))

    {
        player.FrameTick += (sender, args) =>
        {
            string frame = $"frame_{(sender.FrameIndex):D4}.png";
            args.GetFrame().Save(frame);
            frames.Add(frame);
        };
        animationsGenerator.Run(presentation.Slides);
    }
    // Configura la cartella dei binari di ffmpeg. Vedi questa pagina: https://github.com/rosenbjerg/FFMpegCore#installation

    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Converte i fotogrammi in video webm
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Ottieni una licenza gratuita

Stai cercando di provare le funzionalità di Aspose.Slides senza limitazioni? Ottieni una licenza temporanea gratuita.

Conclusione

A questo punto, crediamo che ora tu sappia come convertire PowerPoint PPT in video semplici o video più complicati con animazioni, transizioni e altri effetti.

Per saperne di più su Aspose.Slides funzionalità, consulta la nostra documentazione. Se hai domande, puoi pubblicarle sul nostro forum.

Guarda anche