我正在尝试在 Python 中设置对等服务器连接,允许我以帧 block 的形式解析视频流并处理它们。
在客户端,我关注 Insanely Simple WebRTC Video Chat Using Firebase (With Codepen Demo) 的工作.
他们使用 Firebase 作为信令服务器,在连接到相机后,可以通过发送如下所示的消息来调用对等方:
"{\"sdp\":{\"type\":\"offer\",\"sdp\":\"v=0\\r\\no=- 371050945269... (long crypted message)"
我现在想知道如何使用此信息接受此优惠并使用 Python 捕获来自此视频流的视频帧?
我尝试了以下操作,但这返回流为空:
import cv2
rtsp_url = 'crypto message above'
cap = cv2.VideoCapture({'\"sdp\":{\"type\":\"offer\",\"sdp\" ...')
while True:
# reads frames (this returned empty)
ret, img = cap.read()
08/02 更新:我调查了aiortc但我一直无法确定它与上面发送的消息有何关系。此外,我无法在 Windows 机器上安装和调试代码。
最佳答案
那是行不通的,opencv 对 webrtc 一无所知。您可以使用 javascript 在浏览器中抓取帧,然后通过 websocket 发送到 python 脚本,或者使用 python 中的 webrtc 库,如 gstreamer。参见 this python example使用 gstreamer。
关于python - 接受来自 WebRTC 信号的提议(在 Python 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171766/