如何在Ubuntu18.04中为python opencv(4.1.2)设置/安装/启用DC1394(libdc1394 v2.x)后端?

如何在Ubuntu18.04中为python opencv(4.1.2)设置/安装/启用DC1394(libdc1394 v2.x)后端?,opencv,video-streaming,video-capture,ip-camera,Opencv,Video Streaming,Video Capture,Ip Camera,从IP摄像头(Axis M3045-V)进行流媒体传输时,我无法使用cap=cv2.VideoCapture(')设置缓冲区大小 封盖套件(cv2.cap\u PROP\u BUFFERSIZE,1)。但是,我可以成功地更改任何网络摄像头的缓冲区大小。原因是OpenCV的以下注释: CV_CAP_PROP_BUFFERSIZE存储在内部缓冲内存中的帧数量(注意:当前仅支持DC1394 v 2.x后端) cv2.getBuildInformation()显示我的计算机中没有DC1394 我无法在c

从IP摄像头(Axis M3045-V)进行流媒体传输时,我无法使用cap=cv2.VideoCapture(')设置缓冲区大小 封盖套件(cv2.cap\u PROP\u BUFFERSIZE,1)。但是,我可以成功地更改任何网络摄像头的缓冲区大小。原因是OpenCV的以下注释:

CV_CAP_PROP_BUFFERSIZE存储在内部缓冲内存中的帧数量(注意:当前仅支持DC1394 v 2.x后端)

cv2.getBuildInformation()显示我的计算机中没有DC1394

我无法在cv2.VideoCapture中使用cv2.CAP_DC1394。然而,在我的例子中,cv2.CAP_ANY和cv2.CAP_FFMPEG都可以工作。两者都将后端设置为FFMPEG

backends=cv2.videoio_registry.getBackends()#可用的视频后端 camerabackends=cv2.videoio_注册表。getCameraBackends()#此相机的后端
getBackeendName=cap.getBackendName()#返回使用过的后端API名称。

我不确定这是否有用,但由于您使用的模型,值得注意


M304X-V系列由于其构建中使用的芯片组而存在局限性。这些限制与帧、比特率、文本覆盖和可提取的流的数量有关。这是一个ambarella芯片,而不是P和Q系列相机上使用的芯片。另外,我记得固件版本6.15.X中有一些奇怪的bug。如果您使用了不同的axis摄像头或更新了fw(如果您使用的是6.15.X版本),我会很好奇看到结果。

我安装了libdc1394-2.2.6.tar.gz,但仍然是cv2.getBuildInformation()显示视频I/O:DC1394:NO FFMPEG:YES avcodec:YES(58.62.100)avformat:YES(58.35.100)avutil:YES(56.36.100)swscale:YES(5.6.100)avresample:NO GStreamer:NO v4l/v4l2:YES(linux/videodev2.h)我目前正在使用多线程绕过缓冲区。为什么这个问题被解决了?这是一个合理的问题。大多数人都会安装opencv python,默认情况下,opencv python没有安装这个后端选项。我也不明白为什么会关闭它。在ubuntu上,
apt search dc1394
显示我的系统上安装了libdc1394-22,而
cv2.getBuildInformation()
显示的就像@Fisa
dc1394:NO
。。。