我正在使用 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
我没有在流中得到任何输出
我的目标是在基站(即连接网络摄像头的位置)和网络位置处理网络摄像头视频