Ответ 1
это работает для меня (используя 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)
У меня есть потоковая передача IP-камеры на Linux через протокол rtsp и драйвер h264 linux. Я могу видеть видео в VLC со следующим адресом и портом:
rtsp://192.168.1.2:8080/out.h264
Однако, если я попытаюсь получить одно и то же видео для обработки OpenCV в Python 2.7.5 (MacOS X 10.9):
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
Кажется, что-то довольно простое, но я застрял на нем. Спасибо.
это работает для меня (используя 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)
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
Некоторое время боролся за это...
наконец, это получилось для меня.