问题很简单:
当我运行时,例如:
print(Process.runSync('ipconfig', []).stdout)
我得到了预期的输出:
Windows IP Configuration
Unknown adapter Helyi kapcsolat:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
......
但当我尝试运行ffmpeg
时,我没有得到任何输出:
print(Process.runSync('ffmpeg', []).stdout)
在这种情况下,我希望得到ffmpeg的帮助输出。
我的猜测是,ffmpeg有某种";不同的";与stdout交互的方式比大多数可执行文件都要多。可能是什么问题?我在这里完全迷路了。
我最终需要读取stdout以获得ffmpeg -list_devices true -f dshow -i dummy
的输出,它将列出可用的DirectShow设备。
FFmpeg向stderr输出有用的数据,包括帮助输出和我的原始命令stderr
的设备列表。
只需使用stdout
(以及CCD_6(即可获得输出:
import subprocess
s_out = subprocess.run(['ffmpeg', 'command_here'], check=True, capture_output=True).stderr
print(s_out)
在python 3.7<=中测试
PD_6";子流程。CalledProcessError"。