此ffmpegPopen调用起作用:
command = ['ffmpeg', '-y',
'-i', filename,
'-filter_complex', 'showwavespic',
'-colorkey', 'red',
'-frames:v', '1',
'-s', '800:30',
'-vsync', '2',
'/tmp/waveform.png']
process = sp.Popen( command, stdin=sp.PIPE, stderr=sp.PIPE)
process.wait()
但是我需要使用'compand, showwavespic',这个逗号似乎在阻止执行。I also need to pass all sorts of strange characters,比如列,以及在CLI调用中可以找到的所有内容。在
我如何传递复杂的论点?在
这些只是常规的Python字符串。字符串值直接传递给FFmpeg,而不需要shell进行任何解释。在
所以当你看到这样的命令行示例时
首先,由于示例被传递给shell,我们必须“撤消”shell引用。在
^{pr2}$然后,我们将其放入Python列表中。在
如您所见,逗号、空格和大多数其他字符没有区别对待,因此您无需做任何事情来引用它们。主要的特殊字符有
\
和'
,必须加引号的控制字符,以及根本不能使用的NUL字符。在更复杂的例子
在shell中:
在Python中:
如你所见,相当简单。Python只是有点冗长,但更规则。在
相关问题 更多 >
编程相关推荐