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 em C#
- Aplicar efeitos e animações em vídeo
APIs C# para converter PPT em 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#
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
- Para adicionar Aspose.Slides para .NET, execute
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" ,} );
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.