当前位置: 代码网 > it编程>前端脚本>Python > 使用Python实现将PowerPoint转换为视频

使用Python实现将PowerPoint转换为视频

2026年09月15日 Python 我要评论
powerpoint 很适合用于现场演示或由演讲者控制播放,但在一些场景中,将演示文稿转换为视频会更方便。例如培训资料、产品演示、课程内容、数字标牌,或者需要上传到视频平台的演示内容,都更适合使用视频

powerpoint 很适合用于现场演示或由演讲者控制播放,但在一些场景中,将演示文稿转换为视频会更方便。例如培训资料、产品演示、课程内容、数字标牌,或者需要上传到视频平台的演示内容,都更适合使用视频格式进行分发和播放。

在 windows 上,一种常见做法是通过 com api 自动化 microsoft powerpoint。不过,这种方式要求计算机上安装 powerpoint,也不适用于无图形界面的 linux 服务器、docker 容器或云端环境。

本文将介绍如何使用 python 以编程方式将 powerpoint 演示文稿转换为 mp4 或 wmv 视频,而无需使用 com 自动化。主要内容包括:

  • 前置准备
  • 使用 python 将 powerpoint 转换为 mp4
  • 使用 python 将 powerpoint 转换为 wmv
  • 自定义视频帧率和幻灯片播放时长
  • 使用 python 将指定范围的幻灯片转换为视频
  • 支持的动画和幻灯片切换效果
  • powerpoint 转视频的注意事项

前置准备

本文使用 spire.presentation for python 处理和渲染 powerpoint 演示文稿,无需安装 microsoft powerpoint。视频导出还需要使用 ffmpeg,将渲染后的幻灯片内容编码为最终的视频文件。

第 1 步:安装所需库

通过 pip 从 pypi 安装:

pip install spire.presentation

注意:powerpoint 转视频功能从 11.8.1 版本开始提供支持。

第 2 步:安装 ffmpeg 并找到 bin 目录

根据所使用的操作系统安装 ffmpeg,然后找到 ffmpeg 可执行文件所在的目录。后面的代码示例需要使用该目录。

windows

  1. 打开 ffmpeg 官方下载页面,将鼠标移到 windows 图标上。
  2. 点击 windows builds from gyan.dev,也可以选择 windows builds by btbn。
  3. 在 release builds 部分下载 release essentials 版本,例如 ffmpeg-release-essentials.7z 或对应的 .zip 压缩包。
  4. 解压文件并找到其中的 bin 目录,例如:
    e:\software\ffmpeg-9.0.1-essentials_build\bin

linux(ubuntu/debian):

更新软件包索引并安装 ffmpeg:

sudo apt update
sudo apt install ffmpeg

查看 ffmpeg 可执行文件的位置:

which ffmpeg

运行该命令通常会得到/usr/bin/ffmpeg,这种情况下,后续代码中使用的 ffmpeg 目录就是/usr/bin。

使用 python 将 powerpoint 转换为 mp4

对于大多数使用场景,mp4 是更通用的视频格式,它可以直接在现代浏览器、媒体播放器、在线学习平台和移动设备上播放。

转换过程比较简单:加载 pptx 文件,通过 savetovideooption 指定 ffmpeg 所在目录,然后以 mp4 格式保存演示文稿。

示例代码如下:

from spire.presentation import *

# 指定输入和输出文件
input_file = "sample.pptx"
output_file = "powerpointtovideo.mp4"

# 指定 ffmpeg 可执行文件所在目录
ffmpeg_dir = r"e:\software\ffmpeg-9.0.1-essentials_build\bin"

# 加载 powerpoint 演示文稿
presentation = presentation()
presentation.loadfromfile(input_file)

# 配置视频导出所需的 ffmpeg
presentation.savetovideooption = savetovideooption(ffmpeg_dir)

# 将演示文稿转换为 mp4
presentation.savetofile(output_file, fileformat.mp4)

# 释放资源
presentation.dispose()

使用 python 将 powerpoint 转换为 wmv

如果视频需要用于较旧的 windows 工作流,或者目标应用程序明确要求使用 windows media video,也可以将 powerpoint 转换为 wmv。

该转换的实现方式与 mp4 基本相同,主要区别是 savetofile() 方法中指定的输出格式不同。

from spire.presentation import *

# 指定输入和输出文件
input_file = "sample.pptx"
output_file = "powerpointtovideo.wmv"

# 指定 ffmpeg 可执行文件所在目录
ffmpeg_dir = r"e:\software\ffmpeg-9.0.1-essentials_build\bin"

# 加载 powerpoint 演示文稿
presentation = presentation()
presentation.loadfromfile(input_file)

# 配置视频导出所需的 ffmpeg
presentation.savetovideooption = savetovideooption(ffmpeg_dir)

# 将演示文稿转换为 wmv
presentation.savetofile(output_file, fileformat.wmv)

# 释放资源
presentation.dispose()

自定义视频帧率和幻灯片播放时长

默认的视频导出设置并不一定适合所有演示文稿。例如,培训类演示可能需要让每页幻灯片停留更长时间,而包含动画的演示文稿则可能需要使用更高的帧率,以获得更流畅的播放效果。

通过 savetovideooption,可以分别设置视频帧率以及每页幻灯片的显示时长。

from spire.presentation import *

# 指定输入和输出文件
input_file = "sample.pptx"
output_file = "customizedvideo.mp4"

# 指定 ffmpeg 目录
ffmpeg_dir = r"e:\software\ffmpeg-9.0.1-essentials_build\bin"

# 加载 powerpoint 演示文稿
presentation = presentation()
presentation.loadfromfile(input_file)

# 创建视频导出选项
video_options = savetovideooption(ffmpeg_dir)

# 设置视频帧率
video_options.fps = 40

# 设置每页幻灯片显示 8 秒
video_options.durationforeachslide = 8

# 应用视频设置
presentation.savetovideooption = video_options

# 导出为 mp4
presentation.savetofile(output_file, fileformat.mp4)

# 释放资源
presentation.dispose()

其中,fps 用于设置每秒生成的帧数,durationforeachslide 用于设置每页幻灯片在视频中的显示时长。提高帧率或延长幻灯片播放时间,也会增加视频生成所需的处理时间和资源。

注意:fps 最大可设置为 60。durationforeachslide 每页最长可设置为 300 秒,即 5 分钟,以避免视频生成时间过长。

使用 python 将指定范围的幻灯片转换为视频

有时并不需要将整个演示文稿都转换为视频。例如,一个较长的培训文稿中可能只有部分幻灯片需要单独导出。

这种情况下,可以将指定范围内的幻灯片复制到一个新的演示文稿中,再将新的演示文稿导出为视频。

下面的示例将第 3 到第 6 页幻灯片转换为 mp4:

from spire.presentation import *


def convert_slide_range_to_video(input_file: str, output_file: str, start_index: int, end_index: int):
    ppt = presentation()
    new_ppt = none

    try:
        # 加载源演示文稿
        ppt.loadfromfile(input_file)

        # 验证幻灯片范围
        if start_index < 0 or end_index >= ppt.slides.count or start_index > end_index:
            raise valueerror("指定的幻灯片范围无效。")

        # 创建新的演示文稿
        new_ppt = presentation()

        # 删除默认创建的空白幻灯片
        new_ppt.slides.removeat(0)

        # 使用与源演示文稿相同的幻灯片尺寸
        new_ppt.slidesize.type = slidesizetype.custom
        new_ppt.slidesize.size = ppt.slidesize.size

        # 将指定范围的幻灯片复制到新演示文稿
        for i in range(start_index, end_index + 1):
            new_ppt.slides.appendbyslide(ppt.slides[i])

        # 配置视频导出所需的 ffmpeg
        new_ppt.savetovideooption = savetovideooption(
            r"e:\software\ffmpeg-9.0.1-essentials_build\bin"
        )

        # 将选定的幻灯片导出为 mp4
        new_ppt.savetofile(output_file, fileformat.mp4)

    finally:
        if new_ppt is not none:
            new_ppt.dispose()
        ppt.dispose()


# 将第 3 到第 6 页幻灯片转换为视频
convert_slide_range_to_video("sample.pptx", "selectedslides.mp4", 2, 5)

这里,start_index 和 end_index 都从 0 开始计数,并且包含起始和结束位置。因此,传入 2 和 5 时,对应的就是第 3 到第 6 页幻灯片。

支持的动画和幻灯片切换效果

powerpoint 转视频时,可以保留部分常见的幻灯片切换效果以及进入和退出动画,使导出的视频尽可能接近原演示文稿的播放效果。

效果类型支持的效果
幻灯片切换效果fade、push、wipe(上、下、左、右)、reveal、cover、split、dissolve、clockwise clock
进入动画fly in、float in、appear、fade、split、wipe
退出动画fly out、float out、disappear、fade、split、wipe

并非所有 powerpoint 效果都受支持。对于较复杂的切换效果或动画组合,最终视频中的呈现效果可能与 microsoft powerpoint 中的原始播放效果存在差异。如果演示文稿大量使用动画,建议在导出后检查实际播放效果。

powerpoint 转视频的注意事项

1.首先检查 ffmpeg 路径

savetovideooption 需要传入 ffmpeg 可执行文件所在的目录。如果路径错误或当前程序无法访问该目录,视频将无法正常编码。较旧的 ffmpeg 版本也可能影响某些幻灯片切换效果。

2.确保所需字体已经安装

如果执行转换的计算机没有安装演示文稿中使用的字体,导出结果中的文字外观、换行或版式可能与原始幻灯片不同。

3.预留足够的处理时间和磁盘空间

更高的帧率、更长的幻灯片播放时长以及较大的演示文稿都会生成更多中间帧,因此转换过程中需要更多处理时间和临时存储空间。

总结

使用 python 可以在不安装 microsoft powerpoint 的情况下,将 powerpoint 演示文稿转换为 mp4 或 wmv 视频,并根据实际需要调整视频帧率、幻灯片播放时长以及需要导出的幻灯片范围。

对于包含复杂动画、切换效果或特殊字体的演示文稿,在进行批量转换之前,建议先检查少量文件的导出结果,确认最终视频的播放效果符合预期。

以上就是使用python实现将powerpoint转换为视频的详细内容,更多关于python powerpoint转视频的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com