Convertir PPT en vidéo

Lorsque vous convertissez PowerPoint en vidéo, vous bénéficiez d’une accessibilité accrue et d’un public plus large pour votre présentation ou votre contenu. Le format vidéo MP4 est un format de fichier incroyablement populaire, donc plus de gens trouveront plus facile d’ouvrir ou de lire votre vidéo par rapport à un PPT. De plus, la plupart des gens regardent et consomment plus de vidéos que d’autres formes de contenu, de sorte que votre vidéo est susceptible d’attirer un public plus large par rapport à une présentation.

PowerPoint en vidéo en Java

Lorsque vous aurez fini de lire cet article, vous aurez appris à convertir PowerPoint en vidéo en Java.

API Java pour convertir PPT en vidéo

Créer une vidéo dans PowerPoint

Pour convertir une présentation PowerPoint en vidéo par programmation, vous avez besoin de :

  • Une API pour générer un ensemble de cadres à partir des diapositives de présentation. Nous recommandons Aspose.Slides for Java. Aspose.Slides for Java for est une API populaire pour créer, éditer, convertir et manipuler des présentations PowerPoint (sans Microsoft PowerPoint ou Office). Pour installer Aspose.Slides for Java, voir Installation.
  • Et une autre API pour créer une vidéo basée sur les images générées. Nous recommandons ffmpeg (pour Java).

Info : Aspose a développé un convertisseur PowerPoint vers vidéo gratuit qui vous permet de créer de superbes vidéos à partir de présentations. Ce convertisseur est essentiellement une implémentation en direct du processus de conversion PowerPoint en vidéo.

Convertir PPT en vidéo en Java

  1. Ajoutez ceci à votre fichier POM :
   <dependency>
     <groupId>net.bramp.ffmpeg</groupId>
     <artifactId>ffmpeg</artifactId>
     <version>0.7.0</version>
   </dependency>
  1. Téléchargez ffmpeg ici.

  2. Exécutez le code Java PowerPoint vers vidéo.

Ce code Java vous montre comment convertir PPT en vidéo :

Presentation presentation = new Presentation();
try {
    // Ajoute une forme de sourire puis l'anime
    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();
    }

    // Configurez le dossier des fichiers binaires ffmpeg. Voir cette page : 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();
}

Appliquer des effets et des animations dans la vidéo

PowerPoint vous permet d’appliquer des animations au contenu de vos présentations et également d’utiliser des transitions entre les diapositives. Ces effets rendent une présentation (en particulier sous la forme d’un diaporama) plus engageante et intéressante. Lorsque vous convertissez une présentation PowerPoint en vidéo, il est logique d’utiliser des effets similaires dans la vidéo résultante et Aspose.Slides vous permet de faire précisément cela.

Pour démontrer l’utilisation d’effets et d’animations dans une vidéo, ajoutons une autre diapositive et transition vers le code de la présentation de la section précédente de cette manière :

// Ajoute une forme de sourire et l'anime

// ...

// Ajoute une nouvelle diapositive et une transition animée

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

Ensuite, nous animons des paragraphes sur des objets pour faire apparaître ces objets les uns après les autres (avec un délai entre les apparitions défini sur une seconde) :

Presentation presentation = new Presentation();
try {
    // Ajoute du texte et des animations
    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();
    }

    // Configurez le dossier des fichiers binaires ffmpeg. Voir cette page : 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();
}

Obtenez une licence gratuite

Si vous souhaitez essayer les fonctionnalités d’Aspose.Slides sans limitation, nous vous recommandons d’obtenir une licence temporaire gratuite.

Conclusion

Nous pensons que vous savez maintenant comment convertir PPT en vidéo et également appliquer des animations, des transitions et d’autres effets dans votre travail.

Pour en savoir plus sur Aspose.Slides fonctionnalités, consultez notre documentation. Si vous avez des questions, vous pouvez les poster sur notre forum.

Voir également