我正在尝试使用自己的FFMPEG构建和CUDA支持使用Python进行GPU视频处理的加速OpenCV。
我的应用程序必须支持任何类型的视频设备,包括 USB和IP摄像机。
我有一个用ConfigParser
解析的配置文件,该文件加载了摄像头设备路径,如OpenCV文档中所述,我们可以按索引号访问USB摄像头,而对于IP摄像头,我们使用RTSP协议,因此有时路径为{ {1}}或0
。
为了在OpenCV之后强制使用FFMPEG,我试图像下面这样打开视频捕获流:
rtsp://192.168.1.2/0
问题是,当我尝试打开默认的USB摄像机video_capture = cv.VideoCapture()
stream_opened = video_capture.open(camera_path, cv.CAP_FFMPEG)
时,camera_path = 0
方法始终返回 false ,但是当它是video_capture.open
之类的RTSP时它会打开视频捕获流。
当我让OpenCV决定将使用哪个后端时,它将调用GStreammer并按如下所示打开捕获流:
camera_path = "rtsp://192.168.1.2/1"
我怀疑FFMPEG不支持从USB摄像机捕获视频,是吗? ffmpeg版本缺少某些功能吗?
video_capture = cv.VideoCapture(camera_path)