这里有一个奇怪的问题,我使用这个命令通过 ffmpeg 捕获我的网络摄像头(通过 Windows 上的 cmd):
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.如果相关的话,这个问题是这个问题的后续问题:如何在 Windows 中使用 ffmpeg 抓取笔记本电脑网络摄像头视频