问题描述:

I'm having problems to get a video stream from a IP camera I have. I'm using opencv to get the images from it. Here's the code i have:

import sys

import cv

video="http://prot-on.dyndns.org:8080/video2.mjpeg"

capture =cv.CaptureFromFile(video)

cv.NamedWindow('Video Stream', 1 )

while True:

# capture the current frame

frame = cv.QueryFrame(capture)

if frame is None:

break

else:

#detect(frame)

cv.ShowImage('Video Stream', frame)

if k == 0x1b: # ESC

print 'ESC pressed. Exiting ...'

break

Actually, this thing works, but it takes too much time to display the images. I'm guessing it's because of this error from ffmpeg.

 [mjpeg @ 0x8cd0940]max_analyze_duration reached

[mjpeg @ 0x8cd0940]Estimating duration from bitrate, this may be inaccurate

I'm not a python expert so any help would be appreciated!

网友答案:

First, mjpeg is a relatively simple video format. If you read your IP camera's manual, it's very like that you can find how to display the video in browser with a bit JavaScript code. In fact, if you open link of http://prot-on.dyndns.org:8080/video2.mjpeg in Google Chrome, you would see the video without any problem. (Maybe you shouldn't leave the real URL of your camera)

Second, as far as I can see, the frame rate of your camera is pretty slow. That might due to Internet latency or your camera's setting. Compare what you see in Chrome with the video displayed by your code, if they are of same quality, then it's not your code's problem.

相关阅读:
Top