我有一个通过rtsp协议和h264 Linux驱动程序在linux上传输的IP摄像头。我可以在VLC中看到具有以下地址和端口的视频:
rtsp://192.168.1.2:8080/out.h264
但是,如果我尝试在Python2.7.5 (MacOS X 10.9)中获取用于OpenCV处理的相同视频:
import cv
video = cv.CaptureFromFile('rtsp://192.168.1.2:8080/out.h264')
我得到以下错误:
WARNING: Couldn't read movie file rtsp://192.168.1.2:8080/out.h264
这看起来很简单,但我被它卡住了。谢谢。
发布于 2014-09-10 19:34:07
这适用于我(使用opencv 2.4.9):
vcap = cv.VideoCapture("rtsp://192.168.1.2:8080/out.h264")
while(1):
ret, frame = vcap.read()
cv.imshow('VIDEO', frame)
cv.waitKey(1)
发布于 2017-03-24 22:08:25
OpenCV依赖于ffmpeg或其他视频后端来处理视频格式和IP摄像机协议。根据您的平台和安装OpenCV的方式,您可能不支持rtsp。
您可以检查OpenCV安装的视频后端支持:
python -c "import cv2; print(cv2.getBuildInformation())"
Video I/O:
DC1394 1.x: NO
DC1394 2.x: NO
FFMPEG: NO
avcodec: NO
avformat: NO
avutil: NO
swscale: NO
avresample: NO
GStreamer: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
OpenNI2: NO
PvAPI: NO
GigEVisionSDK: NO
Aravis SDK: NO
UniCap: NO
UniCap ucil: NO
V4L/V4L2: NO/NO
XIMEA: NO
Xine: NO
gPhoto2: NO
发布于 2019-09-10 04:19:13
在这个问题上挣扎了一段时间。
最后,this为我准备好了。
安卓系统上的
Install: https://play.google.com/store/apps/details?id=com.miv.rtspcamera
Start rtsp server on android
在PC上创建
脚本
import cv2
import numpy as npimport os
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"
vcap = cv2.VideoCapture("rtsp://192.168.1.2:5554/camera", cv2.CAP_FFMPEG)
while(1):
ret, frame = vcap.read()
if ret == False:
print("Frame is empty")
break;
else:
cv2.imshow('VIDEO', frame)
cv2.waitKey(1)
将“192.168.1.2”更改为您的安卓设备地址。
运行python脚本
https://stackoverflow.com/questions/20891936
复制相似问题