Converti PPT in video

Quando converti PowerPoint in video, ottieni una maggiore accessibilità e un pubblico più vasto per la tua presentazione o il tuo contenuto. Il formato video MP4 è un formato di file incredibilmente popolare, quindi più persone troveranno più facile aprire o riprodurre il tuo video rispetto a un [PPT](https https://docs.fileformat.com/presentation/ppt/). Inoltre, la maggior parte delle persone guarda e consuma video più di altre forme di contenuto, quindi è probabile che il tuo video ottenga un pubblico più vasto rispetto a una presentazione.

Da PowerPoint a Video in Java

Quando avrai finito di leggere questo articolo, avrai imparato come convertire PowerPoint in video in Java.

API Java per convertire PPT in video

Crea video in PowerPoint

Per convertire una presentazione PowerPoint in un video a livello di programmazione, è necessario:

  • Un’API per generare un set di frame dalle diapositive della presentazione. Consigliamo Aspose.Slides for Java. Aspose.Slides for Java per è un’API popolare per la creazione, la modifica, la conversione e la manipolazione di presentazioni PowerPoint (senza Microsoft PowerPoint o Office). Per installare Aspose.Slides for Java, vedere Installazione.
  • E un’altra API per creare un video basato sui fotogrammi generati. Consigliamo ffmpeg (per Java).

Informazioni: Aspose ha sviluppato un convertitore da PowerPoint a video gratuito che ti consente di creare video straordinari dalle presentazioni. Questo convertitore è essenzialmente un’implementazione live del processo di conversione da PowerPoint a video.

Converti PPT in video in Java

  1. Aggiungi questo al tuo file POM:
   <dependency>
     <groupId>net.bramp.ffmpeg</groupId>
     <artifactId>ffmpeg</artifactId>
     <version>0.7.0</version>
   </dependency>
  1. Scarica ffmpeg qui.

  2. Eseguire il codice Java da PowerPoint a video.

Questo codice Java mostra come convertire PPT in video:

Presentation presentation = new Presentation();
try {
    // Aggiunge una forma di sorriso e poi la anima
    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();
    }

    // Configura la cartella dei binari di ffmpeg. Vedi questa pagina: 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();
}

Applica effetti e animazioni ai video

PowerPoint ti consente di applicare animazioni ai contenuti delle tue presentazioni e di utilizzare anche transizioni tra le diapositive. Questi effetti rendono una presentazione (soprattutto sotto forma di presentazione) più coinvolgente e interessante. Quando converti una presentazione PowerPoint in video, ha senso utilizzare effetti simili nel video risultante e Aspose.Slides ti consente di fare esattamente questo.

Per dimostrare l’uso di effetti e animazioni in un video, aggiungiamo un’altra diapositiva e una transizione al codice per la presentazione nella sezione precedente in questo modo:

// Aggiunge una forma di sorriso e la anima

// ...

// Aggiunge una nuova diapositiva e una transizione animata

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

Quindi animiamo i paragrafi sugli oggetti per farli apparire uno dopo l’altro (con il ritardo tra le apparizioni impostato su un secondo):

Presentation presentation = new Presentation();
try {
    // Aggiunge testo e animazioni
    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();
    }

    // Configura la cartella dei binari di ffmpeg. Vedi questa pagina: 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();
}

Ottieni una licenza gratuita

Se stai cercando di provare le funzionalità di Aspose.Slides senza limitazioni, ti consigliamo di ottenere una licenza temporanea gratuita.

Conclusione

Riteniamo che ora tu sappia come convertire PPT in video e anche applicare animazioni, transizioni e altri effetti nel tuo lavoro.

Per saperne di più su Aspose.Slides funzionalità, consulta la nostra documentazione. Se hai domande, puoi pubblicarle sul nostro forum.

Guarda anche