Как через OpenCV преобразовать кадр в jpg-формат, не записывая его на диск в Python
Требуется взять изображение с веб-камеры, и передать его клиенту.
Имеется такой Python-код:
async def servo(websocket, path):
print("Server is running...")
# хватаем изображение с веб-камеры
cap = cv2.VideoCapture(-1)
# print(cap.isOpened())
while cap.isOpened():
ret, frame = cap.read()
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
cv2.imshow('frame', gray)
# data = await websocket.recv(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cap.release()
cv2.destroyAllWindows()
Однако, нужно преобразовывать frame (кадр) в jpg, не сохраняя на диск, и сразу преобразовать его в бинарный код, чтобы передать уже клиенту, и таким образом, с помощью js обработать на стороне клиента. В итоге должна получится обычная трансляция видео с веб-камеры (вебка на другом устройстве, на raspberry pi4) по локальной сети на html+js страничку в браузере