Skapa video i PowerPoint

En video som härrör från en PowerPoint-presentation är ganska effektiv för att visa upp en datavisualisering och marknadsföra en produkt. Det är också ganska skickligt på att leverera olika typer av meddelanden till en bred publikkategori. Med tanke på fördelarna som är förknippade med en riktig videouppspelning jämfört med en standardpresentation, är det vettigt att konvertera PPT till video i många scenarier.

Konvertera PPT till video i C#

I den här artikeln har vi för avsikt att leda dig genom en operation för att utföra PPT till [MP4](https://docs.fileformat.com/video /mp4/) omvandlingsuppgift programmatiskt. Se hur du konverterar PPT till video i C# nedan.

C# API:er för att konvertera PPT till video

Konvertera PPT till video

En video består av ramar, så konverteringsprocessen från PowerPoint till video kräver att du gör två saker:

  • Skapa en uppsättning ramar baserat på presentationsbilderna. Aspose.Slides för .NET kommer väl till pass här. För att installera Aspose.Slides för .NET, se Installation.

  • skapa en video baserat på de genererade ramarna. Det är här ffmpeg (och ffmpeg-kärnan för .NET) kommer in – ladda ner ffmpeg här.

Info: Aspose tillhandahåller en gratis PowerPoint till videokonverterare som gör det möjligt att omvandla PowerPoint-presentationer till video. Du kanske vill se denna omvandlare eftersom det är en liveimplementering av processen här.

Konvertera PPT till video i C#

  1. Lägg till Aspose.Slides för .NET och FFMpegCore till ditt projekt genom kommandot dotnet add package:

    • För att lägga till Aspose.Slides för .NET, kör dotnet add package Aspose.Slides.NET --version 22.11.0
    • För att lägga till FFMpegCore, kör dotnet add package FFMpegCore --version 4.8.0
  2. Ange sökvägen till den ffmpeg du fick tidigare (du extraherade den till exempel till “C:\tools\ffmpeg”) så här: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Kör koden för att konvertera PowerPoint till 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())

{
    // Lägger till en leendeform och animerar den sedan
    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);
    }

    // Konfigurera ffmpeg binärmapp. Se den här sidan: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Konverterar ramar till webm-video
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Använd effekter och animationer i video

Presentationer som innehåller övergångar och animationer är i allmänhet mer engagerande och intressanta än de utan dessa effekter. Samma princip gäller för videor – en video som helt enkelt glider i snabb följd kommer bara inte att klippa den ibland.

Aspose.Slides stöder vanliga övergångar och animationer, så att du kan använda och använda dessa effekter i din video. Förutsatt att vi fortsätter med koden från föregående avsnitt, kan vi ytterligare en bild och en övergång på detta sätt:

// Lägger till ett leende och animerar det

// ...

// Lägger till en ny bild och animerad övergång

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;

Förutom animationer för bilder, låter Aspose.Slides dig lägga till animationer för texter. På så sätt kan du animera stycken på objekt för att få dem att visas efter varandra (med fördröjningen inställd på till exempel en sekund):

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

using (Presentation presentation = new Presentation())
{
    // Lägger till text och animationer
    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;

    // Konverterar ramar till 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);
    }
    // Konfigurera ffmpeg binärmapp. Se den här sidan: https://github.com/rosenbjerg/FFMpegCore#installation

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

}

Skaffa en gratis licens

Vill du testa Aspose.Slides-funktioner utan begränsningar? Skaffa en gratis tillfällig licens.

Slutsats

Vid det här laget tror vi att du nu vet hur du konverterar PowerPoint PPT till enkla videor eller mer komplicerade videor med animationer, övergångar och andra effekter.

För att lära dig mer om Aspose.Slides features, se vår dokumentation. Om du har frågor kan du lägga upp dem på vårt forum.

Se även