我正在通过this answer处理一个FFMPEG问题,该命令在Windows 10命令提示符下运行正常(我只更改了输入和输出文件名):
ffmpeg -i test.mp4 -filter:v "select='gt(scene,0.4)',showinfo" -f null - 2> test.txt
我的Python 3脚本为subprocess.call()
函数提供了参数(作为列表),并且适用于许多基本的FFMPEG操作,但不是这个!它似乎在最后的null - 2> test.txt
部分失败了,以下错误消息取决于我如何拆分参数:
[NULL @ 000001c7e556a3c0] [error] Unable to find a suitable output format for 'pipe:'
[error] pipe:: Invalid argument
[error] Unrecognized option '2> test.txt'.
[fatal] Error splitting the argument list: Option not found
[error] Unrecognized option '2>'.
[fatal] Error splitting the argument list: Option not found
以下是我一直在尝试的基本参数列表:
args=['C:\\Program Files\\ffmpeg\\ffmpeg.exe',
'-i',
'test.mp4',
'-filter:v "select=\'gt(scene,0.4)\',showinfo"',
'-f null',
'-',
'2>',
'test.txt']
加上组合和分割最后几个元素的各种排列。
请问有人可以通过Python 3帮助我使用这些参数运行FFMPEG的正确语法吗?
非常感谢 - 我只是看不出我出错的地方:(
答案 0 :(得分:0)
这并没有找到我的语法出错的底部,但以下答案为我提供了一种解决方法,主要是使用shell=True
并将所有参数作为组合字符串传递:
subprocess call ffmpeg (command line)
这是我最新的电话:
subprocess.call("ffmpeg -i test.mp4 -filter:v \"select='gt(scene,0.4)',showinfo\" -f null - 2> output.txt",shell=True)
感谢Pythonista Cafe的好人为我找到了一个:)