สร้างวิดีโอใน PowerPoint

วิดีโอที่ได้มาจากงานนำเสนอ PowerPoint ค่อนข้างมีประสิทธิภาพในการจัดแสดงการแสดงข้อมูลและทำการตลาดผลิตภัณฑ์ นอกจากนี้ยังเชี่ยวชาญในการส่งข้อความประเภทต่างๆ ไปยังกลุ่มผู้ชมจำนวนมาก เมื่อพิจารณาถึงประโยชน์ที่เกี่ยวข้องกับการเล่นวิดีโอจริงผ่านการนำเสนอมาตรฐาน การแปลง PPT เป็นวิดีโอในหลาย ๆ สถานการณ์จึงสมเหตุสมผล

แปลง PPT เป็นวิดีโอใน C#

ในบทความนี้ เราตั้งใจที่จะแนะนำคุณเกี่ยวกับการดำเนินการ PPT ไปยัง MP4 งานแปลงโดยทางโปรแกรม ดูวิธีแปลง PPT เป็นวิดีโอใน C# ด้านล่าง

C# APIs เพื่อแปลง PPT เป็นวิดีโอ

แปลง PPT เป็นวิดีโอ

วิดีโอประกอบด้วยเฟรม ดังนั้นกระบวนการแปลง PowerPoint เป็นวิดีโอกำหนดให้คุณทำสองสิ่ง:

  • สร้างชุดของเฟรมตามสไลด์นำเสนอ Aspose.Slides for .NET มีประโยชน์ที่นี่ หากต้องการติดตั้ง Aspose.Slides for .NET โปรดดูที่การติดตั้ง

  • สร้างวิดีโอตามเฟรมที่สร้างขึ้น นี่คือที่มาของ ffmpeg (และ ffmpeg core สำหรับ .NET) ดาวน์โหลด ffmpeg ที่นี่

ข้อมูล: Aspose ให้บริการ ตัวแปลง PowerPoint เป็นวิดีโอ ฟรีที่อนุญาตให้แปลงงานนำเสนอ PowerPoint เป็นวิดีโอ คุณอาจต้องการดูตัวแปลงนี้เนื่องจากเป็นการนำกระบวนการไปใช้จริงที่นี่

แปลง PPT เป็นวิดีโอใน C#

  1. เพิ่ม Aspose.Slides for .NET และ FFMpegCore ในโครงการของคุณผ่าน dotnet add package command:

    • หากต้องการเพิ่ม 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 คุณสมบัติ โปรดดูเอกสารประกอบ/). หากคุณมีคำถาม คุณสามารถโพสต์ได้ที่ฟอรัม

ดูสิ่งนี้ด้วย