تحويل عروض PowerPoint إلى فيديو باستخدام Python
نظرة عامة
من خلال تحويل عرض PowerPoint أو OpenDocument إلى فيديو، ستحصل على:
زيادة إمكانية الوصول: جميع الأجهزة، بغض النظر عن النظام الأساسي، تكون مزودة بمشغلات فيديو بشكل افتراضي، مما يجعل من الأسهل للمستخدمين فتح أو تشغيل الفيديوهات مقارنةً بتطبيقات العروض التقليدية.
نطاق أوسع: تمكنك الفيديوهات من الوصول إلى جمهور أكبر وتقديم المعلومات بطريقة أكثر جذبًا. تشير الاستطلاعات والإحصاءات إلى أن الناس يفضلون مشاهدة واستهلاك محتوى الفيديو على غيره، ما يجعل رسالتك أكثر تأثيرًا.
في Aspose.Slides for Python 24.4، قمنا بدمج دعم تحويل العروض إلى فيديو.
- استخدم Aspose.Slides for Python لتوليد إطارات من شرائح العرض بمعدل إطارات محدد (FPS).
- ثم، استخدم أداة طرف ثالث مثل ffmpeg لتجميع هذه الإطارات في فيديو.
تحويل عرض PowerPoint إلى فيديو
- استخدم أمر pip install لإضافة Aspose.Slides for Python إلى مشروعك:
pip install aspose-slides==24.4.0 - حمّل ffmpeg من هنا أو ثبّته عبر مدير الحزم.
- تأكد من أن ffmpeg موجود في
PATH. وإلا، شغّل ffmpeg باستخدام المسار الكامل للملف التنفيذي (مثلاًC:\ffmpeg\ffmpeg.exeعلى Windows أو/opt/ffmpeg/ffmpegعلى Linux). - شغّل كود تحويل PowerPoint إلى فيديو.
يعرض هذا الكود Python كيفية تحويل عرض (يحتوي على شكل وتأثيرين حركيين) إلى فيديو:
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)
تأثيرات الفيديو
عند تحويل عرض PowerPoint إلى فيديو باستخدام Aspose.Slides for Python، يمكنك تطبيق تأثيرات فيديو مختلفة لتحسين جودة المخرجات البصرية. تتيح لك هذه التأثيرات التحكم في مظهر الشرائح في الفيديو النهائي عن طريق إضافة انتقالات سلسة، ورسوم متحركة، وعناصر بصرية أخرى. يوضح هذا القسم خيارات تأثيرات الفيديو المتاحة وكيفية تطبيقها.
تجعل الرسوم المتحركة والانتقالات عروض الشرائح أكثر جاذبية وإثارة — وتفعل الشيء نفسه للفيديوهات. لنضيف شريحة أخرى وانتقالًا إلى الكود للعرض السابق:
import aspose.pydrawing as drawing
# أضف شكلاً مبتسمًا وقم بتحريكه.
# ...
# أضف شريحة جديدة وانتقالًا متحركًا.
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 أيضًا رسوم متحركة للنص. في هذا المثال، نقوم بتحريك الفقرات على الكائنات لتظهر واحدة تلو الأخرى، مع تأخير ثانية واحدة بينها:
import aspose.slides as slides
import subprocess
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# أضف النص والرسوم المتحركة.
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
# تحويل الإطارات إلى فيديو.
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)
فئات تحويل الفيديو
لتمكين مهام تحويل PowerPoint إلى فيديو، يوفر Aspose.Slides for Python الفئة PresentationEnumerableFramesGenerator.
PresentationEnumerableFramesGenerator تتيح لك تعيين حجم الإطار للفيديو (الذي سيُنشأ لاحقًا) وقيمة FPS (الإطارات في الثانية) من خلال المُنشئ الخاص بها. إذا مررت بمثيل للعرض، سيُستخدم Presentation.SlideSize الخاص به.
لجعل جميع الرسوم المتحركة في عرض تُشغَل مرةً واحدة، استخدم الطريقة PresentationEnumerableFramesGenerator.enumerate_frames. تأخذ هذه الطريقة مجموعة من الشرائح وتعيد بشكل متسلسل EnumerableFrameArgs. ثم، استخدم EnumerableFrameArgs.get_frame() للحصول على كل إطار فيديو.
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")
بعد ذلك يمكن تجميع الإطارات المُولدة في فيديو. للمزيد من التفاصيل، راجع قسم Convert PowerPoint to Video.
الرسوم المتحركة والتأثيرات المدعومة
عند تحويل عرض PowerPoint إلى فيديو باستخدام Aspose.Slides for Python، من المهم معرفة أي الرسوم المتحركة والتأثيرات مُدَعَّمة في المخرجات. يدعم Aspose.Slides مجموعة واسعة من تأثيرات الدخول، الخروج، والتأكيد الشائعة مثل التلاشي، التحليق، التكبير، والدوران. ومع ذلك، قد لا يتم الحفاظ على بعض الرسوم المتحركة المتقدمة أو المخصصة بشكل كامل أو قد تظهر بصورة مختلفة في الفيديو النهائي. يوضح هذا القسم الرسوم المتحركة والتأثيرات المدعومة.
الدخول:
| نوع الرسوم المتحركة | Aspose.Slides | PowerPoint |
|---|---|---|
| Appear | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly In | ![]() |
![]() |
| Float In | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Wheel | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Grow & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
التأكيد:
| نوع الرسوم المتحركة | Aspose.Slides | PowerPoint |
|---|---|---|
| Pulse | ![]() |
![]() |
| Color Pulse | ![]() |
![]() |
| Teeter | ![]() |
![]() |
| Spin | ![]() |
![]() |
| Grow/Shrink | ![]() |
![]() |
| Desaturate | ![]() |
![]() |
| Darken | ![]() |
![]() |
| Lighten | ![]() |
![]() |
| Transparency | ![]() |
![]() |
| Object Color | ![]() |
![]() |
| Complementary Color | ![]() |
![]() |
| Line Color | ![]() |
![]() |
| Fill Color | ![]() |
![]() |
الخروج:
| نوع الرسوم المتحركة | Aspose.Slides | PowerPoint |
|---|---|---|
| Disappear | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Fly Out | ![]() |
![]() |
| Float Out | ![]() |
![]() |
| Split | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shrink & Turn | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Swivel | ![]() |
![]() |
| Bounce | ![]() |
![]() |
مسارات الحركة:
| نوع الرسوم المتحركة | Aspose.Slides | PowerPoint |
|---|---|---|
| Lines | ![]() |
![]() |
| Arcs | ![]() |
![]() |
| Turns | ![]() |
![]() |
| Shapes | ![]() |
![]() |
| Loops | ![]() |
![]() |
| Custom Path | ![]() |
![]() |
تأثيرات انتقال الشرائح المدعومة
تلعب تأثيرات انتقال الشرائح دورًا مهمًا في إنشاء تغييرات سلسة وجذابة بين الشرائح في الفيديو. يدعم Aspose.Slides for Python مجموعة متنوعة من تأثيرات الانتقال الشائعة للمساعدة في الحفاظ على تدفق وعرض تقديمك الأصلي. يبرز هذا القسم التأثيرات المدعومة أثناء عملية التحويل.
دقيق:
| نوع الانتقال | Aspose.Slides | PowerPoint |
|---|---|---|
| Morph | ![]() |
![]() |
| Fade | ![]() |
![]() |
| Push | ![]() |
![]() |
| Pull | ![]() |
![]() |
| Wipe | ![]() |
![]() |
| Split | ![]() |
![]() |
| Reveal | ![]() |
![]() |
| Random Bars | ![]() |
![]() |
| Shape | ![]() |
![]() |
| Uncover | ![]() |
![]() |
| Cover | ![]() |
![]() |
| Flash | ![]() |
![]() |
| Strips | ![]() |
![]() |
مشوق:
| نوع الانتقال | Aspose.Slides | PowerPoint |
|---|---|---|
| Fall Over | ![]() |
![]() |
| Drape | ![]() |
![]() |
| Curtains | ![]() |
![]() |
| Wind | ![]() |
![]() |
| Prestige | ![]() |
![]() |
| Fracture | ![]() |
![]() |
| Crush | ![]() |
![]() |
| Peel Off | ![]() |
![]() |
| Page Curl | ![]() |
![]() |
| Airplane | ![]() |
![]() |
| Origami | ![]() |
![]() |
| Dissolve | ![]() |
![]() |
| Checkerboard | ![]() |
![]() |
| Blinds | ![]() |
![]() |
| Clock | ![]() |
![]() |
| Ripple | ![]() |
![]() |
| Honeycomb | ![]() |
![]() |
| Glitter | ![]() |
![]() |
| Vortex | ![]() |
![]() |
| Shred | ![]() |
![]() |
| Switch | ![]() |
![]() |
| Flip | ![]() |
![]() |
| Gallery | ![]() |
![]() |
| Cube | ![]() |
![]() |
| Doors | ![]() |
![]() |
| Box | ![]() |
![]() |
| Comb | ![]() |
![]() |
| Zoom | ![]() |
![]() |
| Random | ![]() |
![]() |
محتوى ديناميكي:
| نوع الانتقال | Aspose.Slides | PowerPoint |
|---|---|---|
| Pan | ![]() |
![]() |
| Ferris Wheel | ![]() |
![]() |
| Conveyor | ![]() |
![]() |
| Rotate | ![]() |
![]() |
| Orbit | ![]() |
![]() |
| Fly Through | ![]() |
![]() |
الأسئلة الشائعة
هل من الممكن تحويل العروض المحمية بكلمة مرور؟
نعم، يتيح Aspose.Slides for Python التعامل مع العروض المحمية بكلمة مرور. عند معالجة مثل هذه الملفات، تحتاج إلى توفير كلمة المرور الصحيحة حتى تتمكن المكتبة من الوصول إلى محتوى العرض.
هل يدعم Aspose.Slides for Python الاستخدام في حلول السحابة؟
نعم، يمكن دمج Aspose.Slides for Python في التطبيقات والخدمات السحابية. تم تصميم المكتبة للعمل في بيئات الخادم، مما يضمن أداءً عاليًا وقابلية توسعة لمعالجة الملفات على نطاق كبير.
هل هناك حدود لحجم العروض أثناء التحويل؟
يستطيع Aspose.Slides for Python التعامل مع عروض بحجم كبير تقريبًا. ومع ذلك، عند العمل مع ملفات ضخمة جدًا قد تحتاج إلى موارد نظام إضافية، ومن الأفضل أحيانًا تحسين العرض لتحسين الأداء.

