使用 Python 在 PowerPoint 中嵌入视频帧

MS PowerPoint 允许将媒体元素添加到演示文稿中,例如音频和视频。视频帧用于插入来自本地文件或 Web 源的视频剪辑。在本文中,您将学习如何在 Python 中的 PowerPoint PPT 或 PPTX 中添加视频帧。我们还将演示如何嵌入来自网络资源(如 YouTube)的视频并从 PPT 中提取视频。

在 PowerPoint PPT 中添加视频帧的 Python 库

要在 PowerPoint PPT/PPTX 中添加视频帧,我们将使用 Aspose.Slides for Python via .NET。该库提供了一个完整的包来创建和操作 PowerPoint 演示文稿。您可以使用以下 pip 命令从 PyPI 安装它。

> pip install aspose.slides

在 Python 中将视频帧添加到 PowerPoint PPT

您可以从本地存储或网络资源(如 YouTube)添加视频。以下部分借助代码示例演示了这两种情况。

从本地文件插入视频

以下是在 Python 中将视频帧添加到 PowerPoint PPT 的步骤。

  • 首先,加载 PPT/PPTX 文件或使用 Presentation 类创建一个新文件。
  • 然后,获取所需幻灯片的参考。
  • 使用 Presentation.videos.addvideo() 方法将视频添加到视频集合中并获取其参考。
  • 使用 Slide.shapes.addvideoframe() 方法向幻灯片添加视频帧并获取其引用。
  • 设置视频的播放模式和音量。
  • 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

以下代码示例展示了如何在 Python 中将视频嵌入到 PowerPoint PPT 中。

import aspose.slides as slides

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:
    # 选择幻灯片
    slide = presentation.slides[0]

    # 加载视频文件
    with open("Wildlife.mp4", "rb") as in_file:
        # 将视频添加到演示文稿
        vid = presentation.videos.add_video(in_file)

        # 添加视频帧
        vf = slide.shapes.add_video_frame(50, 150, 300, 350, vid)

        # 将视频设置为视频帧
        vf.embedded_video = vid

        # 设置视频的播放模式和音量
        vf.play_mode = slides.VideoPlayModePreset.AUTO
        vf.volume = slides.AudioVolumeMode.LOUD

    # 保存演示文稿
    presentation.save("add-video-frame.pptx", slides.export.SaveFormat.PPTX)

从 Web 源在 PowerPoint PPT 中嵌入视频

您还可以从 Web 源在 PowerPoint PPT 中添加视频。为了演示,让我们在 Python 中将 YouTube 视频嵌入到 PowerPoint PPT 中。

  • 首先,加载 PPT/PPTX 文件或使用 Presentation 类创建一个新文件。
  • 然后,获取所需幻灯片的参考。
  • 使用 Slide.shapes.addvideoframe() 方法从 URL 添加 YouTube 视频并获取其参考。
  • 设置视频缩略图。
  • 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。

以下代码示例展示了如何使用 Python 将 YouTube 视频嵌入到 PowerPoint PPT 中。

import aspose.slides as slides
from urllib.request import urlopen

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:
    #add video frame
    videoFrame = presentation.slides[0].shapes.add_video_frame(10, 10, 427, 240, "https://www.youtube.com/embed/s5JbfQZ5Cc0")
    videoFrame.play_mode = slides.VideoPlayModePreset.AUTO

    # 加载缩略图
    thumbnail_uri = "http://img.youtube.com/vi/s5JbfQZ5Cc0/hqdefault.jpg"
    f = urlopen(thumbnail_uri)
    videoFrame.picture_format.picture.image = presentation.images.add_image(f.read())

    # 保存演示文稿
    presentation.save("add-video-frame-from-web.pptx", slides.export.SaveFormat.PPTX)

用 Python 从 PowerPoint 演示文稿中提取视频

当您想要提取添加到 PowerPoint 演示文稿中的视频时,可能会出现这种情况。以下是实现此目的的步骤。

  • 首先,使用 Presentation 类加载 PPT/PPTX 文件。
  • 然后,遍历 Presentation.slides 集合中的幻灯片。
  • 对于每张幻灯片,循环浏览它拥有的形状集合。
  • 如果 shape 是 VideoFrame,则提取并保存嵌入的视频。

以下代码示例展示了如何在 Python 中从 PowerPoint PPT 中提取视频。

import aspose.slides as slides

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:

    # 循环播放幻灯片
   for slide in presentation.slides:

        # 循环遍历形状
       for shape in slide.shapes:

            # 检查形状的类型
            if type(shape) is slides.VideoFrame:

                # 获取内容类型
                content_type = shape.embedded_video.content_type

                # 获取视频数据
                buffer = shape.embedded_video.binary_data

                # 保存视频
                with open("extracted-video." + content_type[content_type.rfind('/') + 1:len(content_type)], "wb") as stream:
                    stream.write(buffer)

获得免费许可证

您可以通过 .NET 使用 Aspose.Slides for Python,而无需获得 临时许可证 的评估限制。

结论

在本文中,您学习了如何在 Python 中将视频帧添加到 PowerPoint PPT/PPTX。我们已经介绍了如何从文件或网络资源(如 YouTube)嵌入视频。此外,您还了解了如何以编程方式从演示文稿中提取视频。此外,您可以访问 文档 以了解更多关于 Aspose.Slides for Python 的信息。此外,您可以将您的查询发布到我们的 论坛

也可以看看

信息:您可能需要查看 Aspose FREE PowerPoint to Video 转换器,因为此服务允许您将演示文稿转换为令人惊叹且引人入胜的视频。