如何在不解析

时间:2018-05-10 07:31:25

标签: powershell parameters ffmpeg

我制作了一个powershell函数,用一些额外的参数重新编码视频。它基本上在目录中创建了一个get-childitem,并将它找到的每个匹配项都提供给foreach循环。只要我在我的函数内部有默认值,并且在命令行中没有提供任何内容(例如传递次数,音频质量等),我就可以在循环中输入ffmpeg字符串。现在我想集成选项以使用-vf ffmpeg过滤器选项。我的问题是,我通常不需要它,因此我没有可以使用的理智的默认选项,所以我不能在命令行中使用-vf $ filteroption。所以我想弄清楚如何得到这个" -vf"在没有powershell或ffmpeg的变量里面搞砸了我,因为atm我得到了一个丢失的错误 - 在ffmpeg看到的内容(我猜powershell解析了这个)当我\逃脱 - 我现在在ffmpeg行看到它,但是ffmpeg不会将其识别为单个参数。

有效的例子:

&$encoder -hide_banner -i $i -c:v libvpx-vp9 -b:v 0 -crf $quality -tile-columns 6 -tile-rows 2 -threads 8 -speed 2 -frame-parallel 0 -row-mt 1 -c:a libopus -b:a $bitrate -af aformat=channel_layouts=$audio -c:s copy -auto-alt-ref 1 -lag-in-frames 25 -y $outfile;

这里我提供了带有powershell参数的$ quality,$ audio等功能,如-quality 31 -audio stereo,它一切正常。

但现在我需要得到类似" -vf scale=1920:-1"或""在那条线内,这不适用于这样的事情:

&$encoder -hide_banner -i $i -c:v libvpx-vp9 -b:v 0 -crf $quality -tile-columns 6 -tile-rows 2 -threads 8 -speed 2 -frame-parallel 0 -row-mt 1 -c:a libopus -b:a $bitrate -af aformat=channel_layouts=$audio -c:s copy -auto-alt-ref 1 -lag-in-frames 25 -y $extra $outfile;

当我用以下功能调用该功能时:" RecodeVP9 -extra -vf scale=1920:-1" powershell带走了 - 如果我试图逃避 - 并且 - ffmpeg抱怨它说"无法为' -vf'"找到合适的输出格式。我也试过""和" - "有类似的结果。所以似乎要么使用powershell,要么把我搞砸了,要么ffmpeg。

总结一下: 我需要一种方法来获取额外的ffmpeg参数和参数名称本身从powershell命令行到我的powershell函数(如-vf scale=1920:-1)。

0 个答案:

没有答案