2011-05-11 329 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攝像機手冊,就好像您可以找到如何使用JavaScript代碼在瀏覽器中顯示視頻。事實上,如果您在Google Chrome中打開http://prot-on.dyndns.org:8080/video2.mjpeg的鏈接,您會看到視頻沒有任何問題。 (也許你不應該留下你的相機的真實URL)

其次,據我所見,你的相機的幀速率是非常緩慢的。這可能是由於互聯網延遲或相機的設置。將您在Chrome中看到的內容與代碼顯示的視頻進行比較,如果它們具有相同的質量,那麼這不是您的代碼問題。