Створення відео в PowerPoint

Відео, отримане з презентації PowerPoint, є досить ефективним для демонстрації візуалізації даних і маркетингу продукту. Він також досить вміло доносить різні види повідомлень до широкої категорії аудиторії. Враховуючи переваги, пов’язані з реальним відтворенням відео над стандартною презентацією, має сенс конвертувати PPT у відео в багатьох сценаріях.

Перетворення PPT у відео на C#

У цій статті ми маємо намір ознайомити вас із операцією виконання PPT у MP4 завдання програмного перетворення. Подивіться, як конвертувати PPT у відео на C# нижче.

C# API для перетворення PPT у відео

Перетворення PPT у відео

Відео складається з кадрів, тому процес перетворення PowerPoint у відео вимагає від вас двох речей:

  • Згенерувати набір фреймів на основі слайдів презентації. Тут стане в нагоді Aspose.Slides for .NET. Щоб установити Aspose.Slides for .NET, перегляньте Встановлення.

  • створити відео на основі згенерованих кадрів. Тут на допомогу приходить ffmpeg (та ядро ffmpeg для .NET) — завантажте ffmpeg тут.

Інформація: Aspose надає безкоштовний конвертер PowerPoint у відео, який дозволяє перетворювати презентації PowerPoint у відео. Можливо, ви захочете побачити цей конвертер, оскільки це реальна реалізація процесу тут.

Перетворення PPT у відео в C#

  1. Додайте Aspose.Slides for .NET і FFMpegCore до свого проекту за допомогою команди «dotnet add package»:

    • Щоб додати 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 дозволяє додавати анімацію для текстів. Таким чином ви можете анімувати абзаци об’єктів, щоб вони з’являлися один за одним (наприклад, із затримкою, встановленою в одну секунду):

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 функції, перегляньте нашу документацію. Якщо у вас є запитання, ви можете опублікувати їх на нашому форумі.

Дивись також