奇怪的問題,我用這個命令,通過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不凍結,但仍然輸出相同的錯誤 –