用Python提取PowerPoint演示文稿中的音频和视频

news/2024/9/20 0:20:25 标签: python, powerpoint, 音视频, 开发语言, visual studio

将多种格式的媒体内容进行重新利用(如PowerPoint演示中的音频和视频)是非常有价值的。无论是创建独立的音频文件、提取视频以便在线分发,还是为了未来的使用需求进行资料归档,从演示文稿中提取这些媒体文件可以为多媒体内容的多次使用提供更大的灵活性。而这一过程可以通过Python轻松实现。
本文将演示如何使用Python从PowerPoint演示文稿中提取音频和视频

文章目录

    • 用Python从PPT中提取音频
    • 用Python从PPT中提取音频

本文所使用的方法需要用到Spire.Presentation for Python,PyPI:pip install Spire.Presentation

申请免费License

用Python从PPT中提取音频

库中的IShape类代表PowerPoint幻灯片中的内容元素,而IAudio类则专门表示音频形状。要从演示文稿中提取音频,我们可以遍历每张幻灯片中的形状,判断某个形状是否为IAudio对象,并通过IAudio.Data.SaveToFile()方法将音频保存为文件。
提取演示文稿中的音频文件的具体步骤如下:

  1. 导入所需模块。
  2. 创建一个Presentation对象。
  3. 使用Presentation.LoadFromFile()方法加载PowerPoint演示文稿。
  4. 遍历演示文稿中的幻灯片,然后遍历幻灯片中的所有形状。
  5. 检查形状是否为IAudio类的对象。如果是,则使用IAudio.Data.SaveToFile()方法将音频数据保存到文件中。
  6. 释放资源。

代码示例

python">from spire.presentation import *
import mimetypes

# 创建一个演示文稿对象
presentation = Presentation()

# 加载一个PowerPoint文件
presentation.LoadFromFile("示例.pptx")

i = 1
# 遍历所有幻灯片
for slide in presentation.Slides:
    # 遍历幻灯片中的所有形状
    for shape in slide.Shapes:
        # 检查形状是否为音频
        if isinstance(shape, IAudio):
            # 获取音频数据
            audioData = shape.Data
            # 将音频数据保存到文件
            audioData.SaveToFile(f"output/Audio/Audio{i}" + f"{mimetypes.guess_extension(audioData.ContentType)}")
            i += 1

presentation.Dispose()

结果
Python提取PPT音频

用Python从PPT中提取音频

同样,库中也有IVideo类代表演示文稿中的视频形状。我们可以用与提取音频相似的方法来提取PPT中的视频。以下是详细操作步骤:

  1. 导入所需模块。
  2. 创建一个Presentation对象。
  3. 使用Presentation.LoadFromFile()方法加载PowerPoint演示文稿。
  4. 遍历演示文稿中的幻灯片,然后遍历幻灯片中的所有形状。
  5. 检查形状是否为IVideo类的对象。如果是,则使用IVideo.Data.SaveToFile()方法将视频数据保存到文件中。
  6. 释放资源。

代码示例

python">from spire.presentation import *
import mimetypes

# 创建一个演示文稿对象
presentation = Presentation()

# 加载一个PowerPoint文件
presentation.LoadFromFile("示例.pptx")

i = 1
# 遍历所有幻灯片
for slide in presentation.Slides:
    # 遍历所有形状
    for shape in slide.Shapes:
        # 检查形状是否为视频
        if isinstance(shape, IVideo):
            # 获取视频数据
            videoData = shape.EmbeddedVideoData
            # 将视频数据保存到文件
            videoData.SaveToFile(f"output/Video{i}" + f"{mimetypes.guess_extension(videoData.ContentType)}")
            i += 1

presentation.Dispose()

结果
Python提取PPT视频

本文演示了如何使用Python提取PowerPoint演示文稿中的音频和视频。

更多PowerPoint演示文稿处理技巧请前往Spire.Presentation for Python教程查看。


http://www.niftyadmin.cn/n/5666372.html

相关文章

Vue vs React vs Angular:选对框架,项目成功一半!

前端框架对比与选择指南 在前端开发的世界里,框架可谓是开发者手中的利器。无论是新手还是老手,面对 Vue、React、Angular 等主流前端框架的选择时,都会有一瞬间的犹豫:“我到底该选哪个框架?”选择一个合适的前端框架…

Array和ArrayList的区别

Array 和 ArrayList 是 Java 中用于存储数据的两种不同的数据结构,它们在多方面存在明显的区别。以下是对这两者的详细比较: 1. 定义 Array: Array 是一种固定大小的数据结构,用于存储多个相同类型的元素。创建数组时需要指定数…

(黑马点评)七、附近商户系列功能实现

7.1 GEO数据结构的认识及其基本使用演示 7.1.1 GEO的介绍 GEO,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息&a…

#nginx配置案例

示例配置 1:反向代理 负载均衡 缓存控制 http {# 定义后端服务器池,用于负载均衡upstream backend_servers {server backend1.example.com weight3; # 权重为3server backend2.example.com weight1; # 权重为1server backend3.example.com backup; …

vue2+js项目升级vue3项目流程

Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有了显著的提升。升级到 Vue 3 可以让你的项目受益于这些改进。但是,升级过程也需要谨慎,因为涉及到代码的重构和潜在的兼容性问题。 1. 升级前的准备 备份项目: 在开始升级之前,…

【Python报错已解决】ModuleNotFoundError: No module named ‘sklearn‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

L67 【哈工大_操作系统】操作系统历史 学习任务

L6 操作系统历史 线条一 1、上古神机 IBM7094 专注于计算批处理操作系统(Batch system) 2、OS/360 一台计算机干多种事,多道程序作业之间的 切换和调度 成为核心 (多进程结构和进程管理概念萌芽!) 3…

【新手上路】衡石分析平台使用手册-认证方式

认证方式​ 用户登录衡石系统时,系统需要对输入的用户名和密码进行验证,保证系统的安全。衡石提供 CAS、SAML2、OAUTH2等多种单点登录认证方式。在 SSO 单点登录中,衡石是服务提供者 SP(Service Provider)为用户提供所…