Criar vídeo no PowerPoint

Um vídeo derivado de uma apresentação do PowerPoint é bastante eficaz para mostrar uma visualização de dados e comercializar um produto. Também é bastante proficiente em entregar diferentes tipos de mensagens para uma ampla categoria de público. Dados os benefícios associados à reprodução de um vídeo real em relação a uma apresentação padrão, faz sentido converter PPT em vídeo em muitos cenários.

Converter PPT para Vídeo em C#

Neste artigo, pretendemos orientá-lo em uma operação de execução de PPT para MP4 tarefa de conversão programaticamente. Veja como converter PPT para vídeo em C# abaixo.

APIs C# para converter PPT em vídeo

Converter PPT para vídeo

Um vídeo consiste em quadros, então o processo de conversão de PowerPoint para vídeo exige que você faça duas coisas:

  • Gere um conjunto de quadros com base nos slides da apresentação. Aspose.Slides para .NET é útil aqui. Para instalar o Aspose.Slides para .NET, consulte Instalação.

  • crie um vídeo com base nos quadros gerados. É aqui que entra o ffmpeg (e o ffmpeg core para .NET) — baixe o ffmpeg aqui.

Informações: Aspose fornece um [conversor de PowerPoint para vídeo] gratuito (https://products.aspose.app/slides/import/jpg-to-ppt) que permite transformar apresentações de PowerPoint em vídeo. Você pode querer ver este conversor porque é uma implementação ao vivo do processo aqui.

Converter PPT para vídeo em C#

  1. Adicione Aspose.Slides para .NET e FFMpegCore ao seu projeto através do comando dotnet add package:

    • Para adicionar Aspose.Slides para .NET, execute dotnet add package Aspose.Slides.NET --version 22.11.0
    • Para adicionar o FFMpegCore, execute dotnet add package FFMpegCore --version 4.8.0
  2. Especifique o caminho para o ffmpeg obtido anteriormente (por exemplo, você o extraiu para “C:\tools\ffmpeg”) desta forma: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Execute o código para converter PowerPoint em vídeo:

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

{
    // Adiciona uma forma de sorriso e depois a 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 a pasta de binários do ffmpeg. Veja esta página: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Converte quadros para vídeo webm
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Aplicar efeitos e animações em vídeo

As apresentações que contêm transições e animações são geralmente mais envolventes e interessantes do que aquelas sem esses efeitos. O mesmo princípio se aplica aos vídeos - um vídeo que simplesmente desliza em rápida sucessão não vai funcionar às vezes.

Aspose.Slides oferece suporte a transições e animações comuns, para que você possa aplicar e usar esses efeitos em seu vídeo. Assumindo que continuamos com o código da seção anterior, podemos outro slide e uma transição desta forma:

// Adiciona uma forma de sorriso e a anima

// ...

// Adiciona um novo slide e transição 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;

Além de animações para slides, o Aspose.Slides permite adicionar animações para textos. Dessa forma, você consegue animar parágrafos em objetos para fazê-los aparecer um após o outro (com o atraso definido para um segundo, por exemplo):

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

using (Presentation presentation = new Presentation())
{
    // Adiciona texto e animações
    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 quadros em vídeo
    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 a pasta de binários do ffmpeg. Veja esta página: https://github.com/rosenbjerg/FFMpegCore#installation

    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Converte quadros para vídeo webm
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Obtenha uma licença gratuita

Quer experimentar os recursos do Aspose.Slides sem limitações? Obtenha uma licença temporária gratuita.

Conclusão

Neste ponto, acreditamos que você já sabe como converter PowerPoint PPT em vídeos simples ou vídeos mais complicados com animações, transições e outros efeitos.

Para saber mais sobre Aspose.Slides recursos, consulte nossa documentação. Se você tiver dúvidas, pode postá-las em nosso fórum.

Veja também