如何使用NetGear发送视频

2024-05-14 01:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将视频从客户端发送到服务器。我有这个代码,但我不能从客户端发送到服务器。我正在使用NetGear。NetGear围绕PyZmQ python库实现了一个高级包装器,该库包含ZeroMQ的python绑定—一个提供消息队列的高性能异步分布式消息传递库,但与面向消息的中间件不同,其系统可以在没有专用消息代理的情况下运行

我有一个开放端口的服务器。客户端目标是连接到服务器并发送视频。服务器需要接收该视频

这是服务器代码`

# import required libraries
from vidgear.gears import VideoGear
from vidgear.gears import NetGear

# open any valid video stream(for e.g `test.mp4` file)
stream = VideoGear(source="test.mp4").start()

# Define Netgear Server with default parameters
server = NetGear()

# loop over until KeyBoard Interrupted
while True:

    try:

        # read frames from stream
        frame = stream.read()

        # check for frame if Nonetype
        if frame is None:
            break

        # {do something with the frame here}

        # send frame to server
        server.send(frame)

    except KeyboardInterrupt:
        break

# safely close video stream
stream.stop()

# safely close server
server.close()

这是客户端代码`

from vidgear.gears import NetGear
import cv2


# define Netgear Client with `receive_mode = True` and default parameter
client = NetGear(receive_mode=True)

# loop over
while True:

    # receive frames from network
    frame = client.recv()

    # check for received frame if Nonetype
    if frame is None:
        break

    # {do something with the frame here}

    # Show output window
    cv2.imshow("Output Frame", frame)

    # check for 'q' key if pressed
    key = cv2.waitKey(1) & 0xFF
    if key == ord("q"):
        break

# close output window
cv2.destroyAllWindows()

# safely close client
client.close()

Tags: fromimport服务器true客户端forclosestream