使用opencv捕获网络视频

时间:2014-09-03 13:16:37

标签: python opencv ffmpeg ffserver

我使用ffserver和ffmpeg组合捕获网络摄像头视频并通过我的网络传输。

我想从另一台计算机上使用opencv和python捕获此视频。 我可以在另一台计算机的浏览器中看到视频(cam1.asf)。但我的opencv + python代码无法捕获任何帧。

ffserver的代码

HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandWidth 2000

<Feed feed1.ffm>
   File ./tmp/feed1.ffm
   FileMaxSize 1G
   ACL allow 127.0.0.1
</Feed>

<Stream cam1.asf>
  Feed feed1.ffm
  Format asf
  VideoCodec msmpeg4v2
  VideoFrameRate 30
  VideoSize vga
</Stream>

FFmpeg

$ffmpeg -f video4linux2 -i /dev/video0 192.168.1.3 /cam1.ffm

可以在浏览器中看到此流

但是使用opencv代码

import sys
import cv2.cv as cv
import numpy

video="http://http://192.168.1.3:8090/cam1.asf"
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 cv.WaitKey(10) == 27:
    print 'ESC pressed. Exiting ...'
    break

我没有在流中获得任何输出

我的目标是在基站(即连接网络摄像头的地方)和网络位置使用网络摄像头视频

0 个答案:

没有答案