PPT'yi videoya dönüştür

PowerPoint’i videoya dönüştürdüğünüzde, sunumunuz veya içeriğiniz için daha fazla erişilebilirlik ve daha büyük bir izleyici kitlesi elde edersiniz. MP4 video formatı inanılmaz derecede popüler bir dosya formatıdır, bu nedenle PPT ile karşılaştırıldığında daha fazla kişi videonuzu açmayı veya oynatmayı daha kolay bulacaktır. ://docs.fileformat.com/presentation/ppt/) dosyası. Ayrıca, çoğu insan videoyu diğer içerik biçimlerinden daha fazla izler ve tüketir, bu nedenle videonuzun bir sunuma kıyasla daha büyük bir izleyici kitlesi alması muhtemeldir.

Java’da PowerPoint’ten Videoya Dönüştürme

Bu makaleyi okumayı bitirdiğinizde, Java’da PowerPoint’i videoya nasıl dönüştüreceğinizi öğrenmiş olacaksınız.

PPT’yi Videoya Dönüştürmek için Java API’leri

PowerPoint'te video oluşturma

Bir PowerPoint sunumunu programlı olarak bir videoya dönüştürmek için şunlara ihtiyacınız vardır:

  • Sunum slaytlarından bir dizi çerçeve oluşturmak için bir API. Aspose.Slides for Java öneririz. Aspose.Slides for Java for, PowerPoint sunumları (Microsoft PowerPoint veya Office olmadan) oluşturmak, düzenlemek, dönüştürmek ve değiştirmek için kullanılan popüler bir API’dir. Aspose.Slides for Java’yı kurmak için bkz. Kurulum.
  • Ve oluşturulan karelere dayalı bir video oluşturmak için başka bir API. Ffmpeg’i öneririz (Java için).

Bilgi: Aspose, sunumlardan çarpıcı videolar oluşturmanıza olanak sağlayan ücretsiz bir PowerPoint - video dönüştürücü geliştirdi. Bu dönüştürücü, esasen PowerPoint’ten videoya dönüştürme işleminin canlı bir uygulamasıdır.

Java’da PPT’yi Videoya Dönüştür{#Java’da PPT’yi Videoya Dönüştür}

  1. Bunu POM dosyanıza ekleyin:
   <dependency>
     <groupId>net.bramp.ffmpeg</groupId>
     <artifactId>ffmpeg</artifactId>
     <version>0.7.0</version>
   </dependency>
  1. Ffmpeg’i buradan indirin.

  2. PowerPoint’ten videoya Java kodunu çalıştırın.

Bu Java kodu, PPT’yi videoya nasıl dönüştüreceğinizi gösterir:

Presentation presentation = new Presentation();
try {
    // Bir gülümseme şekli ekler ve ardından onu canlandırır
    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();
    }

    // Ffmpeg ikili dosyalar klasörünü yapılandırın. Bu sayfaya bakın: 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();
}

Videoda Efektler ve Animasyonlar Uygula

PowerPoint, sunumlarınızın içeriğine animasyonlar uygulamanıza ve ayrıca slaytlar arasında geçişler kullanmanıza olanak tanır. Bu efektler bir sunumu (özellikle slayt gösterisi şeklinde) daha ilgi çekici ve ilgi çekici hale getirir. Bir PowerPoint sunumunu videoya dönüştürdüğünüzde, ortaya çıkan videoda benzer efektler kullanmak mantıklıdır ve Aspose.Slides tam olarak bunu yapmanızı sağlar.

Bir videoda efekt ve animasyon kullanımını göstermek için bir önceki bölümdeki sunum koduna şu şekilde bir slayt ve geçiş daha ekleyelim:

// Bir gülümseme şekli ekler ve onu canlandırır

// ...

// Yeni bir slayt ve animasyonlu geçiş ekler

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

Ardından, nesnelerin birbiri ardına görünmesini sağlamak için nesneler üzerindeki paragrafları canlandırıyoruz (görünümler arasındaki gecikme bir saniyeye ayarlanmış):

Presentation presentation = new Presentation();
try {
    // Metin ve animasyonlar ekler
    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();
    }

    // Ffmpeg ikili dosyalar klasörünü yapılandırın. Bu sayfaya bakın: 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();
}

Ücretsiz Lisans Alın

Aspose.Slides özelliklerini sınırsız bir şekilde denemek istiyorsanız ücretsiz bir geçici lisans almanızı öneririz.

Çözüm

Artık PPT’yi videoya nasıl dönüştüreceğinizi ve ayrıca çalışmanıza animasyonlar, geçişler ve diğer efektleri nasıl uygulayacağınızı bildiğinize inanıyoruz.

Aspose.Slides özellikleri hakkında daha fazla bilgi edinmek için belgelerimize bakın/). Sorularınız varsa forumumuza gönderebilirsiniz.

Ayrıca bakınız