gpt4 book ai didi

python - 未找到子进程调用无效参数或选项

转载 作者:行者123 更新时间:2023-12-04 23:05:04 43 4
gpt4 key购买 nike

我正在尝试在 Linux 上使用 subprocess.call() 调用 ffmpeg 命令,但我无法正确获取参数。在此之前,我使用了 os.system 并且它有效,但不推荐这种方法。

使用带有破折号的参数(例如“-i”)会导致此错误

Unrecognized option 'i "rtsp://192.168.0.253:554/user=XXX&password=XXX&channel=0&stream=0.sdp?real_stream"'.
Error splitting the argument list: Option not found

使用不带破折号的参数(如“i”)会出现此错误
[NULL @ 0x7680a8b0] Unable to find a suitable output format for 'i rtsp://192.168.0.253:554/user=admin&password=&channel=0&stream=0.sdp?real_stream'
i rtsp://192.168.0.253:554/user=XXX&password=XXX&channel=0&stream=0.sdp?real_stream: Invalid argument

这是代码
class IPCamera(Camera):
"""
IP Camera implementation
"""
def __init__(self,
path='\"rtsp://192.168.0.253:554/'
'user=XXX&password=XXX&channel=0&stream=0.sdp?real_stream\"'):

"""
Constructor
"""
self.path = path

def __ffmpeg(self, nb_frames=1, filename='capture%003.jpg'):
"""
"""

ffm_input = "-i " + self.path
ffm_rate = "-r 5"
ffm_nb_frames = "-vframes " + str(nb_frames)
ffm_filename = filename

if platform.system() == 'Linux':
ffm_path = 'ffmpeg'
ffm_format = '-f v4l2'

else:
ffm_path = 'C:/Program Files/iSpy/ffmpeg.exe'
ffm_format = '-f image2'

command = [ffm_path, ffm_input, ffm_rate, ffm_format, ffm_nb_frames, ffm_filename]
subprocess.call(command)

print(command)

顺便说一句,我在 MT7688 上运行此命令。

谢谢

最佳答案

您必须拆分选项:

command = [ffm_path, '-i', ffm_input, '-r', ffm_rate, '-f', ffm_format, '-vframes',  ffm_nb_frames, ffm_filename]
ffm_input , ffm_rate , ffm_format应该只包含值:
ffm_input = self.path
ffm_rate = '5'
ffm_nd_frames = str(nb_frames)
ffm_format = 'v412' if platform.system() == 'Linux' else 'image2'

当您传递一个列表时,不会进行任何解析 -r 5被视为单个参数,但程序希望您提供两个单独的参数 -r后跟 5 .

基本上,如果您将它们作为单个元素放在列表中,就好像您在命令行中引用它们一样:
$ echo "-n hello"
-n hello
$ echo -n hello
hello$

在第一个示例中 echo看到一个参数 -n hello .由于它不匹配任何选项,它只是打印它。在第二种情况下 echo看到两个参数 -nhello ,第一个是抑制行尾的有效选项,如您所见,提示符是在 hello 之后立即打印的。而不是在自己的路线上。

关于python - 未找到子进程调用无效参数或选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333558/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com