Also schrieb ich ein Powershell-Skript, das rekursiv alle Videodateien ab einer bestimmten Größe durchsucht und dann die Größe ändert.Powershell und FFMPEG - FFMPEG wird nicht ausgeführt
Ich fühle mich, als ob ich etwas offensichtliches hier verpasse ... weil mein Skript FFMPEG nicht ausführt, es zeigt nur den Befehl an, es auf dem Bildschirm auszuführen. Ich bin mir sicher, dass ich mich bei der Lösung stellen werde.
$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}
Hier ist die aktuelle Ausgabe auf dem Bildschirm, wenn ich das Skript ausführen .'C: \ Programme \ ffmpeg \ bin \ ffmpeg.exe‘-i "N: \ Baseball \ schlagen \ 067.MOV" -vf scale = 720: trunc (ow/a/2) * 2 -c: v libx264 -f mp4 "0: \ resized \ 067__resized.mp4" -y
Dieser Befehl sollte ausgeführt werden (er wird in einem Befehl ausgeführt Fenster).
Sie nur einige String-Variablen erstellen. Nirgendwo benutzt du tatsächlich diese Variablen. –
Am Ende benutze ich $ ffmpeg + $ Argumente –
Sie könnten 'invoke-Ausdruck' für diese –