PowerPoint 프레젠테이션에서 파생된 비디오는 데이터 시각화를 보여주고 제품을 마케팅하는 데 매우 효과적입니다. 또한 광범위한 청중 범주에 다양한 종류의 메시지를 전달하는 데 매우 능숙합니다. 표준 프레젠테이션을 통한 실제 비디오 재생과 관련된 이점을 고려할 때 많은 시나리오에서 PPT를 비디오로 변환하는 것이 좋습니다.
C#에서 PPT를 비디오로 변환
이 문서에서는 PPT를 MP4로 수행하는 작업을 안내합니다. /mp4/) 프로그래밍 방식으로 변환 작업. 아래 C#에서 PPT를 비디오로 변환하는 방법을 참조하십시오.
PPT를 동영상으로 변환하는 C# API
비디오는 프레임으로 구성되어 있으므로 PowerPoint를 비디오로 변환하는 과정에서 다음 두 가지 작업을 수행해야 합니다.
프레젠테이션 슬라이드를 기반으로 프레임 세트를 생성합니다. .NET용 Aspose.Slides가 여기에 유용합니다. Aspose.Slides for .NET을 설치하려면 설치를 참조하세요.
생성된 프레임을 기반으로 비디오를 만듭니다. 여기에서 ffmpeg(및 .NET용 ffmpeg 코어)가 제공됩니다. ffmpeg를 여기에서 다운로드하세요.
정보: Aspose는 PowerPoint 프레젠테이션을 비디오로 변환할 수 있는 PowerPoint to 비디오 변환기를 무료로 제공합니다. 여기에서 프로세스의 라이브 구현이므로 이 변환기를 보고 싶을 수 있습니다.
C#에서 PPT를 비디오로 변환
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
을 실행합니다.
- .NET용 Aspose.Slides를 추가하려면
이전에 가져온 ffmpeg의 경로를 다음과 같이 지정합니다(예: “C:\tools\ffmpeg"로 추출).
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = @"c:\tools\ffmpeg\bin" ,} );
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 기능에 대한 자세한 내용은 문서를 참조하세요./). 질문이 있는 경우 포럼에 질문을 게시할 수 있습니다.