PowerPoint Sunumlarını Python'da Videoya Dönüştür

Giriş

PowerPoint veya OpenDocument sunumunuzu videoya dönüştürerek şunları elde edersiniz:

Artırılmış erişilebilirlik: Tüm cihazlar, platform fark etmeksizin, varsayılan olarak video oynatıcılarla donatılmıştır, bu da kullanıcıların geleneksel sunum uygulamalarına göre videoları açmasını veya oynatmasını kolaylaştırır.

Daha geniş erişim: Videolar daha büyük bir izleyici kitlesine ulaşmanızı ve bilgiyi daha çekici bir formatta sunmanızı sağlar. Anketler ve istatistikler, insanların diğer biçimlere göre video içeriğini izlemeyi tercih ettiğini gösteriyor, bu da mesajınızın daha etkili olmasını sağlar.

Aspose.Slides for Python 24.4 sürümünde, sunumları videoya dönüştürme desteği ekledik.

  • Sunum slaytlarından belirtilen kare hızı (FPS) ile kareler oluşturmak için Aspose.Slides for Python kullanın.
  • Ardından, bu kareleri bir videoya derlemek için ffmpeg gibi üçüncü taraf bir yardımcı program kullanın.

PowerPoint Sunumunu Videoya Dönüştür

  1. Projeye Aspose.Slides for Python eklemek için pip install komutunu kullanın: pip install aspose-slides==24.4.0
  2. ffmpeg’i buradan indirin veya paket yöneticisi aracılığıyla kurun.
  3. ffmpeg’in PATH içinde olduğundan emin olun. Aksi takdirde, ffmpeg’i ikili dosyanın tam yolu ile başlatın (ör. Windows’ta C:\ffmpeg\ffmpeg.exe veya Linux’ta /opt/ffmpeg/ffmpeg).
  4. PowerPoint’ten video dönüşüm kodunu çalıştırın.

Bu Python kodu, bir şekil ve iki animasyon efekti içeren bir sunumu videoya nasıl dönüştüreceğinizi gösterir:

import aspose.slides as slides
import subprocess

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    smile_shape = slide.shapes.add_auto_shape(slides.ShapeType.SMILEY_FACE, 110, 20, 500, 500)

    effect_in = slide.timeline.main_sequence.add_effect(
        smile_shape,
        slides.animation.EffectType.FLY,
        slides.animation.EffectSubtype.TOP_LEFT,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect_out = slide.timeline.main_sequence.add_effect(
        smile_shape,
        slides.animation.EffectType.FLY,
        slides.animation.EffectSubtype.BOTTOM_RIGHT,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect_in.timing.duration = 2
    effect_out.preset_class_type = slides.animation.EffectPresetClassType.EXIT

    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
            frame_args.get_frame().save(frame)

    cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p",
                "smile.webm"]
    subprocess.call(cmd_line)

Video Efektleri

PowerPoint sunumunu Aspose.Slides for Python ile videoya dönüştürürken, çıktının görsel kalitesini artırmak için çeşitli video efektleri uygulayabilirsiniz. Bu efektler, slaytların son videodaki görünümünü pürüzsüz geçişler, animasyonlar ve diğer görsel öğeler ekleyerek kontrol etmenizi sağlar. Bu bölüm, mevcut video efekt seçeneklerini açıklar ve nasıl uygulanacağını gösterir.

Animasyonlar ve geçişler slayt gösterilerini daha ilgi çekici ve eğlenceli hâle getirir — videolar için de aynı şey geçerlidir. Önceki sunum koduna bir başka slayt ve geçiş ekleyelim:

import aspose.pydrawing as drawing

# Bir gülümseme şekli ekleyin ve hareketlendirin.
# ...

# Yeni bir slayt ekleyin ve animasyonlu bir geçiş ekleyin.
new_slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
new_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
new_slide.background.fill_format.fill_type = slides.FillType.SOLID
new_slide.background.fill_format.solid_fill_color.color = drawing.Color.indigo
new_slide.slide_show_transition.type = slides.TransitionType.PUSH

Aspose.Slides for Python ayrıca metin animasyonlarını da destekler. Bu örnekte, nesneler üzerindeki paragrafları birbiri ardına, aralarında bir saniyelik gecikme ile canlandırıyoruz:

import aspose.slides as slides
import subprocess

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Metin ve animasyon ekle.
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 210, 120, 300, 300)
    para1 = slides.Paragraph()
    para1.portions.add(slides.Portion("Aspose.Slides for Python"))
    para2 = slides.Paragraph()
    para2.portions.add(slides.Portion("Convert a PowerPoint presentation with text to video"))

    para3 = slides.Paragraph()
    para3.portions.add(slides.Portion("paragraph by paragraph"))
    auto_shape.text_frame.paragraphs.add(para1)
    auto_shape.text_frame.paragraphs.add(para2)
    auto_shape.text_frame.paragraphs.add(para3)
    auto_shape.text_frame.paragraphs.add(slides.Paragraph())

    effect = slide.timeline.main_sequence.add_effect(
        para1,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect2 = slide.timeline.main_sequence.add_effect(
        para2,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect3 = slide.timeline.main_sequence.add_effect(
        para3,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect4 = slide.timeline.main_sequence.add_effect(
        para3,
        slides.animation.EffectType.APPEAR,
        slides.animation.EffectSubtype.NONE,
        slides.animation.EffectTriggerType.AFTER_PREVIOUS)

    effect.timing.trigger_delay_time = 1
    effect2.timing.trigger_delay_time = 1
    effect3.timing.trigger_delay_time = 1
    effect4.timing.trigger_delay_time = 1

    # Çerçeveleri videoya dönüştür.
    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
            frame_args.get_frame().save(frame)

    cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p", "text_animation.webm"]
    subprocess.call(cmd_line)

Video Dönüştürme Sınıfları

PowerPoint’ten video dönüşüm görevlerini etkinleştirmek için Aspose.Slides for Python, PresentationEnumerableFramesGenerator sağlar.

PresentationEnumerableFramesGenerator size videonun (daha sonra oluşturulacak) kare boyutunu ve FPS (saniyedeki kare sayısı) değerini yapıcı üzerinden ayarlama imkanı verir. Bir sunum örneği geçirirseniz, onun Presentation.SlideSize değeri kullanılacaktır.

Tüm animasyonların aynı anda oynatılmasını istiyorsanız, PresentationEnumerableFramesGenerator.enumerate_frames metodunu kullanın. Bu metod, bir slayt koleksiyonu alır ve sırasıyla EnumerableFrameArgs döndürür. Ardından, her bir video karesini elde etmek için EnumerableFrameArgs.get_frame() kullanın.

import aspose.slides as slides

with slides.Presentation("animated.pptx") as presentation:
    fps = 33
    with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
        for frame_args in frames_stream.enumerate_frames(presentation.slides):
            frame_args.get_frame().save(f"frame_{frame_args.frames_generator.frame_index:04d}.png")

Oluşturulan kareler daha sonra bir videoya derlenebilir. Daha fazla ayrıntı için PowerPoint’i Videoya Dönüştür bölümüne bakın.

Desteklenen Animasyonlar ve Efektler

PowerPoint sunumunu Aspose.Slides for Python ile videoya dönüştürürken, çıktıda hangi animasyon ve efektlerin desteklendiğini anlamak önemlidir. Aspose.Slides, solma, uçuş, yakınlaştırma ve döndürme gibi yaygın giriş, çıkış ve vurgu efektlerinin geniş bir yelpazesini destekler. Ancak bazı gelişmiş veya özel animasyonlar tam olarak korunmayabilir veya video içinde farklı görünebilir. Bu bölüm, desteklenen animasyon ve efektleri özetler.

Giriş:

Animasyon Türü Aspose.Slides PowerPoint
Appear not supported supported
Fade supported supported
Fly In supported supported
Float In supported supported
Split supported supported
Wipe supported supported
Shape supported supported
Wheel supported supported
Random Bars supported supported
Grow & Turn not supported supported
Zoom supported supported
Swivel supported supported
Bounce supported supported

Vurgu:

Animasyon Türü Aspose.Slides PowerPoint
Pulse not supported supported
Color Pulse not supported supported
Teeter supported supported
Spin supported supported
Grow/Shrink not supported supported
Desaturate not supported supported
Darken not supported supported
Lighten not supported supported
Transparency not supported supported
Object Color not supported supported
Complementary Color not supported supported
Line Color not supported supported
Fill Color not supported supported

Çıkış:

Animasyon Türü Aspose.Slides PowerPoint
Disappear not supported supported
Fade supported supported
Fly Out supported supported
Float Out supported supported
Split supported supported
Wipe supported supported
Shape supported supported
Random Bars supported supported
Shrink & Turn not supported supported
Zoom supported supported
Swivel supported supported
Bounce supported supported

Hareket Yolları:

Animasyon Türü Aspose.Slides PowerPoint
Lines supported supported
Arcs supported supported
Turns supported supported
Shapes supported supported
Loops supported supported
Custom Path supported supported

Desteklenen Slayt Geçiş Efektleri

Slayt geçiş efektleri, bir videodaki slaytlar arasındaki değişimleri sorunsuz ve görsel olarak çekici hâle getirmede önemli bir rol oynar. Aspose.Slides for Python, orijinal sunumunuzun akışını ve stilini korumak için çeşitli yaygın geçiş efektlerini destekler. Bu bölüm, dönüşüm sırasında hangi geçiş efektlerinin desteklendiğini gösterir.

İnce:

Animasyon Türü Aspose.Slides PowerPoint
Morph not supported supported
Fade supported supported
Push supported supported
Pull supported supported
Wipe supported supported
Split supported supported
Reveal not supported supported
Random Bars supported supported
Shape not supported supported
Uncover not supported supported
Cover supported supported
Flash supported supported
Strips supported supported

Heyecan Verici:

Animasyon Türü Aspose.Slides PowerPoint
Fall Over not supported supported
Drape not supported supported
Curtains not supported supported
Wind not supported supported
Prestige not supported supported
Fracture not supported supported
Crush not supported supported
Peel Off not supported supported
Page Curl not supported supported
Airplane not supported supported
Origami not supported supported
Dissolve supported supported
Checkerboard not supported supported
Blinds not supported supported
Clock supported supported
Ripple not supported supported
Honeycomb not supported supported
Glitter not supported supported
Vortex not supported supported
Shred not supported supported
Switch not supported supported
Flip not supported supported
Gallery not supported supported
Cube not supported supported
Doors not supported supported
Box not supported supported
Comb not supported supported
Zoom supported supported
Random not supported supported

Dinamik İçerik:

Animasyon Türü Aspose.Slides PowerPoint
Pan not supported supported
Ferris Wheel supported supported
Conveyor not supported supported
Rotate not supported supported
Orbit not supported supported
Fly Through supported supported

SSS

Şifre korumalı sunumları dönüştürmek mümkün müdür?

Evet, Aspose.Slides for Python şifre korumalı sunumlarla çalışmayı destekler. Bu tür dosyaları işlerken, kütüphanenin sunum içeriğine erişebilmesi için doğru şifreyi sağlamanız gerekir.

Aspose.Slides for Python bulut çözümlerinde kullanımını destekliyor mu?

Evet, Aspose.Slides for Python bulut uygulamaları ve hizmetleriyle bütünleştirilebilir. Kütüphane, dosya toplu işleme için yüksek performans ve ölçeklenebilirlik sağlamak üzere sunucu ortamlarında çalışacak şekilde tasarlanmıştır.

Dönüştürme sırasında sunumlar için herhangi bir boyut sınırlaması var mı?

Aspose.Slides for Python neredeyse her boyutta sunumu işleyebilir. Ancak çok büyük dosyalarla çalışırken ek sistem kaynakları gerekebilir ve performansı artırmak için sunumu optimize etmek önerilir.