我正尝试使用python中的cv2从GoPro捕获实时流,代码如下:
VIDEO_URL = "http://10.5.5.9:8080/live/amba.m3u8"
cam = cv2.VideoCapture(VIDEO_URL)
cv2.namedWindow("GoPro",cv2.CV_WINDOW_AUTOSIZE)
while True:
f, im = cam.read()
cv2.imshow("GoPro",im)
if cv2.waitKey(5) == 27:
break
cam.release()
cv2.destroyAllWindows()
但收到以下错误:
WARNING: Couldn't read movie file http://10.5.5.9:8080/live/amba.m3u8
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/opencv-MRl1/opencv-2.4.7.1/modules/highgui/src/window.cpp, line 261
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gopro_simple.py", line 167, in live_stream
cv2.imshow("GoPro",im)
cv2.error: /tmp/opencv-MRl1/opencv-2.4.7.1/modules/highgui/src/window.cpp:261: error: (-215) size.width>0 && size.height>0 in function imshow
流在vlc中工作,代码在网络摄像头中工作,所以问题是opencv不喜欢.m3u8格式。对于如何解决这一问题的任何想法/建议,我们将不胜感激。谢谢。
也许您使用VLC:在VLC(
http://10.5.5.9:8080/live/amba.m3u8
)中打开流,然后您可以重新创建流或根据需要使用它。VLC非常强大。我可以把我的gopro内容发送到互联网上找到了一个名为ffmpeghere的解决方案,效果很好(对ffmpeg选项进行了一些小的更改):
仍在修改代码,因此欢迎任何建议。
相关问题 更多 >
编程相关推荐