使用 OpenCV 从 Websocket 流中捕获图像
Posted
技术标签:
【中文标题】使用 OpenCV 从 Websocket 流中捕获图像【英文标题】:Using OpenCV to capture images from the Websocket stream 【发布时间】:2020-05-30 00:10:14 【问题描述】:我有以下设置:
从客户端接收视频流的节点服务器。客户端可以通过 ws://1.2.3.4:8888 的 WebSocket 查看视频流。
现在,我想使用 OpenCV (Python) 从该流中捕获帧。我尝试使用 cap = cv2.VideoCapture('ws://1.2.3.4:8888/') 但它不起作用。给我一个错误(注意:套接字有效;我尝试在画布上显示流)。
我的问题是,有什么方法可以让我(在 Python 中)逐帧读取通过 WebSocket 可用的流?最好使用 OpenCV Python?
我尝试了很多东西,但都没有成功。
下面是让我连接到流的代码,但是如何从该流中捕获图像。
提前感谢您的帮助!
import asyncio
import pathlib
import ssl
import websockets
# ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
# # localhost_pem = pathlib.Path(__file__).with_name("localhost.pem")
# ssl_context.load_verify_locations(localhost_pem)
async def hello():
uri = "ws://192.168.0.102:8080"
async with websockets.connect(uri) as websocket:
print('hello')
asyncio.get_event_loop().run_until_complete(hello())
【问题讨论】:
你能提供一个最小的工作示例吗? 【参考方案1】:您可能会发现我使用 Python 提供实时网络摄像头提要的简约示例很有用:
https://github.com/vmlaker/hello-websocket
【讨论】:
以上是关于使用 OpenCV 从 Websocket 流中捕获图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 OpenCV 以您想要的分辨率从 DVR 读取图像?
有没有使用 OpenCV 的 imdecode 的替代方法?太慢了