奇怪的问题,我用这个命令,通过ffmpeg的捕捉到我的网络摄像头(通过CMD在Windows上):的ffmpeg通过蟒子不能在这里找到相机
ffmpeg -y -t 300 -rtbufsize 1024M -f dshow -i video="Lenovo EasyCamera" -c:v libx264 -preset veryslow -crf 25 Desktop.mkv
,一切工作正常。但是,当我尝试通过Python作为一个子进程非常相同的命令失败。下面是Python代码:
from subprocess import Popen
cmd = ['ffmpeg', '-y', '-t', '300', '-rtbufsize', '1024M', '-f', 'dshow', '-i', 'video="Lenovo EasyCamera"', '-c:v', 'libx264', '-preset', 'veryslow', '-crf', '25', 'Desktop.mkv']
p = Popen(cmd)
输出下列错误和冻结:
[dshow @ 00000000023a2cc0] Could not find video device with name ["Lenovo EasyCamera"] among source devices of type video.
video="Lenovo EasyCamera": I/O error
任何人都可以算出来,并告诉我什么,我做错了什么?或者它是一些在python或子进程模块中的已知错误(使用python 3.6.1,但如果它能帮助我解决这个问题,则不附加到特定版本)?
在此先感谢!
P.S.这个问题是一个跟进这一项,如果是相关的:How to grab laptop webcam video with ffmpeg in windows
我有过类似的问题。试试'Popen(“ffmpeg -y -t 300 ...”,shell = True)'。 –
如何使用'subprocess.call(cmd)'尝试? –
shell = True没有区别,subprocess.call不冻结,但仍然输出相同的错误 –