2011-05-11 3 views
2

내가 가지고있는 IP 카메라에서 비디오 스트림을 가져 오는 데 문제가 있습니다. 나는 그것으로부터 이미지를 얻기 위해 opencv를 사용하고있다. 여기 내가 가지고있는 코드입니다 :Python 및 IP 카메라 문제

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 

사실,이 일이 작동하지만, 이미지를 표시하려면 너무 많은 시간이 걸립니다. 내가 ffmpeg 에서이 오류 때문에 추측입니다.

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

저는 파이썬 전문가가 아니므로 어떤 도움을 주시면 감사하겠습니다!

답변

1

먼저 mjpeg는 비교적 간단한 비디오 형식입니다. IP 카메라 사용 설명서를 읽는다면 약간의 자바 스크립트 코드로 브라우저에 비디오를 표시하는 방법을 찾을 수있는 것과 같습니다. 실제로 Google 크롬에서 http://prot-on.dyndns.org:8080/video2.mjpeg의 링크를 열면 아무 문제없이 동영상이 표시됩니다. (아마도 카메라의 실제 URL을 남겨 두어서는 안됩니다.)

두 번째로 카메라의 프레임 속도는 상당히 느립니다. 인터넷 대기 시간 또는 카메라 설정으로 인해 발생할 수 있습니다. Chrome에서 보이는 내용과 코드에 표시된 동영상을 비교해보십시오. 품질이 동일한 경우 코드의 문제가 아닙니다.