Une vidéo dérivée d’une présentation PowerPoint est assez efficace pour présenter une visualisation de données et commercialiser un produit. Il est également assez compétent pour transmettre différents types de messages à un large public. Compte tenu des avantages associés à une lecture vidéo réelle par rapport à une présentation standard, il est logique de convertir PPT en vidéo dans de nombreux scénarios.
Convertir PPT en vidéo en C#
Dans cet article, nous avons l’intention de vous guider à travers une opération sur l’exécution du PPT à MP4 tâche de conversion par programme. Découvrez ci-dessous comment convertir PPT en vidéo en C#.
- API C # pour convertir PPT en vidéo
- Convertir PPT en vidéo en C#
- Appliquer des effets et des animations dans la vidéo
API C# pour convertir PPT en vidéo
Une vidéo se compose d’images, donc le processus de conversion de PowerPoint en vidéo nécessite que vous fassiez deux choses :
Générez un ensemble de cadres en fonction des diapositives de la présentation. Aspose.Slides for .NET est utile ici. Pour installer Aspose.Slides for .NET, voir Installation.
créer une vidéo basée sur les images générées. C’est là qu’intervient ffmpeg (et le noyau ffmpeg pour .NET) : téléchargez ffmpeg ici.
Info : Aspose fournit un convertisseur PowerPoint vers vidéo gratuit qui permet de transformer des présentations PowerPoint en vidéo. Vous voudrez peut-être voir ce convertisseur car il s’agit d’une implémentation en direct du processus ici.
Convertir PPT en vidéo en C#
Ajoutez Aspose.Slides for .NET et FFMpegCore à votre projet via la
commande dotnet add package
:- Pour ajouter Aspose.Slides for .NET, exécutez
dotnet add package Aspose.Slides.NET --version 22.11.0
- Pour ajouter FFMpegCore, exécutez
dotnet add package FFMpegCore --version 4.8.0
- Pour ajouter Aspose.Slides for .NET, exécutez
Spécifiez le chemin vers le ffmpeg que vous avez obtenu plus tôt (par exemple, vous l’avez extrait vers “C:\tools\ffmpeg”) de cette façon :
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );
Exécutez le code pour convertir PowerPoint en vidéo :
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())
{
// Ajoute une forme de sourire puis l'anime
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);
}
// Configurez le dossier des fichiers binaires ffmpeg. Voir cette page : https://github.com/rosenbjerg/FFMPegCore#installation
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
// Convertit les images en vidéo webm
FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());
}
Appliquer des effets et des animations dans la vidéo
Les présentations contenant des transitions et des animations sont généralement plus engageantes et intéressantes que celles sans ces effets. Le même principe s’applique aux vidéos - une vidéo qui glisse simplement en succession rapide ne la coupera pas parfois.
Aspose.Slides prend en charge les transitions et les animations courantes, vous pouvez donc appliquer et utiliser ces effets dans votre vidéo. En supposant que nous continuons avec le code de la section précédente, nous pouvons une autre diapositive et une transition de cette façon :
// Ajoute une forme de sourire et l'anime
// ...
// Ajoute une nouvelle diapositive et une transition animée
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;
Outre les animations pour les diapositives, Aspose.Slides vous permet d’ajouter des animations pour les textes. De cette façon, vous arrivez à animer des paragraphes sur des objets pour les faire apparaître les uns après les autres (avec le délai fixé à une seconde, par exemple) :
using System.Collections.Generic;
using Aspose.Slides.Export;
using Aspose.Slides;
using FFMpegCore;
using Aspose.Slides.Animation;
using (Presentation presentation = new Presentation())
{
// Ajoute du texte et des 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;
// Convertit les images en vidéo
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);
}
// Configurez le dossier des fichiers binaires ffmpeg. Voir cette page : https://github.com/rosenbjerg/FFMPegCore#installation
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
// Convertit les images en vidéo webm
FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());
}
Obtenez une licence gratuite
Vous cherchez à essayer les fonctionnalités d’Aspose.Slides sans limitations ? Obtenez une licence temporaire gratuite.
Conclusion
À ce stade, nous pensons que vous savez maintenant comment convertir PowerPoint PPT en vidéos simples ou en vidéos plus compliquées avec des animations, des transitions et d’autres effets.
Pour en savoir plus sur Aspose.Slides fonctionnalités, consultez notre documentation. Si vous avez des questions, vous pouvez les poster sur notre forum.