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