Buat video di PowerPoint

Video yang berasal dari presentasi PowerPoint cukup efektif untuk menampilkan visualisasi data dan memasarkan produk. Itu juga cukup mahir dalam menyampaikan berbagai jenis pesan ke kategori khalayak luas. Mengingat manfaat yang terkait dengan pemutaran video nyata dibandingkan presentasi standar, masuk akal untuk mengonversi PPT ke video dalam banyak skenario.

Konversikan PPT ke Video dalam C#

Dalam artikel ini, kami bermaksud untuk memandu Anda melalui pengoperasian PPT ke MP4 tugas konversi secara terprogram. Lihat cara mengonversi PPT ke video dalam C# di bawah ini.

C# API untuk Mengonversi PPT ke Video

Konversikan PPT ke video

Video terdiri dari bingkai, sehingga proses konversi PowerPoint ke video mengharuskan Anda melakukan dua hal:

  • Hasilkan satu set bingkai berdasarkan slide presentasi. Aspose.Slides for .NET berguna di sini. Untuk menginstal Aspose.Slides for .NET, lihat Instalasi.

  • buat video berdasarkan bingkai yang dihasilkan. Di sinilah ffmpeg (dan inti ffmpeg untuk .NET) berperan—unduh ffmpeg di sini.

Info: Aspose menyediakan PowerPoint to video converter gratis yang memungkinkan untuk mengubah presentasi PowerPoint menjadi video. Anda mungkin ingin melihat konverter ini karena ini adalah implementasi langsung dari proses di sini.

Konversikan PPT ke Video dalam C#

  1. Tambahkan Aspose.Slides for .NET dan FFMpegCore ke proyek Anda melalui dotnet add package command:

    • Untuk menambahkan Aspose.Slides for .NET, jalankan dotnet add package Aspose.Slides.NET --version 22.11.0
    • Untuk menambahkan FFMpegCore, jalankan dotnet add package FFMpegCore --version 4.8.0
  2. Tentukan jalur ke ffmpeg yang Anda dapatkan sebelumnya (misalnya, Anda mengekstraknya ke “C:\tools\ffmpeg”) dengan cara ini: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. Jalankan kode untuk mengonversi PowerPoint ke 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())

{
    // Menambahkan bentuk senyuman lalu menganimasikannya
    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);
    }

    // Konfigurasikan folder binari ffmpeg. Lihat halaman ini: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Mengubah bingkai menjadi video webm
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Terapkan Efek dan Animasi dalam Video

Presentasi yang berisi transisi dan animasi umumnya lebih menarik dan menarik daripada presentasi tanpa efek tersebut. Prinsip yang sama berlaku untuk video—video yang hanya meluncur dengan urutan cepat terkadang tidak akan memotongnya.

Aspose.Slides mendukung transisi dan animasi umum, sehingga Anda dapat menerapkan dan menggunakan efek tersebut di video Anda. Dengan asumsi kita melanjutkan dengan kode dari bagian sebelumnya, kita dapat membuat slide lain dan melakukan transisi seperti ini:

// Menambahkan bentuk senyuman dan menganimasikannya

// ...

// Menambahkan slide baru dan transisi animasi

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;

Selain animasi untuk slide, Aspose.Slides memungkinkan Anda menambahkan animasi untuk teks. Dengan cara ini, Anda dapat menganimasikan paragraf pada objek untuk membuatnya muncul satu per satu (dengan penundaan diatur ke satu detik, misalnya):

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

using (Presentation presentation = new Presentation())
{
    // Menambahkan teks dan animasi
    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;

    // Mengubah bingkai menjadi 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);
    }
    // Konfigurasikan folder binari ffmpeg. Lihat halaman ini: https://github.com/rosenbjerg/FFMpegCore#installation

    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Mengubah bingkai menjadi video webm
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Dapatkan Lisensi Gratis

Ingin mencoba fitur Aspose.Slides tanpa batasan? Dapatkan lisensi sementara gratis.

Kesimpulan

Pada titik ini, kami yakin Anda sekarang tahu cara mengonversi PowerPoint PPT ke video sederhana atau video yang lebih rumit dengan animasi, transisi, dan efek lainnya.

Untuk mempelajari Aspose.Slides lebih lanjut fitur, lihat dokumentasi kami/). Jika ada pertanyaan, Anda dapat mempostingnya di forum kami.

Lihat juga