PowerPoint에서 비디오 만들기

PowerPoint 프레젠테이션에서 파생된 비디오는 데이터 시각화를 보여주고 제품을 마케팅하는 데 매우 효과적입니다. 또한 광범위한 청중 범주에 다양한 종류의 메시지를 전달하는 데 매우 능숙합니다. 표준 프레젠테이션을 통한 실제 비디오 재생과 관련된 이점을 고려할 때 많은 시나리오에서 PPT를 비디오로 변환하는 것이 좋습니다.

C#에서 PPT를 비디오로 변환

이 문서에서는 PPTMP4로 수행하는 작업을 안내합니다. /mp4/) 프로그래밍 방식으로 변환 작업. 아래 C#에서 PPT를 비디오로 변환하는 방법을 참조하십시오.

PPT를 동영상으로 변환하는 C# API

PPT를 비디오로 변환

비디오는 프레임으로 구성되어 있으므로 PowerPoint를 비디오로 변환하는 과정에서 다음 두 가지 작업을 수행해야 합니다.

  • 프레젠테이션 슬라이드를 기반으로 프레임 세트를 생성합니다. .NET용 Aspose.Slides가 여기에 유용합니다. Aspose.Slides for .NET을 설치하려면 설치를 참조하세요.

  • 생성된 프레임을 기반으로 비디오를 만듭니다. 여기에서 ffmpeg(및 .NET용 ffmpeg 코어)가 제공됩니다. ffmpeg를 여기에서 다운로드하세요.

정보: Aspose는 PowerPoint 프레젠테이션을 비디오로 변환할 수 있는 PowerPoint to 비디오 변환기를 무료로 제공합니다. 여기에서 프로세스의 라이브 구현이므로 이 변환기를 보고 싶을 수 있습니다.

C#에서 PPT를 비디오로 변환

  1. dotnet add package command를 통해 .NET용 Aspose.Slides 및 FFMpegCore를 프로젝트에 추가합니다.

    • .NET용 Aspose.Slides를 추가하려면 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를 사용하면 텍스트용 애니메이션을 추가할 수 있습니다. 이렇게 하면 개체의 단락에 애니메이션을 적용하여 단락이 차례로 표시되도록 할 수 있습니다(예: 지연 시간을 1초로 설정).

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 기능에 대한 자세한 내용은 문서를 참조하세요./). 질문이 있는 경우 포럼에 질문을 게시할 수 있습니다.

또한보십시오