通过PowerPoint创建视频-细微差别,错误和自动化


目前,该视频是最具说明性的演示材料之一。

  • 视频只是简单地显示, 观看者不需要做任何事情 -既不需要滚动,也不需要通过眼睛观察需要的东西。
  • 视频中的信息小剂量和顺序分批提供,从而提高了感知度。
  • 在视频中,您可以动态显示过程 ,这大大简化了理解-在图片中,甚至在文字中,这都是很难做到的。
  • 此外,视频内容几乎有机地嵌入到任何现代信息渠道中,包括社交媒体帖子,instagram,文章,更不用说视频渠道本身了。 Instagram单独突出显示,因为 这是专门定位视觉图像的非常特定的利基市场。

PowerPoint使您可以自己轻松制作广告,而不会产生不必要的财务成本-众所周知,它很容易进行自我培训。

我们原则上不会再讨论如何制作动画演示文稿和视频-PowerPoint充满了参考资料,即使没有说明也很容易学习。 但是到处都有细微差别 ,例如一个著名的笑话。 关于他们进一步。

功能部署


如有可能, 最好将外部对象 嵌入 链接,以使它们在更改时立即在所有使用的电影项目(演示文稿)中更改。 否则,您必须浏览所有视频并更改每个视频中的所有内容。


例如,背景图像已更改,并且它将在所有演示文稿中自动更改。 或者使用例如笔记本电脑的图片,然后注意到制造商的徽标并未在其上擦除。 总计-删除原始图像中的徽标-在所有演示文稿中,更改均立即生效。

这适用于音频,视频,图片,图标。 影片,特别是因为 至少在实现它时,它会被复制并且PPT文件会变得很大。

为了嵌入另一个 PowerPoint 文件中的元素,发明了一种生活技巧-在演示文稿中,必须将必需的元素另存为EMF ,以免丢失矢量图形(其他格式是所有栅格类型,如PNG或JPG),并且已作为链接对象插入到所需的PPT文件中。

嵌入视频


视频插入非常容易-PowerPoint界面中的所有内容都很直观。 但是发现了一个错误-在幻灯片之间进行动画过渡时,如果视频帧的大小(以像素为单位)不是16的倍数,则视频在边缘出现彩色条纹。 视频必须 为16的宽度和高度的倍数 。 例如,对于HD(1280x720)和Full HD(1920x1080)尺寸,满足此条件。

最好立即小心,以免由于大小改变而不必编辑新插入的视频。 而且该错误很难发现-仅在导出到视频时才被复制-在正常观看幻灯片放映期间不会被观察到。

使用声音


动画声音未导出。


有一个错误-导出时,幻灯片过渡的声音和动画过渡的声音不会进入视频。 MS已从2010版本正式识别出这一点。 9年过去了,对于许多动物来说,这是一生。

生活hack的发展- 声音需要作为单独的动画元素插入 。 事实证明,这种方法更加灵活-您可以调整声音的时间缩进和时间调整。 为了获得幻灯片过渡的声音,您需要将其放置在上一张幻灯片上。 对于这两种声音,您需要设置“跨幻灯片播放”选项,以便它们与动画效果同时播放。


音乐有时会“断”


发现了另一个错误-如果文件被某些东西震撼了,则导出视频时背景音乐会在任意位置短暂中断。 我注意到使用MP3。 作为实验,我尝试使用ADPCM编解码器制作WAV文件,以节省空间-该错误仍在播放,尽管更少。

结果,一种解决方法 -必须将所有使用的音乐转换为未压缩的WAV文件(PCM)。

计分


视频看起来非常好,在幕后的声音令人愉悦地说明了一切。 我找到了一个PowerPoint加载项,可以从给定文本进行旁白。 语音结束-它很古老而且不是很免费。 我自己没有尝试过此插件,因为 就我而言,画外音不是很关键。 如果有人找到其他解决方案或尝试了上述插件,请在评论中分享您的经验。

本地化


在我们全球化的时代,您无法从支持其他语言中获得任何帮助。 在一个演示文稿中,您可以立即放置与语言相关的元素-文本,其他对象。 在导出视频之前,您只需要隐藏不必要的语言的元素 -即可对视频进行本地化。 如果一切组织得当,演示文稿中的动画顺序不会受到影响。

事实证明通过在元素名称中的点添加ISO语言代码非常方便(类似于文件扩展名)。 T.O. 导航器中的语言元素在视觉上可见,可以使用眼睛图标进行切换。


选择面板通过按Alt + F10打开。

自动化技术


因为 在已经进行了几种本地化的情况下,在电影项目文件中切换语言的过程立即变得很耗时,然后自动化就立即产生了问题。 而且,如果有很多回形针,并且应该有很多回形针,那么用手来夹持所有东西就变得很辛苦。

但是我最喜欢Microsoft的是能够通过COM自动化其办公应用程序的能力。 PowerPoint具有用于控制元素的可见性和导出视频的界面。

本地化切换


我将给出PHP中的代码示例。 任何其他支持COM的语言都可以。
首先,打开演示文稿。

$oPptApp = new \COM( 'PowerPoint.Application' ); $oPptFile = $oPptApp -> Presentations -> Open( 'my.ppt' ); 

接下来,我们需要遍历演示文稿的所有元素 ,找到与语言相关的内容,并暂时隐藏不必要的内容。 例如,使俄语(ru)为必需。

 foreach( $oPptFile -> Slides as $oSlide ) { foreach( $oSlide -> Shapes as $oShape ) { $posLangSep = strrpos( $oShape -> Name, '.' ); if( $posLangSep !== false ) $oShape -> Visible = substr( $oShape -> Name, $posLangSep + 1 ) == 'ru' ? msoTrue : msoFalse; } } 

演示文稿中的元素可以分组,因此可以通过重新构建代码来考虑这一点。 Nuance-Visible方法可立即管理所有嵌套元素,与在界面中单击鼠标不同。 因此,我们将属性从“父母”更改为“孩子”。

 foreach( $oPptFile -> Slides as $oSlide ) foreach( $oSlide -> Shapes as $oShape ) EnsureElemVisibleByLang( $oShape, 'ru' ); function EnsureElemVisibleByLang( $oShape, $langCode ) { $posLangSep = strrpos( $oShape -> Name, '.' ); if( $posLangSep !== false ) $oShape -> Visible = substr( $oShape -> Name, $posLangSep + 1 ) == $langCode ? msoTrue : msoFalse; if( $oShape -> Type == msoGroup ) foreach( $oShape -> GroupItems as $oShapeChild ) EnsureElemVisibleByLang( $oShapeChild, $langCode ); } 

常量msoGroup的值以及此处的其他值。

导出视频


这很简单 。 CreateVideo方法的描述在这里

 $oPptFile -> CreateVideo( 'my.mp4', msoTrue, 5, 1080, 30, 100 ); 

系统整合


此外,所有代码均在用于处理一个PPT文件的脚本中执行,并被挂起在系统的外壳中,因此对于资源管理器中选定的文件组,右键单击菜单,例如“创建视频”。 结果,我们实现了自动批处理。

结论


如果有人可以提供我的经验-请在评论中说明。 在辊筒生产的过程中,不断有其他细微差别被发现,我将在后面进行讨论。 可以在我的个人资料中指示的网站顶部的YouTube链接上查看视频示例 。 另外,如果您对制作视频有疑问,请随时提问。 而且,一如既往,欢迎任何建设性的评论,愿望,批评。

Source: https://habr.com/ru/post/zh-CN479914/


All Articles