我想更改演示文稿中显示的嵌入视频的视频格式。我使用以下代码实现将视频文件导出到另一个文件夹:
Dim Finame As Variant
Dim oApp As Object
Dim StoreFolder As Variant
Dim Videoname As Variant
Dim FileNameFolder As Variant
MkDir "C:\template\videoZip"
Set oApp = CreateObject("Shell.Application")
FileNameFolder = "C:\template\videoZip\"
Finame = ActivePresentation.Path & "\" & ActivePresentation.Name
StoreFolder = "C:\template\created_files\"
oApp.Namespace("C:\template\videoZip\").CopyHere Finame
Name "C:\template\videoZip\" & ActivePresentation.Name As "C:\template\videoZip\" & ActivePresentation.Name & ".zip"
oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace("C:\template\videoZip\" & ActivePresentation.Name & ".zip").items
Dim firstCount As Integer
Dim lastCount As Integer
For j = 1 To videoNum
firstCount = oApp.Namespace(StoreFolder).items.count
Videoname = "C:\template\videoZip\ppt\media\media" & j & ".mp4"
oApp.Namespace(StoreFolder).CopyHere Videoname
lastCount = oApp.Namespace(StoreFolder).items.count
If firstCount = lastCount Then
MsgBox "The video has problems loading and it will not be shown (Only mp4 supported)"
End If
Next j
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.deletefolder "C:\template\videoZip"
End If
正如我所说,通过这种代码安静,我可以获得演示文稿中的所有视频。现在我想改变它们的格式。我听说有可能使用ffmpeg。其他改变格式的解决方案也是受欢迎的。
答案 0 :(得分:1)
至少在Linux上,转换视频文件的语法是
ffmpeg -i media1.mp4 media1.avi
然后你有很多选项可以玩大小,编解码器,修剪等。请参阅ffmpeg documentation。
有一个thread on SO关于执行shell命令并等待它们返回。
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Dim errorCode As Integer
wsh.Run("C:\pathto\ffmpeg.exe -i media1.mp4 media1.avi", windowStyle, waitOnReturn)