Προσθήκη Βίντεο σε Παρουσιάσεις με Python
Εισαγωγή
Ένα σωστά τοποθετημένο βίντεο σε μια παρουσίαση μπορεί να κάνει το μήνυμά σας πιο ελκυστικό και να αυξήσει τα επίπεδα αλληλεπίδρασης με το κοινό σας.
Το PowerPoint σας επιτρέπει να προσθέσετε βίντεο σε μια διαφάνεια σε μια παρουσίαση με δύο τρόπους:
- Προσθέστε ή ενσωματώστε ένα τοπικό βίντεο (αποθηκευμένο στον υπολογιστή σας)
- Προσθέστε ένα διαδικτυακό βίντεο (από πηγή web όπως το YouTube).
Για να μπορείτε να προσθέσετε βίντεο (αντικείμενα video) σε μια παρουσίαση, το 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")
Δημιουργία Πλαισίου Βίντεο με Βίντεο από Πηγή Web
Οι νεότερες εκδόσεις του Microsoft PowerPoint υποστηρίζουν διαδικτυακά βίντεο σε παρουσιάσεις. Εάν το βίντεο που θέλετε να χρησιμοποιήσετε είναι διαθέσιμο online (π.χ. στο YouTube), μπορείτε να το προσθέσετε στην παρουσίασή σας μέσω του διαδικτυακού του συνδέσμου.
- Δημιουργήστε μια παρουσίαση της κλάσης Presentation
- Λάβετε την αναφορά μιας διαφάνειας μέσω του δείκτη της.
- Προσθέστε ένα αντικείμενο Video και περάστε το σύνδεσμο στο βίντεο.
- Ορίστε μια μικρογραφία για το πλαίσιο βίντεο.
- Αποθηκεύστε την παρουσίαση.
Αυτός ο κώδικας Python σας δείχνει πώς να προσθέσετε ένα βίντεο από το web σε μια διαφάνεια σε μια παρουσίαση 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 σας επιτρέπει να ελέγξετε ποιο τμήμα ενός βίντεο θα αναπαραχθεί ορίζοντας τις τιμές trim-from-start και trim-from-end μέσω των VideoFrame.trim_from_start και VideoFrame.trim_from_end. Και οι δύο τιμές ορίζονται σε χιλιοστά του δευτερολέπτου και καθορίζουν πόσο χρόνο παραλείπεται από την αρχή και το τέλος του βίντεο, αντίστοιχα. Αυτές οι ρυθμίσεις αλλάζουν τις ρυθμίσεις αναπαραγωγής βίντεο στην παρουσίαση· δεν κόβουν ούτε τροποποιούν με κάποιον άλλο τρόπο τα ενσωματωμένα δυαδικά δεδομένα του βίντεο.
Ορισμός Ρυθμίσεων Περικοπής
Για να δημιουργήσετε ένα πλαίσιο βίντεο και να ορίσετε τις ρυθμίσεις περικοπής του:
- Δημιουργήστε μια παρουσίαση της κλάσης Presentation .
- Προσθέστε ένα αντικείμενο Video στην παρουσίαση.
- Προσθέστε ένα αντικείμενο VideoFrame σε μια διαφάνεια.
- Ορίστε τις τιμές trim-from-start και trim-from-end μέσω των VideoFrame.trim_from_start και VideoFrame.trim_from_end .
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Το παρακάτω παράδειγμα κώδικα παραλείπει τα πρώτα 2,5 δευτερόλεπτα και το τελευταίο δευτερόλεπτο ενός ενσωματωμένου βίντεο κατά την αναπαραγωγή:
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(50, 50, 640, 360, video)
video_frame.trim_from_start = 2500.0
video_frame.trim_from_end = 1000.0
presentation.save("video_with_trim.pptx", slides.export.SaveFormat.PPTX)
Ανάγνωση Ρυθμίσεων Περικοπής
Για να εξετάσετε τις υπάρχουσες ρυθμίσεις περικοπής, φορτώστε μια παρουσίαση, βρείτε ένα αντικείμενο VideoFrame μεταξύ των σχημάτων στην πρώτη διαφάνεια και διαβάστε τις τιμές μέσω των VideoFrame.trim_from_start και VideoFrame.trim_from_end .
Το παρακάτω παράδειγμα κώδικα βρίσκει το πρώτο πλαίσιο βίντεο στην πρώτη διαφάνεια και αναφέρει τις ρυθμίσεις περικοπής του σε χιλιοστά του δευτερολέπτου:
import aspose.slides as slides
with slides.Presentation("video_with_trim.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
if isinstance(shape, slides.VideoFrame):
video_frame = shape
trim_from_start = video_frame.trim_from_start
trim_from_end = video_frame.trim_from_end
print(f"Trim from start: {trim_from_start} ms")
print(f"Trim from end: {trim_from_end} ms")
break
Διαχείριση Υπότιτλων Βίντεο
Το Aspose.Slides σας επιτρέπει να διαχειριστείτε τα κλειστά υπότιτλοι για πλαίσια βίντεο σε παρουσιάσεις PowerPoint. Οι υπότιτλοι αποθηκεύονται σε μορφή WebVTT και είναι προσβάσιμοι μέσω της ιδιότητας VideoFrame.caption_tracks .
Προσθήκη Υποτίτλων σε Πλαίσιο Βίντεο
Για να προσθέσετε υπότιτλους σε ένα πλαίσιο βίντεο:
- Δημιουργήστε μια παρουσίαση της κλάσης Presentation .
- Προσθέστε ένα βίντεο στην παρουσίαση.
- Προσθέστε ένα αντικείμενο VideoFrame σε μια διαφάνεια.
- Χρησιμοποιήστε τη CaptionsCollection που επιστρέφεται από το caption_tracks για να προσθέσετε ένα WebVTT track υποτίτλων.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Το παρακάτω παράδειγμα δείχνει πώς να προσθέσετε υπότιτλους σε ένα πλαίσιο βίντεο:
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 .
- Διατρέξτε τη συλλογή caption_tracks .
- Αποθηκεύστε κάθε track υποτίτλων σε αρχείο
.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 .
- Αφαιρέστε τα tracks υποτίτλων από τη 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)
Εάν χρειάζεστε να αφαιρέσετε μόνο ένα track υπότιτλου, χρησιμοποιήστε τις μεθόδους remove ή remove_at αντί για την clear .
Εξαγωγή Βίντεο από Διαφάνεια
Εκτός από την προσθήκη βίντεο σε διαφάνειες, το Aspose.Slides σας επιτρέπει να εξάγετε βίντεο ενσωματωμένα σε παρουσιάσεις.
- Δημιουργήστε μια παρουσίαση της κλάσης Presentation για να φορτώσετε την παρουσίαση που περιέχει το βίντεο.
- Διατρέξτε όλα τα αντικείμενα Slide .
- Διατρέξτε όλα τα αντικείμενα 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)
Συχνές Ερωτήσεις
Ποια παραμέτρων αναπαραγωγής βίντεο μπορούν να αλλάξουν για ένα VideoFrame;
Μπορείτε να ελέγξετε τη playback mode (αυτόματη ή με κλικ) και το looping. Αυτές οι επιλογές είναι διαθέσιμες μέσω των ιδιοτήτων του αντικειμένου VideoFrame .
Επηρεάζει η προσθήκη βίντεο το μέγεθος του αρχείου PPTX;
Ναι. Όταν ενσωματώσετε ένα τοπικό βίντεο, τα δυαδικά δεδομένα περιλαμβάνονται στο έγγραφο, οπότε το μέγεθος της παρουσίασης αυξάνεται ανάλογα με το μέγεθος του αρχείου. Όταν προσθέσετε ένα διαδικτυακό βίντεο, ενσωματώνεται ένας σύνδεσμος και μια μικρογραφία, επομένως η αύξηση μεγέθους είναι μικρότερη.
Μπορώ να αντικαταστήσω το βίντεο σε ένα υπάρχον VideoFrame χωρίς να αλλάξω τη θέση και το μέγεθός του;
Ναι. Μπορείτε να αντικαταστήσετε το video content μέσα στο πλαίσιο διατηρώντας τη γεωμετρία του σχήματος· αυτό είναι μια κοινή περίπτωση για την ενημέρωση μέσων σε υπάρχουσα διάταξη.
Μπορεί να προσδιοριστεί ο τύπος περιεχομένου (MIME) ενός ενσωματωμένου βίντεο;
Ναι. Ένα ενσωματωμένο βίντεο έχει έναν content type που μπορείτε να διαβάσετε και να χρησιμοποιήσετε, για παράδειγμα όταν το αποθηκεύετε στον δίσκο.