Utwórz wideo w programie PowerPoint

Film pochodzący z prezentacji PowerPoint jest dość skuteczny w prezentacji wizualizacji danych i marketingu produktu. Jest również dość biegły w dostarczaniu różnego rodzaju wiadomości do szerokiej kategorii odbiorców. Biorąc pod uwagę korzyści związane z prawdziwym odtwarzaniem wideo w porównaniu ze standardową prezentacją, konwersja PPT na wideo ma sens w wielu scenariuszach.

Konwertuj PPT na wideo w C#

W tym artykule zamierzamy przeprowadzić Cię przez proces wykonywania PPT do MP4 zadanie konwersji programowo. Zobacz, jak przekonwertować PPT na wideo w języku C# poniżej.

C# API do konwersji PPT na wideo

Konwertuj PPT na wideo

Wideo składa się z klatek, więc proces konwersji programu PowerPoint na wideo wymaga wykonania dwóch czynności:

  • Wygeneruj zestaw ramek na podstawie slajdów prezentacji. Przydaje się tutaj Aspose.Slides for .NET. Aby zainstalować Aspose.Slides for .NET, zobacz Instalacja.

  • stworzyć wideo na podstawie wygenerowanych klatek. W tym miejscu pojawia się ffmpeg (i rdzeń ffmpeg dla .NET) — pobierz ffmpeg tutaj.

Informacja: Aspose zapewnia darmowy konwerter PowerPoint na wideo, który umożliwia przekształcanie prezentacji PowerPoint w wideo. Możesz chcieć zobaczyć ten konwerter, ponieważ jest to implementacja tego procesu na żywo.

Konwertuj PPT na wideo w C#

  1. Dodaj Aspose.Slides for .NET i FFMpegCore do swojego projektu za pomocą polecenia dotnet add package command:

    • Aby dodać Aspose.Slides for .NET, uruchom dotnet add package Aspose.Slides.NET --version 22.11.0
    • Aby dodać FFMpegCore, uruchom dotnet add package FFMpegCore --version 4.8.0
  2. Określ ścieżkę do pliku ffmpeg, który otrzymałeś wcześniej (na przykład rozpakowałeś go do „C:\tools\ffmpeg”) w ten sposób: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Uruchom kod do konwersji programu PowerPoint na wideo:

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())

{
    // Dodaje kształt uśmiechu, a następnie animuje go
    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);
    }

    // Skonfiguruj folder plików binarnych ffmpeg. Zobacz tę stronę: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Konwertuje klatki na wideo webm
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Zastosuj efekty i animacje w wideo

Prezentacje zawierające przejścia i animacje są na ogół bardziej wciągające i interesujące niż te bez tych efektów. Ta sama zasada dotyczy filmów wideo — wideo, które po prostu przesuwa się w krótkich odstępach czasu, po prostu czasami go nie przycina.

Aspose.Slides obsługuje typowe przejścia i animacje, dzięki czemu możesz zastosować i wykorzystać te efekty w swoim filmie. Zakładając, że kontynuujemy kod z poprzedniej sekcji, możemy zrobić kolejny slajd i przejście w ten sposób:

// Dodaje kształt uśmiechu i animuje go

// ...

// Dodaje nowy slajd i animowane przejście

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;

Oprócz animacji do slajdów, Aspose.Slides umożliwia dodawanie animacji do tekstów. W ten sposób możesz animować akapity na obiektach, aby pojawiały się jeden po drugim (na przykład z opóźnieniem ustawionym na jedną sekundę):

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

using (Presentation presentation = new Presentation())
{
    // Dodaje tekst i animacje
    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;

    // Konwertuje klatki na wideo
    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);
    }
    // Skonfiguruj folder plików binarnych ffmpeg. Zobacz tę stronę: https://github.com/rosenbjerg/FFMpegCore#installation

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

}

Uzyskaj bezpłatną licencję

Chcesz wypróbować funkcje Aspose.Slides bez ograniczeń? Uzyskaj bezpłatną licencję tymczasową.

Wniosek

W tym momencie uważamy, że wiesz już, jak przekonwertować PowerPoint PPT na proste filmy lub bardziej skomplikowane filmy z animacjami, przejściami i innymi efektami.

Aby dowiedzieć się więcej o Aspose.Slides funkcjach, zobacz naszą dokumentację. Jeśli masz pytania, możesz je zadać na naszym forum.

Zobacz też