#python #sockets #video #video-streaming
#python #сокеты #Видео #потоковое видео
Вопрос:
Как я могу отправить видео с клиента на сервер. У меня есть эти коды, но я не могу отправлять с клиента на сервер. Я использую NetGear. NetGear реализует высокоуровневую оболочку вокруг PyZmQ python library, которая содержит привязки python для ZeroMQ — высокопроизводительной асинхронной библиотеки распределенных сообщений, предоставляющей очередь сообщений, но, в отличие от промежуточного программного обеспечения, ориентированного на сообщения, его система может работать без специального посредника сообщений.
У меня есть сервер с открытым портом. Назначение клиента — подключиться к серверу и отправить видео. Серверу необходимо получить это видео.
Это серверный код `
# 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) amp; 0xFF
if key == ord("q"):
break
# close output window
cv2.destroyAllWindows()
# safely close client
client.close()
Комментарии:
1. Вы должны рассказать нам, с какой проблемой вы столкнулись. «но я не могу отправить с клиента на сервер» недостаточно конкретно. Какие ошибки вы получаете?