PowerPoint'te video oluşturma

Bir PowerPoint sunumundan türetilen bir video, bir veri görselleştirmesini sergilemede ve bir ürünü pazarlamada oldukça etkilidir. Aynı zamanda geniş bir kitle kategorisine farklı türden mesajlar iletme konusunda da oldukça yetkindir. Standart bir sunum yerine gerçek bir video oynatmanın sağladığı avantajlar göz önüne alındığında, birçok senaryoda PPT’yi videoya dönüştürmek mantıklıdır.

PPT’yi C# ile Videoya Dönüştür

Bu makalede, PPT dosyasını MP4 dosyasına gerçekleştirme işleminde size yol göstermeyi amaçlıyoruz. /mp4/) programlı olarak dönüştürme görevi. Aşağıda C# dilinde PPT’yi videoya nasıl dönüştüreceğinizi görün.

PPT’yi Videoya Dönüştürmek için C# API’leri

PPT'yi videoya dönüştür

Bir video çerçevelerden oluşur, bu nedenle PowerPoint’ten videoya dönüştürme işlemi iki şey yapmanızı gerektirir:

  • Sunum slaytlarına dayalı olarak bir dizi çerçeve oluşturun. Aspose.Slides for .NET burada işe yarar. Aspose.Slides for .NET’i kurmak için bkz. Kurulum.

  • oluşturulan karelere dayalı bir video oluşturun. İşte burada ffmpeg (ve .NET için ffmpeg çekirdeği) devreye giriyor—ffmpeg’i buradan indirin.

Bilgi: Aspose, PowerPoint sunumlarını videoya dönüştürmeye olanak tanıyan ücretsiz bir PowerPoint’ten videoya dönüştürücü sağlar. Buradaki işlemin canlı bir uygulaması olduğu için bu dönüştürücüyü görmek isteyebilirsiniz.

C#‘da PPT’yi Videoya Dönüştür{#Csharp’ta PPT’yi Videoya Dönüştür}

  1. Aspose.Slides for .NET ve FFMpegCore’u projenize “dotnet add package komutu” aracılığıyla ekleyin:

    • Aspose.Slides for .NET’i eklemek için “dotnet add package Aspose.Slides.NET –version 22.11.0” komutunu çalıştırın.
    • FFMpegCore’u eklemek için, “dotnet add package FFMpegCore –version 4.8.0” komutunu çalıştırın.
  2. Daha önce aldığınız ffmpeg’in yolunu şu şekilde belirtin (örneğin, onu “C:\tools\ffmpeg” konumuna çıkardınız): GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,});

  3. PowerPoint’i videoya dönüştürmek için kodu çalıştırın:

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())

{
    // Bir gülümseme şekli ekler ve ardından onu canlandırır
    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 ikili dosyalar klasörünü yapılandırın. Bu sayfaya bakın: https://github.com/rosenbjerg/FFMpegCore#installation
    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Çerçeveleri webm videoya dönüştürür
    FFMpeg.JoinImageSequence("smile.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Videoda Efektler ve Animasyonlar Uygula

Geçişler ve animasyonlar içeren sunumlar, genellikle bu efektlerin bulunmadığı sunumlardan daha ilgi çekici ve ilgi çekicidir. Aynı ilke videolar için de geçerlidir; hızlı bir şekilde art arda kayan bir video bazen onu kesmez.

Aspose.Slides yaygın geçişleri ve animasyonları destekler, böylece bu efektleri videonuza uygulayabilir ve kullanabilirsiniz. Önceki bölümdeki kodla devam ettiğimizi varsayarsak, şu şekilde başka bir slayt ve geçiş yapabiliriz:

// Bir gülümseme şekli ekler ve onu canlandırır

// ...

// Yeni bir slayt ve animasyonlu geçiş ekler

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, slaytlar için animasyonların yanı sıra metinler için animasyonlar eklemenizi sağlar. Bu şekilde, art arda görünmelerini sağlamak için nesnelerdeki paragrafları canlandırabilirsiniz (örneğin, gecikme bir saniyeye ayarlı):

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

using (Presentation presentation = new Presentation())
{
    // Metin ve animasyonlar ekler
    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;

    // Çerçeveleri videoya dönüştürür
    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 ikili dosyalar klasörünü yapılandırın. Bu sayfaya bakın: https://github.com/rosenbjerg/FFMpegCore#installation

    GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin", });
    // Çerçeveleri webm videoya dönüştürür
    FFMpeg.JoinImageSequence("text_animation.webm", Fps, frames.Select(frame => ImageInfo.FromPath(frame)).ToArray());

}

Ücretsiz Lisans Alın

Aspose.Slides özelliklerini sınırsız bir şekilde denemek mi istiyorsunuz? Bir ücretsiz geçici lisans edinin.

Çözüm

Bu noktada, artık PowerPoint PPT’yi animasyonlar, geçişler ve diğer efektlerle basit videolara veya daha karmaşık videolara nasıl dönüştüreceğinizi bildiğinize inanıyoruz.

Aspose.Slides özellikleri hakkında daha fazla bilgi edinmek için belgelerimize bakın/). Sorularınız varsa forumumuza gönderebilirsiniz.

Ayrıca bakınız