【问题标题】:VBA Export embedded video from Powerpoint presentationVBA 从 Powerpoint 演示文稿中导出嵌入的视频
【发布时间】:2012-02-05 03:16:43
【问题描述】:

我正在尝试将整个演示文稿转换为 HTML,同时提取所有嵌入的内容等。我的文字、音频、旁白等都可以正常工作,但在找出如何导出视频内容时遇到了麻烦。

我循环浏览演示文稿中的所有幻灯片,然后是幻灯片上的所有形状,寻找msoMedia 类型的形状。如果我找到了,我会检查它是MediaType。如果是ppMediaTypeMovie,那么我可以使用Shape.LinkFormat.SourceFullName 找到外部链接视频文件的源文件,但我终生无法找到访问嵌入内容的方法。

如果我找到一个具有ppMediaTypeSoundMediaType 的形状,那么我可以使用Shape.SoundFormat.Export 来导出音频。有人知道 VIDEO 形状的等价物吗? (没有Shape.VideoFormat)我已经花了几天时间查看所有可能的数据成员,但无济于事。

【问题讨论】:

标签: vba video export powerpoint extract


【解决方案1】:

微软似乎将媒体文件的内容提取到一个临时文件夹中,嵌入的视频仍然为提取的视频提供 LinkFormat.SourceFullName:

?oshape.LinkFormat.SourceFullName

C:\Users\Alex\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO\F26FF1D0.m4v

我需要做的就是通过 ffmpeg 触发这个文件,然后我就得到了我想要的格式的视频!

感谢您的帮助:)

【讨论】:

    【解决方案2】:

    注意:您可能会发现 .Export 方法在最近的 PPT 版本中也不适用于嵌入的声音。

    Alex 的建议是我首先要研究的;否则您可以解压缩 PPTX/PPSX/etc 并在媒体文件夹中找到视频。或者您可以尝试另存为 XML 演示文稿;您也许可以从中解析出视频。

    【讨论】:

    • Export 在 Office 2007 中运行良好。如何使用 VBA 解压缩?我避免使用 Shell,因为找到您正在寻找的应用程序的可执行名称(winzip?winrar?winace?7zip?等)几乎是不可能的。 Shape.Export 导出形状的图像。非常适合图像、图表、表格等。Shape.SoundFormat.Export 将音频剪辑导出为简单的 wav(然后我将其发送到 ffmpeg 进行转换)。为什么微软会提供这些方法来以编程方式提取图像和声音,但选择不使用视频?必须有一个正确的方式!
    • 如果我以编程方式解压缩并浏览 ppt/media 文件夹的内容,我怎么知道哪个媒体文件属于哪个 Slide/Shape?
    • 从我的(有限的)测试来看,媒体文件似乎是按顺序编号的(media1.avi、media2.wmv 等),因此您将逐步浏览每张幻灯片,每张幻灯片上的每个形状并将每个媒体对象添加到集合或数组中; "media" & cstr(array_index) 将为您提供 zip 中媒体文件的名称;扩展名将是原始文件的扩展名,因此您必须查找例如.avi、.wmv 等或任何基本名称与您所追求的文件匹配的文件(即 media3.*)。
    • 使用 VBA 解压缩:同意掏空做这项工作不是最好的方法。我认为 7zip 可能会将方法暴露给 COM 控件。还有其他 zip/unzip 库也可以完成这项工作。 Google Info-Zip 和 Advanced ZIP Library 提供一些初步想法。
    • 感谢史蒂夫 :) 不幸的是,迭代幻灯片上的形状似乎并没有以一致的顺序发生。我发现我的输出并不总是相同的,即使在同一演示文稿上连续两次运行我的脚本之后也是如此。 (我没有费心研究这个所以不要引用我的话:))
    猜你喜欢
    • 2012-05-01
    • 2010-09-07
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2010-11-23
    • 2020-07-12
    • 1970-01-01
    • 2019-11-15
    相关资源
    最近更新 更多