Video odvozené z powerpointové prezentace je docela efektivní při předvádění vizualizace dat a marketingu produktu. Je také docela zdatný v doručování různých druhů zpráv široké kategorii publika. Vzhledem k výhodám spojeným se skutečným přehráváním videa oproti standardní prezentaci má smysl převést PPT na video v mnoha scénářích.
Převést PPT na video v C#
V tomto článku vás zamýšlíme provést operací při provádění PPT až MP4 převodní úloha programově. Podívejte se, jak převést PPT na video v C# níže.
C# API pro převod PPT na video
Video se skládá ze snímků, takže proces převodu PowerPoint na video vyžaduje, abyste udělali dvě věci:
Vygenerujte sadu snímků na základě snímků prezentace. Zde se hodí Aspose.Slides for .NET. Chcete-li nainstalovat Aspose.Slides for .NET, viz Instalace.
vytvořit video na základě vygenerovaných snímků. Zde přichází na řadu ffmpeg (a jádro ffmpeg pro .NET) – stáhněte si ffmpeg zde.
Informace: Aspose poskytuje bezplatný konvertor z PowerPointu na video, který umožňuje transformovat PowerPointové prezentace na video. Možná budete chtít vidět tento převaděč, protože se zde jedná o živou implementaci procesu.
Převést PPT na video v C#
Přidejte Aspose.Slides for .NET a FFMpegCore do svého projektu pomocí
dotnet add package command
:- Chcete-li přidat Aspose.Slides for .NET, spusťte
dotnet add package Aspose.Slides.NET --version 22.11.0
- Chcete-li přidat FFMpegCore, spusťte
dotnet add package FFMpegCore --version 4.8.0
- Chcete-li přidat Aspose.Slides for .NET, spusťte
Zadejte cestu k souboru ffmpeg, který jste získali dříve (například jste jej extrahovali do „C:\tools\ffmpeg“) tímto způsobem: `GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @“c:\tools\ffmpeg\bin” ,});'
Spusťte kód pro převod PowerPointu na 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())
{
// Přidá tvar úsměvu a poté jej animuje
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);
}
// Nakonfigurujte složku binárních souborů ffmpeg. Viz tato stránka: https://github.com/rosenbjerg/FFMpegCore#installation
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
// Převádí snímky na webm video
FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());
}
Použití efektů a animací ve videu
Prezentace obsahující přechody a animace jsou obecně poutavější a zajímavější než prezentace bez těchto efektů. Stejný princip platí pro videa – video, které jednoduše klouže v rychlém sledu za sebou, ho občas nepřestřihne.
Aspose.Slides podporuje běžné přechody a animace, takže tyto efekty můžete ve svém videu aplikovat a používat. Za předpokladu, že budeme pokračovat s kódem z předchozí části, můžeme další snímek a přechod tímto způsobem:
// Přidá tvar úsměvu a oživí jej
// ...
// Přidá nový snímek a animovaný přechod
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;
Kromě animací pro snímky vám Aspose.Slides umožňuje přidávat animace pro texty. Tímto způsobem můžete animovat odstavce na objektech, aby se zobrazovaly jeden po druhém (například se zpožděním nastaveným na jednu sekundu):
using System.Collections.Generic;
using Aspose.Slides.Export;
using Aspose.Slides;
using FFMpegCore;
using Aspose.Slides.Animation;
using (Presentation presentation = new Presentation())
{
// Přidá text a animace
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;
// Převádí snímky na 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);
}
// Nakonfigurujte složku binárních souborů ffmpeg. Viz tato stránka: https://github.com/rosenbjerg/FFMpegCore#installation
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
// Převádí snímky na webm video
FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());
}
Získejte bezplatnou licenci
Chcete vyzkoušet funkce Aspose.Slides bez omezení? Získejte bezplatnou dočasnou licenci.
Závěr
V tuto chvíli věříme, že nyní víte, jak převést PowerPoint PPT na jednoduchá videa nebo složitější videa s animacemi, přechody a dalšími efekty.
Další informace o Aspose.Slides funkcích naleznete v naší dokumentaci. Máte-li dotazy, můžete je zveřejnit na našem fóru.