Créer une vidéo dans PowerPoint

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

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#

  1. 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
  2. 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" ,} );

  3. 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.

Voir également