我可以在VLC中打开流,但是在OpenCV中我无法捕获帧。 (Python 2.7,OpenCV 3.4.3二进制发行版x86,Windows 10)。我一直在遵循本指南:https://medium.com/@tomgrek/hackers-guide-to-the-aws-deeplens-1b8281bc6e24,但似乎无法在线阅读随机流(不确定我是否应该这样做,我看到了关于opencv videocapture can't open MJPEG stream的关于使用ffmpeg进行编译的问题,但我刚刚下载了该问题) Sourceforge中可用的二进制文件)。
我正在使用AWS Deeplens,已更新为最新版本。
已安装ffmpeg,最新版本。
然后,在/etc/ffserver.conf中,我添加了:
<Stream camera.h264>
File "/opt/awscam/out/ch1_out.h264"
VideoFrameRate 6
VideoSize 320x240
NoAudio
</Stream>
<Stream camera.mjpeg>
File "/opt/awscam/out/ch2_out.mjpeg"
VideoFrameRate 3
VideoSize 640x480
Format mjpeg
NoAudio
</Stream>
ffserver -f /etc/ffserver.conf
ssh -L 8090:localhost:8090 aws_cam@192.168.0.10
http://localhost:8090/camera.mjpeg
,则可以看到来自摄像机的视频流。但是,如果我运行以下代码:
cam = cv2.VideoCapture("http://localhost:8090/camera.mjpeg")
success, frame = cam.read()
opened = cam.isOpened()
success, frame, opened
我得到:
False, None, False
如果我浏览到http://localhost:8090/stat.html
,则会看到:
Available Streams
Path Served Conns bytes Format Bit rate kbits/s Video kbits/s Codec Audio kbits/s Codec Feed
test1.mpg 0 0 mpeg 96 64 mpeg1video 32 mp2 feed1.ffm
test.asf 0 0 asf_stream 320 256 msmpeg4 64 wmav2 feed1.ffm
stat.html 17 42150 - - - -
index.html 0 0 - - - -
camera.h264 3 6805k h264 0 0 libx264 0 /opt/awscam/out/ch1_out.h264
camera.mjpeg 12 41073k mjpeg 0 0 mjpeg 0 /opt/awscam/out/ch2_out.mjpeg
每次调用VideoCapture()
时,我都会看到Served
流中camera.mjpeg
的数目如何增加2或3,而bytes
却增加了几兆字节但我在OpenCV中看不到任何东西。我没有在Windows 10中尝试任何其他视频设备,但是我可以读取图像没有问题。我还尝试了在线随机流,也可以在VLC中打开,但不能在OpenCV中打开,请尝试以下操作:http://136.176.70.200/mjpg/video.mjpg
有什么想法吗?
答案 0 :(得分:0)
好像我需要在ffmpeg支持下自己编译OpenCV。