OpenCV(Gstreamer例外):从在线相机读取视频流



>我尝试使用OpenCV读取网络摄像头流(地址以:5555/mjpg/101.jpg结尾(。我使用OpenCV来读取图像:

camera_number101 = "http://xxx.xxx.xx.xx:5555/mjpg/101.jpg"
cap101 = cv2.VideoCapture(camera_number101)
ret101, image_np101 = cap101.read()

这只是我代码的一部分,但是当我启动它时,它显示以下异常:OpenCV 异常

我使用的是 Ubuntu 16.04,我安装的 gstreamer 软件包如下:已安装的 Gstreamer 软件包

提前感谢!

要使用gstreamer作为opencv的输入,你必须编写一个完整的管道。如果您的 cameta 正在生成 h264 的 TCP 流,则管道可能如下所示:

cv2.VideoCapture('tcpclientsrc host=<IP> port=<PORT> ! h264parse ! x264dec ! videoconvert ! appsink')

但是您必须弄清楚相机正在生产的确切格式和容器。对于(可能是运动(JPEG解码器,您需要使用jpegdec解码jpeg。

此外,您的 opencv 安装必须在 gstreamer 支持下进行编译,并安装正确的 gstreamer 插件。

最新更新