Создание видео в PowerPoint

Видео, полученное из презентации PowerPoint, весьма эффективно демонстрирует визуализацию данных и маркетинг продукта. Он также достаточно хорошо справляется с доставкой различных сообщений для широкой аудитории. Учитывая преимущества, связанные с воспроизведением реального видео по сравнению со стандартной презентацией, имеет смысл конвертировать PPT в видео во многих сценариях.

Преобразование PPT в видео на C#

В этой статье мы намерены провести вас через операцию преобразования PPT в MP4 задача преобразования программно. Посмотрите, как конвертировать PPT в видео на C# ниже.

API-интерфейсы C# для преобразования 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", });
    // Преобразует кадры в веб-видео
    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", });
    // Преобразует кадры в веб-видео
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Получить бесплатную лицензию

Хотите попробовать функции Aspose.Slides без ограничений? Получите бесплатную временную лицензию.

Заключение

На данный момент мы считаем, что теперь вы знаете, как конвертировать PowerPoint PPT в простые видео или более сложные видео с анимацией, переходами и другими эффектами.

Чтобы узнать больше о Aspose.Slides функциях, см. нашу документацию. Если у вас есть вопросы, вы можете разместить их на нашем форуме.

Смотрите также