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

news2024/9/20 6:57:17

将多种格式的媒体内容进行重新利用(如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. 释放资源。

代码示例

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. 释放资源。

代码示例

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.coloradmin.cn/o/2148302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux 系统是如何收发数据包

目录 1. 背景 1.1 协议栈的构成 1. 应用层: 2. Socket 层: 3. 传输层 (TCP/UDP): 4. 网络层 (IP): 5. 数据链路层 (MAC): 6. 物理层 (网卡驱动): 1.2 数据包的组成 2. 接收网络数据包的流程 2.1 数据包接收流程概述 2.2 详细步骤说明 2.2.1 网卡接收数据包 2.2.2…

JVM 虚拟机的编译器、类加载过程、类加载器有哪些?

JVM 虚拟机的编译器 编译器可以分为:前端编译器、JIT 编译器、AOT编译器。 前端编译器:源代码 --> 字节码 在Java语言中,JDK安装目录中的javac就是编译器。它负责将Java源代码编译为字节码。因为处于编译的前期,javac也叫做前…

C语言 | Leetcode C语言题解之第417题太平洋大西洋水流问题

题目: 题解: static const int dirs[4][2] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};void bfs(int row, int col, bool ** ocean, const int ** heights, int m, int n) {if (ocean[row][col]) {return;}ocean[row][col] true;int * queue (int *)malloc…

如何安装和注册 GitLab Runner

如何安装和注册 GitLab Runner GitLab Runner 是一个用于运行 GitLab CI/CD (Continuous Integration/Continuous Deployment) 作业。它是一个与 GitLab 配合使用的应用程序,可以在本地或云中运行。Runner 可以执行不同类型的作业,例如编译代码、运行测…

有效安全计划评估的基本指标

衡量安全计划成功与否的最有效指标是什么? 最直接的指标是:您的组织是否遭到入侵?如果答案是肯定的,那么显然还有工作要做。如果答案是否定的,那么您的状况就更好了——但情况比这更复杂。 即使您没有遭到入侵&#…

视频理解大模型最新进展

文章目录 Video-LLaMAVision-Language BranchAudio-Language Branch Video-ChatGPTMiniGPT4-videoCogVLM2-Video(1)Pre-training(2)Post-training Qwen2-VLMA-LMMChat-UniVi大模型对比 Video-LLaMA 2023:阿里达摩院的…

JAVA虚拟机----JVM

(一)认识JVM JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。 常⻅的虚拟机:JVM、VMwave、Virtual Box。 (二)JVM运…

2017年国赛高教杯数学建模C题颜色与物质浓度辨识解题全过程文档及程序

2017年国赛高教杯数学建模 C题 颜色与物质浓度辨识 比色法是目前常用的一种检测物质浓度的方法,即把待测物质制备成溶液后滴在特定的白色试纸表面,等其充分反应以后获得一张有颜色的试纸,再把该颜色试纸与一个标准比色卡进行对比&#xff0c…

如何查看电脑什么时候被人动过及看过的文件?

一、查看Windows事件查看器 Windows系统具有强大的日志记录功能,通过“事件查看器”可以查看电脑的使用记录。具体步骤如下: 按下Win R组合键打开运行窗口,输入eventvwr.msc命令并回车,打开事件查看器。 在事件查看器中&#x…

solidwork镜像实体

效果如下: 可以看到这两条线是对称的。 第一步,点击这条要镜像的边,接着点击镜像实体。 然后选择镜像轴,即可

OpenHarmony标准系统mipi摄像头适配

OpenHarmony标准系统mipi摄像头适配 本文档以rk3568为例,讲述如何在OpenHarmony 标准系统rk设备上适配mipi摄像头。 开发环境 OpenHarmony标准系统4.1rrk3568设备摄像头ov5648,ov8858 文档约定:4.1r_3568为OpenHarmony标准系统源码根目录 1.适配准备:得…

苹果CMS插件:优化蜘蛛访问内容,提升百度收录率

确保蜘蛛抓取原始内容 专为苹果CMS设计的广告管理插件,能够智能识别搜索引擎蜘蛛与普通访客,确保蜘蛛访问时展示原始内容,从而提升被百度等搜索引擎收录的几率。 广告显示提升收益 对于普通访客,该插件则优先显示广告内容&#…

UnLua扩展C++函数和蓝图自定义事件

一、通过BlueprintImplementableEvent标记扩展C函数 1、 这个标记表示C不需要实现,让蓝图/Lua重写。 2、首先在C中将LuaImp函数标记为BlueprintImplementableEvent,不需要实现,然后再GetIndex中调用该函数。 MyBaseActor.h UFUNCTION(Bluepr…

电力电塔电线缺陷检测数据集 voc yolo

电力 电塔电线缺陷检测数据集 10000张 带标注 voc yolo 电力电塔电线缺陷检测数据集 数据集描述 该数据集旨在用于电力电塔和电线的缺陷检测任务,涵盖多种常见的缺陷类型。数据集包含了大量的图像及其对应的标注信息,可用于训练计算机视觉模型&#x…

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接:https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接:https://github.com/cse-ai-lab/RealCQA Abstract 理解图表需要很强的推理能力,之前的最先进 (SOTA&…

圆周阵列元件的间距增加操作方法

在进行器件圆周阵列时,内圈的角度和外圈的旋转角度都相同,由于内圈的圆周长小于外圈的圆周长,有可能在内圈造成部分元件之间有两个焊盘会有覆盖的情况,此时需要对内圈的元件位置进行微调,需要增加在同一半径位置的元件…

数据结构 ——— 算法的时间复杂度

目录 时间复杂度的概念 时间复杂度函数式 大O的渐进表示法的概念 大O的渐进表示法 时间复杂度的概念 在计算机科学中,算法的时间复杂度是一个函数(数学上的函数式),它定量描述了该算法的运行时间,一个算法执行所耗…

Netty笔记10-Netty参数调优

文章目录 一、CONNECT_TIMEOUT_MILLISCONNECT_TIMEOUT_MILLIS设置为1秒超时CONNECT_TIMEOUT_MILLIS设置为5秒超时注意事项 二、SO_BACKLOG代码示例注意事项 三、ulimit -n(文件描述符)设置文件描述符限制在注意事项 四、TCP_NODELAY使用 TCP_NODELAY 的场景注意事项 五、SO_SND…

软件安全最佳实践:首先关注的地方

尽管组织拥有大量可用的工具,但应用程序安全性仍然不足。 最近的数据显示,在过去四到五年中,软件供应链攻击同比增长了 600-700%,超过一半的美国企业在过去 12 个月中遭受过某种形式的软件供应链攻击。 为何应用程序安全工作未…

签署《AI安全国际对话威尼斯共识》 智源持续推动人工智能安全发展

近日,由AI安全国际论坛(Safe AI Forum)和博古睿研究院(Berggruen Institute) 共同举办的第三届国际AI安全对话(International Dialogues on AI Safety)在威尼斯举办。图灵奖得主Yoshua Bengio、姚期智教授&…