在 C# 中將 PPTX 轉換為視頻

強大的跨平台 .NET API,用於在 NET Framework、.NET Core、Windows Azure、Mono 或 Xamarin 平台上使用 C# 代碼將 PowerPoint 轉換為視頻

使用 Aspose.Slides 將 PowerPoint 轉換為視頻

Aspose.Slides for .NET 是一個功能強大的 .NET 庫,用於創建、編輯和操作演示文稿,並將 PowerPoint 演示文稿轉換為其他文檔和視頻。在這種情況下,要將 PowerPoint 轉換為視頻,您需要使用 Aspose.Slides 以及 ffmpegFFMpegCore(一個免費的 NET ffmpeg 包裝器)。

這就是 PPTX 到視頻轉換過程的工作原理:Aspose.Slides 用於生成一組幀(從演示幻燈片),然後 FFMpegCore (ffmpeg) 用於創建基於幀的視頻。

如何將 PPTX 轉換為視頻

  1. 安裝 Aspose.Slides for .NETFFMpegcore:運行“dotnet add package Aspose.Slides.NET –version 22.12.0”,然後運行“dotnet add package FFMpegCore –version 4.8.0”

  2. 在此處下載 ffmpeg。

  3. FFMpegCore 要求您指定下載的 ffmpeg 的路徑(例如解壓縮到“C:\tools\ffmpeg”):GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin",} );

  4. 複製、粘貼然後運行 PowerPoint 到視頻代碼。

在 C# 中將 PowerPoint 轉換為視頻

使用此代碼將 PPTX 轉換為視頻:

用於將 PowerPoint 轉換為視頻的 C# 代碼


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

{
    // Adds a smile shape and then animates it
    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);
    }

    // Configure ffmpeg binaries folder. See this page: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Converts frames to webm video
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

其他支持的轉換

您還可以將 PowerPoint 轉換為其他格式的文件