在NodeJS中接收ZMQ视频流

时间:2019-12-12 19:31:24

标签: node.js zeromq

我正在编写一个电子应用程序,我想在其中接收通过ZeroMQ PUB / SUB模式从python后端发送的视频(网络摄像头视频)。我有一个使用python客户端接收器测试过的python服务器,可以正常工作。

我的python视频发布商

import base64
import cv2
import zmq

context = zmq.Context()
footage_socket = context.socket(zmq.PUB)
footage_socket.connect('tcp://localhost:5555')

camera = cv2.VideoCapture(0)

while True:
    _, frame = camera.read()
    frame = cv2.resize(frame, (640, 480))
    _, buffer = cv2.imencode('.jpg', frame)
    byte_buffer = base64.b64encode(buffer)
    footage_socket.send(byte_buffer)

我曾尝试使用类似于zmq官方页面上的this one的简单订阅客户端在NodeJS中接收它,但似乎什么也没收到。

1 个答案:

答案 0 :(得分:1)

问题在于在邮件中发送主题。当NodeJS包装器以字符串形式发送时,只有一个空白空格将主题和有效负载分隔开,因此没有看到该主题。为了正确发送消息主题,我必须使用 send_multipart 函数。

footage_socket.send_multipart([b"video", byte_buffer])