Converter PPT para vídeo

Ao converter PowerPoint em vídeo, você obtém maior acessibilidade e um público maior para sua apresentação ou conteúdo. O formato de vídeo MP4 é um formato de arquivo incrivelmente popular, portanto, mais pessoas acharão mais fácil abrir ou reproduzir seu vídeo em comparação com um PPT arquivo. Além disso, a maioria das pessoas assiste e consome vídeos mais do que outras formas de conteúdo, portanto, é provável que seu vídeo tenha um público maior em comparação com uma apresentação.

PowerPoint para vídeo em Java

Ao terminar de ler este artigo, você terá aprendido como converter PowerPoint para vídeo em Java.

APIs Java para converter PPT em vídeo

Criar vídeo no PowerPoint

Para converter uma apresentação do PowerPoint em um vídeo programaticamente, você precisa:

  • Uma API para gerar um conjunto de quadros dos slides da apresentação. Recomendamos Aspose.Slides para Java. Aspose.Slides for Java for é uma API popular para criar, editar, converter e manipular apresentações do PowerPoint (sem Microsoft PowerPoint ou Office). Para instalar o Aspose.Slides para Java, consulte Instalação.
  • E outra API para criar um vídeo baseado nos frames gerados. Recomendamos ffmpeg (para Java).

Informações: A Aspose desenvolveu um [conversor de PowerPoint para vídeo] gratuito (https://products.aspose.app/slides/import/jpg-to-ppt) que permite criar vídeos impressionantes a partir de apresentações. Este conversor é essencialmente uma implementação ao vivo do processo de conversão de PowerPoint para vídeo.

Converter PPT para vídeo em Java

  1. Adicione isto ao seu arquivo POM:
   <dependency>
     <groupId>net.bramp.ffmpeg</groupId>
     <artifactId>ffmpeg</artifactId>
     <version>0.7.0</version>
   </dependency>
  1. Baixe o ffmpeg aqui.

  2. Execute o código Java do PowerPoint para vídeo.

Este código Java mostra como converter PPT em vídeo:

Presentation presentation = new Presentation();
try {
    // Adiciona uma forma de sorriso e depois a 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();
    }

    // Configure a pasta de binários do ffmpeg. Veja esta página: 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();
}

Aplicar efeitos e animações em vídeo

O PowerPoint permite aplicar animações ao conteúdo de suas apresentações e também usar transições entre slides. Esses efeitos tornam uma apresentação (especialmente na forma de apresentação de slides) mais envolvente e interessante. Quando você converte uma apresentação do PowerPoint em vídeo, faz sentido usar efeitos semelhantes no vídeo resultante e o Aspose.Slides permite que você faça exatamente isso.

Para demonstrar o uso de efeitos e animações em um vídeo, vamos adicionar outro slide e fazer a transição para o código da apresentação da seção anterior desta forma:

// Adiciona uma forma de sorriso e a anima

// ...

// Adiciona um novo slide e transição animada

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

Em seguida, animamos parágrafos em objetos para fazer com que esses objetos apareçam um após o outro (com o atraso entre as aparências definido para um segundo):

Presentation presentation = new Presentation();
try {
    // Adiciona texto e animações
    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();
    }

    // Configure a pasta de binários do ffmpeg. Veja esta página: 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();
}

Obtenha uma licença gratuita

Se você deseja experimentar os recursos do Aspose.Slides sem limitações, recomendamos que obtenha uma licença temporária gratuita.

Conclusão

Acreditamos que agora você sabe converter PPT em vídeo e também aplicar animações, transições e outros efeitos em seu trabalho.

Para saber mais sobre Aspose.Slides recursos, consulte nossa documentação. Se você tiver dúvidas, pode postá-las em nosso fórum.

Veja também