Ajouter des vidéos aux présentations en Python
Une vidéo bien placée dans une présentation peut rendre votre message plus percutant et augmenter le niveau d’engagement de votre public.
PowerPoint vous permet d’ajouter des vidéos à une diapositive d’une présentation de deux manières :
- Ajouter ou incorporer une vidéo locale (stockée sur votre ordinateur)
- Ajouter une vidéo en ligne (à partir d’une source Web telle que YouTube).
Pour vous permettre d’ajouter des vidéos (objets vidéo) à une présentation, Aspose.Slides fournit la classe Video, la classe VideoFrame et d’autres types pertinents.
Créer une trame vidéo intégrée
Si le fichier vidéo que vous souhaitez ajouter à votre diapositive est stocké localement, vous pouvez créer une trame vidéo pour incorporer la vidéo dans votre présentation.
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive via son index.
- Ajoutez un objet Video et transmettez le chemin du fichier vidéo pour incorporer la vidéo à la présentation.
- Ajoutez un objet VideoFrame pour créer une trame pour la vidéo.
- Enregistrez la présentation modifiée.
Ce code Python vous montre comment ajouter une vidéo stockée localement à une présentation :
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)
# Obtient la première diapositive et ajoute une trame vidéo
pres.slides[0].shapes.add_video_frame(10, 10, 150, 250, video)
# Enregistre la présentation sur le disque
pres.save(path + "pres-with-video.pptx", slides.export.SaveFormat.PPTX)
En alternative, vous pouvez ajouter une vidéo en transmettant directement son chemin de fichier à la méthode 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")
Créer une trame vidéo avec une vidéo provenant d’une source Web
Microsoft PowerPoint 2013 et versions ultérieures prennent en charge les vidéos YouTube dans les présentations. Si la vidéo que vous souhaitez utiliser est disponible en ligne (par ex. sur YouTube), vous pouvez l’ajouter à votre présentation via son lien Web.
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive via son index.
- Ajoutez un objet Video et transmettez le lien vers la vidéo.
- Définissez une vignette pour la trame vidéo.
- Enregistrez la présentation.
Ce code Python vous montre comment ajouter une vidéo depuis le Web à une diapositive d’une présentation PowerPoint :
import aspose.slides as slides
from urllib.request import urlopen
def add_video_from_youyube(pres, videoId):
# Ajoute une trame vidéo
videoFrame = pres.slides[0].shapes.add_video_frame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId)
videoFrame.play_mode = slides.VideoPlayModePreset.AUTO
# Charge la miniature
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)
Gérer les sous‑titres vidéo
Aspose.Slides vous permet de gérer les sous‑titres fermés pour les trames vidéo dans les présentations PowerPoint. Les sous‑titres sont stockés au format WebVTT et sont exposés via la propriété VideoFrame.caption_tracks.
Ajouter des sous‑titres à une trame vidéo
Pour ajouter des sous‑titres à une trame vidéo :
- Créez une instance de la classe Presentation.
- Ajoutez une vidéo à la présentation.
- Ajoutez un objet VideoFrame à une diapositive.
- Utilisez la CaptionsCollection retournée par caption_tracks pour ajouter une piste de sous‑titres WebVTT.
- Enregistrez la présentation modifiée.
Le code suivant vous montre comment ajouter des sous‑titres à une trame vidéo :
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)
# Ajoute une nouvelle piste de sous-titres à partir d'un fichier WebVTT.
video_frame.caption_tracks.add("English", "track.vtt")
presentation.save("video_with_captions.pptx", slides.export.SaveFormat.PPTX)
La classe CaptionsCollection propose également une surcharge qui vous permet d’ajouter des sous‑titres depuis un flux.
Extraire les sous‑titres d’une trame vidéo
Pour extraire les sous‑titres d’une trame vidéo :
- Chargez la présentation contenant la vidéo.
- Trouvez l’objet VideoFrame cible.
- Parcourez la collection caption_tracks.
- Enregistrez chaque piste de sous‑titres dans un fichier
.vtt.
Le code suivant vous montre comment extraire les sous‑titres d’une trame vidéo :
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:
# Enregistre la piste de sous-titres dans un fichier 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))
Chaque objet Captions expose l’identifiant du sous‑titre, l’étiquette, les données binaires et le texte du sous‑titre sous forme de chaîne UTF‑8.
Supprimer les sous‑titres d’une trame vidéo
Pour supprimer les sous‑titres d’une trame vidéo :
- Chargez la présentation contenant la vidéo.
- Obtenez l’objet VideoFrame cible.
- Supprimez les pistes de sous‑titres de la CaptionsCollection.
- Enregistrez la présentation modifiée.
Le code suivant vous montre comment supprimer tous les sous‑titres d’une trame vidéo :
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
# Supprime toutes les sous-titres de la trame vidéo.
video_frame.caption_tracks.clear()
presentation.save("video_without_captions.pptx", slides.export.SaveFormat.PPTX)
Si vous devez supprimer uniquement une piste de sous‑titres, utilisez les méthodes remove ou remove_at au lieu de clear.
Extraire la vidéo d’une diapositive
En plus d’ajouter des vidéos aux diapositives, Aspose.Slides vous permet d’extraire les vidéos incorporées dans les présentations.
- Créez une instance de la classe Presentation pour charger la présentation contenant la vidéo.
- Parcourez tous les objets Slide.
- Parcourez tous les objets Shape pour trouver un VideoFrame.
- Enregistrez la vidéo sur le disque.
Ce code Python vous montre comment extraire la vidéo d’une diapositive de présentation :
import aspose.slides as slides
# Instancie un objet Presentation qui représente un fichier de présentation
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
Quels paramètres de lecture vidéo peuvent être modifiés pour une VideoFrame ?
Vous pouvez contrôler le mode de lecture (automatique ou au clic) et la boucle de lecture. Ces options sont accessibles via les propriétés de l’objet VideoFrame.
L’ajout d’une vidéo influence‑t‑il la taille du fichier PPTX ?
Oui. Lorsque vous intégrez une vidéo locale, les données binaires sont incluses dans le document, ce qui augmente la taille de la présentation proportionnellement à la taille du fichier. Lorsque vous ajoutez une vidéo en ligne, seul un lien et une vignette sont incorporés, ce qui entraîne une augmentation de taille moindre.
Puis‑je remplacer la vidéo d’une VideoFrame existante sans changer sa position ni sa taille ?
Oui. Vous pouvez échanger le contenu vidéo à l’intérieur de la trame tout en conservant la géométrie de la forme ; c’est un scénario courant pour mettre à jour les médias dans une mise en page existante.
Le type de contenu (MIME) d’une vidéo intégrée peut‑il être déterminé ?
Oui. Une vidéo intégrée possède un type de contenu que vous pouvez lire et utiliser, par exemple lors de l’enregistrement sur le disque.