ایجاد ویدیو در پاورپوینت

ویدیویی که از یک ارائه پاورپوینت گرفته شده است در نمایش تجسم داده ها و بازاریابی یک محصول کاملاً مؤثر است. همچنین در ارائه انواع مختلف پیام ها به گروه وسیعی از مخاطبان کاملاً ماهر است. با توجه به مزایای مرتبط با پخش ویدیوی واقعی نسبت به یک ارائه استاندارد، تبدیل PPT به ویدیو در بسیاری از سناریوها منطقی است.

تبدیل PPT به ویدیو در سی شارپ

در این مقاله، ما قصد داریم شما را از طریق عملیات انجام PPT به MP4 راهنمایی کنیم. /mp4/) وظیفه تبدیل به صورت برنامه ای. نحوه تبدیل PPT به ویدیو در سی شارپ را در زیر ببینید.

C# APIs برای تبدیل PPT به ویدیو

تبدیل PPT به ویدیو

یک ویدیو از فریم تشکیل شده است، بنابراین فرآیند تبدیل پاورپوینت به ویدیو از شما نیاز دارد که دو کار را انجام دهید:

  • مجموعه ای از فریم ها را بر اساس اسلایدهای ارائه ایجاد کنید. Aspose.Slides برای دات نت در اینجا مفید است. برای نصب Aspose.Slides برای NET، به نصب مراجعه کنید.

  • یک ویدیو بر اساس فریم های تولید شده ایجاد کنید. اینجاست که ffmpeg (و هسته ffmpeg برای دات نت) وارد می شود — ffmpeg را از اینجا دانلود کنید.

اطلاعات: Aspose یک مبدل پاورپوینت به ویدیو رایگان ارائه می‌کند که امکان تبدیل ارائه‌های پاورپوینت را به ویدیو فراهم می‌کند. ممکن است بخواهید این مبدل را ببینید زیرا اجرای زنده فرآیند در اینجا است.

تبدیل PPT به ویدیو در سی شارپ

  1. Aspose.Slides برای .NET و FFMpegCore را از طریق «دستور dotnet add package» به پروژه خود اضافه کنید:

    • برای افزودن Aspose.Slides برای دات نت، «dotnet add package Aspose.Slides.NET –نسخه 22.11.0» را اجرا کنید
    • برای افزودن FFMpegCore، «dotnet add package FFMpegCore –نسخه 4.8.0» را اجرا کنید
  2. مسیر ffmpeg را که قبلاً دریافت کردید مشخص کنید (مثلاً آن را در “C:\tools\ffmpeg” استخراج کردید) به این ترتیب: GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );

  3. کد تبدیل پاورپوینت به ویدیو را اجرا کنید:

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 (https://docs.aspose.com/slides/net/features-overview/)، به [اسناد] ما مراجعه کنید (https://docs.aspose.com/slides/net/). اگر سؤالی دارید، می‌توانید آنها را در [فروم] ما (https://forum.aspose.com/c/slides/) پست کنید.

همچنین ببینید