Crear vídeo en PowerPoint

Un video derivado de una presentación de PowerPoint es bastante efectivo para mostrar una visualización de datos y comercializar un producto. También es bastante competente para entregar diferentes tipos de mensajes a una amplia categoría de audiencia. Dados los beneficios asociados con una reproducción de video real sobre una presentación estándar, tiene sentido convertir PPT a video en muchos escenarios.

Convertir PPT a video en C#

En este artículo, tenemos la intención de guiarlo a través de una operación para realizar el PPT a MP4 tarea de conversión mediante programación. Vea cómo convertir PPT a video en C# a continuación.

API de C# para convertir PPT en video

Convertir PPT a video

Un video consta de fotogramas, por lo que el proceso de conversión de PowerPoint a video requiere que haga dos cosas:

  • Genere un conjunto de marcos basados en las diapositivas de la presentación. Aspose.Slides for .NET es útil aquí. Para instalar Aspose.Slides for .NET, consulte Instalación.

  • crear un video basado en los marcos generados. Aquí es donde entra ffmpeg (y ffmpeg core para .NET): descargue ffmpeg aquí.

Información: Aspose proporciona un gratuito conversor de PowerPoint a video que permite transformar presentaciones de PowerPoint en video. Es posible que desee ver este convertidor porque es una implementación en vivo del proceso aquí.

Convertir PPT a video en C#

  1. Agregue Aspose.Slides for .NET y FFMpegCore a su proyecto mediante el comando dotnet add package:

    • Para agregar Aspose.Slides for .NET, ejecute dotnet add package Aspose.Slides.NET --version 22.11.0
    • Para agregar FFMpegCore, ejecute dotnet add package FFMpegCore --version 4.8.0
  2. Especifique la ruta al ffmpeg que obtuvo anteriormente (por ejemplo, lo extrajo a “C:\tools\ffmpeg”) de esta manera: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Ejecute el código para convertir PowerPoint a 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())

{
    // Agrega una forma de sonrisa y luego 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);
    }

    // Configure la carpeta de archivos binarios de ffmpeg. Consulte esta página: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Convierte cuadros a video webm
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Aplicar efectos y animaciones en video

Las presentaciones que contienen transiciones y animaciones son generalmente más atractivas e interesantes que aquellas que no tienen esos efectos. El mismo principio se aplica a los videos: un video que simplemente se desliza en una sucesión rápida simplemente no lo cortará a veces.

Aspose.Slides admite transiciones y animaciones comunes, por lo que puede aplicar y usar esos efectos en su video. Suponiendo que continuamos con el código de la sección anterior, podemos hacer otra diapositiva y una transición de esta manera:

// Agrega una forma de sonrisa y la anima.

// ...

// Agrega una nueva diapositiva y una transición animada.

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;

Además de animaciones para diapositivas, Aspose.Slides le permite agregar animaciones para textos. De esta manera, puede animar párrafos en objetos para que aparezcan uno tras otro (con el retraso establecido en un segundo, por ejemplo):

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

using (Presentation presentation = new Presentation())
{
    // Añade texto y animaciones.
    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;

    // Convierte cuadros a 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);
    }
    // Configure la carpeta de archivos binarios de ffmpeg. Consulte esta página: https://github.com/rosenbjerg/FFMpegCore#installation

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

}

Obtenga una licencia gratis

¿Quiere probar las funciones de Aspose.Slides sin limitaciones? Obtenga una licencia temporal gratuita.

Conclusión

En este punto, creemos que ahora sabe cómo convertir PowerPoint PPT en videos simples o videos más complicados con animaciones, transiciones y otros efectos.

Para obtener más información sobre las de Aspose.Slides características, consulte nuestra documentación. Si tiene preguntas, puede publicarlas en nuestro foro.

Ver también