从python执行子过程
|
我认为当我尝试从python脚本执行子过程时,某些事情正在被巧妙地处理。
我尝试使用一些(很多)参数执行vlc。
出现的vlc实例抱怨:
您的输入无法打开:
VLC无法打开MRL \'-vvv rtsp://192.168.1.201:554 / ch0_multicast_one --sout =#transcode {acodec = none}:duplicate {dst = rtp {sdp = rtsp://:5544 / user_hash .sdp},dst = display}:no-sout-rtp-sap:no-sout-standard-sap:ttl = 1:sout-keep \'。检查日志以获取详细信息。
这是python代码
pid = subprocess.Popen([\"vlc \",\" -vvv rtsp://%s\" % target_nvc.ip_address + \":554/ch0_multicast_one --sout=#transcode{acodec=none}:duplicate{dst=rtp{sdp=rtsp://:5544/user_hash.sdp},dst=display} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep\" ], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
我已经检查了子进程功能的输出(使用外壳程序),并且如果我将该字符串复制粘贴到我的cmd窗口中,则vlc实例可以正常工作...这是特权吗?
没有找到相关结果
已邀请:
2 个回复
珊畴炮贩号
盛梯獭八搽
,因此每个参数都必须位于其自己的元素中。因此,您需要以下内容:
每个参数(shell通常会为您解析的参数)必须位于单独的list元素中。 您还可以传递单个命令行字符串,并使外壳将其拉开:
对于具有大量参数的命令,使用第一种形式更好。