因此,我編寫了一個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'來執行此操作 –