我想用 Start-Process 和 -Wait 调用 ffmpeg,$ArgumentList 有问题
function convertgif {
$ArgumentList = @'
-i $($args[0]) -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" "$([IO.Path]::ChangeExtension($args[0], 'mp4'))"
'@
Start-Process -FilePath "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList $ArgumentList -Wait -NoNewWindow;
}
Run Code Online (Sandbox Code Playgroud)
我找不到如何修复错误
$args[0]: No such file or directory
Run Code Online (Sandbox Code Playgroud)
你不想要一个“here-string”,你想要一个可以用空格连接的数组
function convertgif {
$ArgumentList = @(
"-i"
'"' + $args[0] + '"'
"-movflags"
"faststart"
"-pix_fmt"
"yuv420p"
"-vf"
'"scale=trunc(iw/2)*2:trunc(ih/2)*2"'
'"' + [IO.Path]::ChangeExtension($args[0], 'mp4') + '"'
)
Start-Process -FilePath "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList $ArgumentList -Wait -NoNewWindow;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,"-movflags"和"faststart"是两个独立的论点,尽管从 ffmpeg 的角度来看,它们属于一起。但这纯粹是 ffmpeg 如何解析其参数的语义细节,PowerShell(或 Windows,就此而言)并不关心这一点。
当然,您是否决定通过单独给予"-movflags"和"faststart"单独形成最终结果还是由您决定"-movflags faststart"。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |