1

我正在使用 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

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

我的目标是在基站(即连接网络摄像头的位置)和网络位置处理网络摄像头视频

4

0 回答 0