إضافة مقاطع فيديو إلى العروض التقديمية باستخدام بايثون
يمكن للفيديو الموضوع بشكل مناسب في عرض تقديمي أن يجعل رسالتك أكثر إقناعًا ويزيد من مستويات التفاعل مع جمهورك.
يسمح PowerPoint لك بإضافة مقاطع فيديو إلى شريحة في عرض تقديمي بطريقتين:
- إضافة فيديو محلي أو تضمينه (محفوظ على جهازك)
- إضافة فيديو عبر الإنترنت (من مصدر ويب مثل YouTube).
لتمكينك من إضافة مقاطع فيديو (كائنات فيديو) إلى عرض تقديمي، توفر Aspose.Slides الفئة Video، الفئة VideoFrame وأنواع أخرى ذات صلة.
إنشاء إطار فيديو مدمج
إذا كان ملف الفيديو الذي تريد إضافته إلى شريحتك مخزنًا محليًا، يمكنك إنشاء إطار فيديو لتضمين الفيديو في عرضك التقديمي.
- إنشاء مثيل من الفئة Presentation.
- الحصول على مرجع الشريحة عبر فهرسها.
- إضافة كائن Video وتمرير مسار ملف الفيديو لتضمينه مع العرض التقديمي.
- إضافة كائن VideoFrame لإنشاء إطار للفيديو.
- حفظ العرض التقديمي المعدل.
يعرض هذا الكود Python كيفية إضافة فيديو مخزن محليًا إلى عرض تقديمي:
import aspose.slides as slides
with slides.Presentation(path + "pres.pptx") as pres:
with open("Wildlife.mp4", "br") as fileStream:
video = pres.videos.add_video(fileStream, slides.LoadingStreamBehavior.KEEP_LOCKED)
# الحصول على الشريحة الأولى وإضافة إطار فيديو
pres.slides[0].shapes.add_video_frame(10, 10, 150, 250, video)
# حفظ العرض التقديمي إلى القرص
pres.save(path + "pres-with-video.pptx", slides.export.SaveFormat.PPTX)
بدلاً من ذلك، يمكنك إضافة فيديو بتمرير مسار ملفه مباشرة إلى الدالة add_video_frame(x, y, width, height, fname):
import aspose.slides as slides
with slides.Presentation() as pres:
sld = pres.slides[0]
vf = sld.shapes.add_video_frame(50, 150, 300, 150, "video1.avi")
إنشاء إطار فيديو مع فيديو من مصدر ويب
يدعم Microsoft PowerPoint 2013 والإصدارات الأحدث مقاطع فيديو YouTube في العروض التقديمية. إذا كان الفيديو الذي تريد استخدامه متاحًا عبر الإنترنت (مثلًا على YouTube)، يمكنك إضافته إلى عرضك التقديمي من خلال رابط الويب الخاص به.
- إنشاء مثيل من الفئة Presentation.
- الحصول على مرجع الشريحة عبر فهرسها.
- إضافة كائن Video وتمرير الرابط إلى الفيديو.
- تعيين صورة مصغرة لإطار الفيديو.
- حفظ العرض التقديمي.
يعرض هذا الكود Python كيفية إضافة فيديو من الويب إلى شريحة في عرض PowerPoint:
import aspose.slides as slides
from urllib.request import urlopen
def add_video_from_youyube(pres, videoId):
# يضيف إطار فيديو
videoFrame = pres.slides[0].shapes.add_video_frame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId)
videoFrame.play_mode = slides.VideoPlayModePreset.AUTO
# يحمّل الصورة المصغرة
thumbnail_uri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg"
f = urlopen(thumbnail_uri)
videoFrame.picture_format.picture.image = pres.images.add_image(f.read())
with slides.Presentation() as pres:
add_video_from_youyube(pres, "s5JbfQZ5Cc0")
pres.save("AddVideoFrameFromWebSource_out.pptx", slides.export.SaveFormat.PPTX)
إدارة تسميات الفيديو
تتيح Aspose.Slides لك إدارة التسميات المغلقة لإطارات الفيديو في عروض PowerPoint. تُخزن التسميات بتنسيق WebVTT وتُعرض عبر الخاصية VideoFrame.caption_tracks.
إضافة تسميات إلى إطار فيديو
لإضافة تسميات إلى إطار فيديو:
- إنشاء مثيل من الفئة Presentation.
- إضافة فيديو إلى العرض التقديمي.
- إضافة كائن VideoFrame إلى شريحة.
- استخدام مجموعة CaptionsCollection التي تُرجعها الخاصية caption_tracks لإضافة مسار تسمية WebVTT.
- حفظ العرض التقديمي المعدل.
يعرض الكود التالي كيفية إضافة تسميات إلى إطار فيديو:
import aspose.slides as slides
with slides.Presentation() as presentation:
with open("video.mp4", "rb") as video_stream:
video_data = video_stream.read()
video = presentation.videos.add_video(video_data)
slide = presentation.slides[0]
video_frame = slide.shapes.add_video_frame(0, 0, 100, 100, video)
# يضيف مسار تسميات جديد من ملف WebVTT.
video_frame.caption_tracks.add("English", "track.vtt")
presentation.save("video_with_captions.pptx", slides.export.SaveFormat.PPTX)
توفر الفئة CaptionsCollection أيضًا تجاوزًا يسمح لك بإضافة تسميات من تدفق بيانات.
استخراج التسميات من إطار فيديو
لاستخراج التسميات من إطار فيديو:
- تحميل العرض التقديمي الذي يحتوي على الفيديو.
- العثور على كائن VideoFrame الهدف.
- iterating عبر مجموعة caption_tracks.
- حفظ كل مسار تسمية إلى ملف
.vtt.
يعرض الكود التالي كيفية استخراج التسميات من إطار فيديو:
import aspose.slides as slides
with slides.Presentation("video_with_captions.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
if isinstance(shape, slides.VideoFrame):
for caption_track in shape.caption_tracks:
# يحفظ مسار التسمية إلى ملف WebVTT.
file_path = f"{caption_track.caption_id}.vtt"
with open(file_path, "wb") as track_stream:
track_stream.write(bytes(caption_track.binary_data))
كل كائن Captions يُظهر معرف التسمية، التسمية، البيانات الثنائية، ونص التسمية كسلسلة UTF-8.
إزالة التسميات من إطار فيديو
لإزالة التسميات من إطار فيديو:
- تحميل العرض التقديمي الذي يحتوي على الفيديو.
- الحصول على كائن VideoFrame الهدف.
- إزالة مسارات التسميات من مجموعة CaptionsCollection.
- حفظ العرض التقديمي المعدل.
يعرض الكود التالي كيفية إزالة جميع التسميات من إطار فيديو:
import aspose.slides as slides
with slides.Presentation("video_with_captions.pptx") as presentation:
slide = presentation.slides[0]
video_frame = slide.shapes[0] # type: slides.VideoFrame
# يزيل جميع التسميات من إطار الفيديو.
video_frame.caption_tracks.clear()
presentation.save("video_without_captions.pptx", slides.export.SaveFormat.PPTX)
إذا كنت بحاجة إلى إزالة مسار تسمية واحد فقط، استخدم طريقتي remove أو remove_at بدلاً من clear.
استخراج الفيديو من الشريحة
إلى جانب إضافة الفيديوهات إلى الشرائح، تتيح Aspose.Slides لك استخراج الفيديوهات المضمنة في العروض التقديمية.
- إنشاء مثيل من الفئة Presentation لتحميل العرض التقديمي المحتوي على الفيديو.
- iterating عبر جميع كائنات Slide.
- iterating عبر جميع كائنات Shape للعثور على كائن VideoFrame.
- حفظ الفيديو إلى القرص.
يعرض هذا الكود Python كيفية استخراج الفيديو من شريحة عرض تقديمي:
import aspose.slides as slides
# ينشئ كائن Presentation يمثل ملف عرض تقديمي
with slides.Presentation(path + "Video.pptx") as presentation:
for shape in presentation.slides[0].shapes:
if type(shape) is slides.VideoFrame:
type = shape.embedded_video.content_type
buffer = shape.embedded_video.binary_data
with open("NewVideo_out." + type[type.rfind('/') + 1:len(type)], "wb") as stream:
stream.write(buffer)
FAQ
ما هي معلمات تشغيل الفيديو التي يمكن تغييرها لإطار VideoFrame؟
يمكنك التحكم في وضع التشغيل (تلقائي أو عند النقر) والتكرار. تتوفر هذه الخيارات عبر خصائص كائن VideoFrame.
هل يؤثر إضافة فيديو على حجم ملف PPTX؟
نعم. عند تضمين فيديو محلي، تُدرج البيانات الثنائية في المستند، لذلك يزداد حجم العرض التقديمي بنسبة حجم الملف. عند إضافة فيديو عبر الإنترنت، يتم تضمين رابط وصورة مصغرة، لذا يكون الزيادة في الحجم أصغر.
هل يمكن استبدال الفيديو في إطار VideoFrame موجود دون تغيير موقعه وحجمه؟
نعم. يمكنك استبدال محتوى الفيديو داخل الإطار مع الحفاظ على هندسة الشكل؛ هذا سيناريو شائع لتحديث الوسائط في تخطيط موجود.
هل يمكن تحديد نوع المحتوى (MIME) للفيديو المضمن؟
نعم. للفيديو المضمن نوع محتوى يمكنك قراءته واستخدامه، على سبيل المثال عند حفظه إلى القرص.