因此,我编写了一个PowerShell脚本,递归地搜索特定大小以上的所有视频文件,然后调整它们的大小。Powershell和FFMPEG - FFMPEG未执行
我觉得我在这里丢失了一些明显的东西......因为我的脚本实际上并没有运行FFMPEG,只是显示了在屏幕上运行它的命令。我相信我会在解决方案方面面临挑战。
$SearchPath = "N:\baseball"
$oldVideos = Get-ChildItem -Include @("*.mkv", "*.mov", "*.mpg", "*.wmv", "*.avi") -Path $SearchPath -Recurse | where-object {$_.length -gt 500MB};
Set-Location -Path 'C:\Program Files\ffmpeg\bin';
foreach ($OldVideo in $oldVideos)
{
$outputfolder = "O:\resized"
$oldname = Get-Item $oldvideo | Select-Object -ExpandProperty BaseName
$suffix = "_resized.mp4"
$newname = "$($oldname)_$($suffix)"
$ffmpeg = ".'C:\Program Files\ffmpeg\bin\ffmpeg.exe'"
$arguments = " -i `"$($OldVideo)`" -vf scale=720:trunc(ow/a/2)*2 -c:v libx264 -f mp4 `"$outputfolder\$newname`" -y"
$ffmpeg + $arguments}
这里的实际输出到屏幕上,当我运行该脚本 .'C:\ Program Files文件\ ffmpeg的\ BIN \ ffmpeg.exe” -i “N:\棒球\打\ 067.MOV” -vf scale = 720:trunc(ow/a/2)* 2 -c:v libx264 -f mp4“O:\ resized \ 067__resized.mp4”-y
该命令应该执行(它运行在命令窗口)。
你只是建立一些字符串变量。你实际上无处使用这些变量。 –
最后我使用$ ffmpeg + $参数 –
您可能可以使用'invoke-expression'来执行此操作 –