När du konverterar PowerPoint till video får du ökad tillgänglighet och en större publik för din presentation eller ditt innehåll. Videoformatet MP4 är ett otroligt populärt filformat, så fler kommer att finna det lättare att öppna eller spela upp din video jämfört med en [PPT](https ://docs.fileformat.com/presentation/ppt/) fil. Dessutom tittar de flesta på och konsumerar video mer än andra former av innehåll så din video kommer sannolikt att få en större publik jämfört med en presentation.
PowerPoint till video i Java
När du har läst klart den här artikeln har du lärt dig hur du konverterar PowerPoint till video i Java.
- Java API:er för att konvertera PPT till video
- Konvertera PPT till video i Java
- Använd effekter och animationer i video
Java API:er för att konvertera PPT till video
För att konvertera en PowerPoint-presentation till en video programmatiskt behöver du:
- Ett API för att generera en uppsättning ramar från presentationsbilderna. Vi rekommenderar Aspose.Slides for Java. Aspose.Slides för Java för är ett populärt API för att skapa, redigera, konvertera och manipulera PowerPoint-presentationer (utan Microsoft PowerPoint eller Office). För att installera Aspose.Slides för Java, se Installation.
- Och ett annat API för att skapa en video baserat på de genererade ramarna. Vi rekommenderar ffmpeg (för Java).
Info: Aspose utvecklade en gratis PowerPoint till videokonverterare som låter dig skapa fantastiska videor från presentationer. Denna omvandlare är i huvudsak en liveimplementering av PowerPoint till videokonverteringsprocessen.
Konvertera PPT till video i Java
- Lägg till detta till din POM-fil:
<dependency>
<groupId>net.bramp.ffmpeg</groupId>
<artifactId>ffmpeg</artifactId>
<version>0.7.0</version>
</dependency>
Ladda ner ffmpeg här.
Kör Java-koden för PowerPoint till video.
Den här Java-koden visar hur du konverterar PPT till video:
Presentation presentation = new Presentation();
try {
// Lägger till en leendeform och animerar den sedan
IAutoShape smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.SmileyFace, 110, 20, 500, 500);
ISequence mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence();
IEffect effectIn = mainSequence.addEffect(smile, EffectType.Fly, EffectSubtype.TopLeft, EffectTriggerType.AfterPrevious);
IEffect effectOut = mainSequence.addEffect(smile, EffectType.Fly, EffectSubtype.BottomRight, EffectTriggerType.AfterPrevious);
effectIn.getTiming().setDuration(2f);
effectOut.setPresetClassType(EffectPresetClassType.Exit);
final int fps = 33;
ArrayList<String> frames = new ArrayList<String>();
PresentationAnimationsGenerator animationsGenerator = new PresentationAnimationsGenerator(presentation);
try
{
PresentationPlayer player = new PresentationPlayer(animationsGenerator, fps);
try {
player.setFrameTick((sender, arguments) ->
{
try {
String frame = String.format("frame_%04d.png", sender.getFrameIndex());
ImageIO.write(arguments.getFrame(), "PNG", new java.io.File(frame));
frames.add(frame);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
animationsGenerator.run(presentation.getSlides());
} finally {
if (player != null) player.dispose();
}
} finally {
if (animationsGenerator != null) animationsGenerator.dispose();
}
// Konfigurera ffmpeg binärmapp. Se den här sidan: https://github.com/rosenbjerg/FFMpegCore#installation
FFmpeg ffmpeg = new FFmpeg("path/to/ffmpeg");
FFprobe ffprobe = new FFprobe("path/to/ffprobe");
FFmpegBuilder builder = new FFmpegBuilder()
.addExtraArgs("-start_number", "1")
.setInput("frame_%04d.png")
.addOutput("output.avi")
.setVideoFrameRate(FFmpeg.FPS_24)
.setFormat("avi")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createJob(builder).run();
} catch (IOException e) {
e.printStackTrace();
}
Använd effekter och animationer i video
PowerPoint låter dig tillämpa animationer på innehållet i dina presentationer och även använda övergångar mellan bilder. Dessa effekter gör en presentation (särskilt i form av ett bildspel) mer engagerande och intressant. När du konverterar en PowerPoint-presentation till video är det vettigt att använda liknande effekter i den resulterande videon och Aspose.Slides låter dig göra just det.
För att demonstrera användningen av effekter och animationer i en video, låt oss lägga till ytterligare en bild och övergå till koden för presentationen i föregående avsnitt på detta sätt:
// Lägger till ett leende och animerar det
// ...
// Lägger till en ny bild och animerad övergång
ISlide newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide());
newSlide.getBackground().setType(BackgroundType.OwnBackground);
newSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(Color.MAGENTA);
newSlide.getSlideShowTransition().setType(TransitionType.Push);
Sedan animerar vi stycken om objekt för att få dessa objekt att visas efter varandra (med fördröjningen mellan framträdanden inställd på en andra):
Presentation presentation = new Presentation();
try {
// Lägger till text och animationer
IAutoShape autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 210, 120, 300, 300);
Paragraph para1 = new Paragraph();
para1.getPortions().add(new Portion("Aspose Slides for Java"));
Paragraph para2 = new Paragraph();
para2.getPortions().add(new Portion("convert PowerPoint Presentation with text to video"));
Paragraph para3 = new Paragraph();
para3.getPortions().add(new Portion("paragraph by paragraph"));
IParagraphCollection paragraphCollection = autoShape.getTextFrame().getParagraphs();
paragraphCollection.add(para1);
paragraphCollection.add(para2);
paragraphCollection.add(para3);
paragraphCollection.add(new Paragraph());
ISequence mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence();
IEffect effect1 = mainSequence.addEffect(para1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
IEffect effect2 = mainSequence.addEffect(para2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
IEffect effect3 = mainSequence.addEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
IEffect effect4 = mainSequence.addEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
effect1.getTiming().setTriggerDelayTime(1f);
effect2.getTiming().setTriggerDelayTime(1f);
effect3.getTiming().setTriggerDelayTime(1f);
effect4.getTiming().setTriggerDelayTime(1f);
final int fps = 33;
ArrayList<String> frames = new ArrayList<String>();
PresentationAnimationsGenerator animationsGenerator = new PresentationAnimationsGenerator(presentation);
try
{
PresentationPlayer player = new PresentationPlayer(animationsGenerator, fps);
try {
player.setFrameTick((sender, arguments) ->
{
try {
String frame = String.format("frame_%04d.png", sender.getFrameIndex());
ImageIO.write(arguments.getFrame(), "PNG", new java.io.File(frame));
frames.add(frame);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
animationsGenerator.run(presentation.getSlides());
} finally {
if (player != null) player.dispose();
}
} finally {
if (animationsGenerator != null) animationsGenerator.dispose();
}
// Konfigurera ffmpeg binärmapp. Se den här sidan: https://github.com/rosenbjerg/FFMpegCore#installation
FFmpeg ffmpeg = new FFmpeg("path/to/ffmpeg");
FFprobe ffprobe = new FFprobe("path/to/ffprobe");
FFmpegBuilder builder = new FFmpegBuilder()
.addExtraArgs("-start_number", "1")
.setInput("frame_%04d.png")
.addOutput("output.avi")
.setVideoFrameRate(FFmpeg.FPS_24)
.setFormat("avi")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createJob(builder).run();
} catch (IOException e) {
e.printStackTrace();
}
Skaffa en gratis licens
Om du funderar på att prova Aspose.Slides-funktioner utan begränsningar rekommenderar vi att du skaffar en gratis tillfällig licens.
Slutsats
Vi tror att du nu vet hur du konverterar PPT till video och även använder animationer, övergångar och andra effekter i ditt arbete.
För att lära dig mer om Aspose.Slides features, se vår dokumentation. Om du har frågor kan du lägga upp dem på vårt forum.