彩票走势图

PPT处理控件Aspose.Slides入门教程:在C#中将PPT转换为视频

翻译|使用教程|编辑:胡涛|2023-06-15 10:36:28.767|阅读 251 次

概述:在本文中,我们打算引导您完成以编程方式执行PPT到MP4转换任务的操作,欢迎查阅~

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

Aspose.Slides 是一款 PowerPoint管理API,用于读取,编写,操作和转换PowerPoint幻灯片的独立API,可将PowerPoint转换为PDF,PDF/A,XPS,TIFF,HTML,ODP和其他PowerPoint格式。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.Slides for Java最新下载

从 PowerPoint 演示文稿派生的视频在展示数据可视化和营销产品方面非常有效。它还非常擅长向广泛的受众群体传递不同类型的信息。鉴于与标准演示文稿相比与真实视频播放相关的好处,在许多情况下将 PPT 转换为视频是有意义的。

在 PowerPoint 中创建视频

一、在C#中将PPT转换为视频

在本文中,我们打算引导您完成以编程方式执行PPT到MP4转换任务的操作。请参阅下面的C# 中如何将 PPT 转换为视频。

  • 将 PPT 转换为视频的 C# API
  • 在C#中将PPT转换为视频
  • 在视频中应用效果和动画
二、将 PPT 转换为视频的 C# API

视频由帧组成,因此 PowerPoint 到视频的转换过程需要您做两件事:

  • 根据演示幻灯片生成一组帧。Aspose.Slides for .NET在这里派上用场。要安装Aspose.Slides for .NET,请下载软件

  • 根据生成的帧创建视频。这就是 ffmpeg(和 .NET 的 ffmpeg 核心)的用武之地——下载 ffmpeg 。

信息: Aspose 提供免费的PowerPoint 到视频转换器,允许将 PowerPoint 演示文稿转换为视频。您可能希望看到此转换器,因为它是此处流程的实时实现。

三、在C#中将PPT转换为视频
  1. 通过以下方式将 Aspose.Slides for .NET 和 FFMpegCore 添加到您的项目中dotnet add package command:

    • 要为 .NET 添加 Aspose.Slides,运行dotnet add package Aspose.Slides.NET --version 22.11.0
    • 要添加 FFMpegCore,请运行dotnet add package FFMpegCore --version 4.8.0
  2. 以这种方式指定您之前获得的 ffmpeg 的路径(例如,您将其解压缩到“C:\tools\ffmpeg”):GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin",} );

  3. 运行将 PowerPoint 转换为视频的代码:

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: //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());

}
四、在视频中应用效果和动画

包含过渡和动画的演示文稿通常比没有这些效果的演示文稿更具吸引力和趣味性。同样的原则也适用于视频——简单地快速连续滑动的视频有时不会被剪掉。

Aspose.Slides 支持常见的过渡和动画,因此您可以在视频中应用和使用这些效果。假设我们继续使用上一节中的代码,我们可以通过这种方式进行另一张幻灯片和一个过渡:

// Adds a smile shape and animates it

// ...

// Adds a new slide and animated transition

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;

除了幻灯片动画,Aspose.Slides 还允许您为文本添加动画。这样,您就可以为对象上的段落设置动画,使它们一个接一个地出现(例如,将延迟设置为一秒):

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

using (Presentation presentation = new Presentation())
{
// Adds text and animations
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;

// Converts frames to 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 ffmpeg binaries folder. See this page: //github.com/rosenbjerg/FFMpegCore#installation

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

}

以上便是如何在C#中将PPT转换为视频 ,如您还有关于产品相关方面的疑问,可以继续浏览本系列其他内容,也欢迎您加入我们的交流群发表您遇到的问题。


欢迎下载|体验更多Aspose文档管理产品 
获取更多信息请咨询 或 加入Aspose技术交流群(761297826

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP