C#将PPT转为视频
强大的跨平台 .NET API,用于在 NET Framework、.NET Core、Windows Azure、Mono 或 Xamarin 平台上使用 C# 代码将 PowerPoint 转换为视频
使用 Aspose.Slides 将 PowerPoint 转换为视频
Aspose.Slides for .NET 是一个功能强大的 .NET 库,用于创建、编辑和操作演示文稿,并将 PowerPoint 演示文稿转换为其他文档和视频。在这种情况下,要将 PowerPoint 转换为视频,您需要使用 Aspose.Slides 以及 ffmpeg 和 FFMpegCore(一个免费的 NET ffmpeg 包装器)。
这就是 PPT 到视频转换过程的工作原理:Aspose.Slides 用于生成一组帧(从演示幻灯片),然后 FFMpegCore (ffmpeg) 用于创建基于帧的视频。
PPT转视频的方法
安装 Aspose.Slides for .NET 和 FFMpegcore:运行“dotnet add package Aspose.Slides.NET –version 22.12.0”,然后运行“dotnet add package FFMpegCore –version 4.8.0”
FFMpegCore 要求您指定下载的 ffmpeg 的路径(例如解压缩到“C:\tools\ffmpeg”):
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin",} );
复制、粘贴然后运行 PowerPoint 到视频代码。
在 C# 中将 PowerPoint 转换为视频
使用此代码将 PPT 转换为视频:
用于将 PowerPoint 转换为视频的 C# 代码
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())
{
// Adds a smile shape and then animates it
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 ffmpeg binaries folder. See this page: https://github.com/rosenbjerg/FFMpegCore#installation
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
// Converts frames to webm video
FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());
}
其他支持的转换
您还可以将 PowerPoint 转换为其他格式的文件