PowerPoint でビデオを作成する

PowerPoint プレゼンテーションから派生したビデオは、データの視覚化を紹介し、製品をマーケティングするのに非常に効果的です。また、幅広い視聴者カテゴリーにさまざまな種類のメッセージを配信することにも非常に熟練しています。標準的なプレゼンテーションよりも実際のビデオ再生に関連する利点を考慮すると、多くのシナリオで PPT をビデオに変換することは理にかなっています。

C# で PPT をビデオに変換

この記事では、PPTMP4 に変換する操作を説明します。 /mp4/) 変換タスクをプログラム的に実行します。以下の C# で PPT をビデオに変換する方法をご覧ください。

PPT をビデオに変換するための C# API

PPTをビデオに変換

ビデオはフレームで構成されているため、PowerPoint からビデオへの変換プロセスでは、次の 2 つのことを行う必要があります。

  • プレゼンテーションのスライドに基づいて一連のフレームを生成します。ここでは Aspose.Slides for .NET が役に立ちます。 Aspose.Slides for .NET をインストールするには、インストール を参照してください。

  • 生成されたフレームに基づいてビデオを作成します。ここで ffmpeg (および .NET 用の ffmpeg コア) が登場します。ffmpeg を ここ からダウンロードしてください。

情報: Aspose は、PowerPoint プレゼンテーションをビデオに変換できる無料の PowerPoint からビデオ コンバーター を提供しています。このコンバーターは、ここでのプロセスのライブ実装であるため、参照することをお勧めします。

C# で PPT をビデオに変換

  1. 「dotnet add package コマンド」を使用して、Aspose.Slides for .NET と FFMpegCore をプロジェクトに追加します。

    • Aspose.Slides for .NET を追加するには、「dotnet add package Aspose.Slides.NET –version 22.11.0」を実行します。
    • FFMpegCore を追加するには、「dotnet add package FFMpegCore –version 4.8.0」を実行します。
  2. 先ほど取得した ffmpeg へのパス (たとえば、「C:\tools\ffmpeg」に抽出したもの) を次のように指定します。 GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin") ,} );

  3. PowerPoint をビデオに変換するコードを実行します。

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

{
    // 笑顔の形を追加してアニメーション化します
    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);
    }

    // ffmpegバイナリフォルダを設定します。このページを参照してください: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // フレームを WebM ビデオに変換します
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

ビデオにエフェクトとアニメーションを適用する

一般に、トランジションやアニメーションを含むプレゼンテーションは、それらの効果がないプレゼンテーションよりも魅力的で興味深いものになります。同じ原則がビデオにも当てはまります。単に素早く連続してスライドするだけのビデオでは、場合によっては満足できないことがあります。

Aspose.Slides は一般的なトランジションとアニメーションをサポートしているため、ビデオにこれらの効果を適用して使用できます。前のセクションのコードを続けると仮定すると、次のように別のスライドとトランジションを実行できます。

// 笑顔の形を追加してアニメーション化します

// ...

// 新しいスライドとアニメーショントランジションを追加します

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;

Aspose.Slides では、スライドのアニメーションに加えて、テキストのアニメーションを追加できます。このようにして、オブジェクト上の段落をアニメーション化して、次々に表示することができます (たとえば、遅延を 1 秒に設定)。

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

using (Presentation presentation = new Presentation())
{
    // テキストとアニメーションを追加します
    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;

    // フレームをビデオに変換します
    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);
    }
    // ffmpegバイナリフォルダを設定します。このページを参照してください: https://github.com/rosenbjerg/FFMpegCore#installation

    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // フレームを WebM ビデオに変換します
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

無料ライセンスを取得する

Aspose.Slides の機能を制限なしで試してみませんか? 無料の一時ライセンス を取得します。

結論

この時点で、PowerPoint PPT を単純なビデオ、またはアニメーション、トランジション、その他の効果を備えたより複雑なビデオに変換する方法は理解できたと思います。

Aspose.Slides 機能 の詳細については、ドキュメント を参照してください。/)。ご質問がある場合は、フォーラム に投稿してください。

関連項目