Vytvořte video v PowerPointu

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í PPTMP4 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

Převést 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#

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

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

Viz také