player.py 986 B

12345678910111213141516171819202122232425262728293031323334353637
  1. # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
  2. # SPDX-License-Identifier: Unlicense OR CC0-1.0
  3. import socket
  4. import cv2
  5. import numpy as np
  6. frame_count = 0
  7. stream = bytearray()
  8. print('Connecting to server...')
  9. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
  10. sock.connect(('esp-cam.local', 2222))
  11. print('Receiving data ')
  12. while True:
  13. data = sock.recv(4096)
  14. if not data:
  15. break
  16. stream += data
  17. print('.', end='', flush=True)
  18. a = stream.find(b'\xff\xd8')
  19. b = stream.find(b'\xff\xd9', a)
  20. if a != -1 and b != -1:
  21. jpg = stream[a:b + 2]
  22. stream = stream[b + 2:]
  23. buffer = np.frombuffer(jpg, dtype=np.uint8)
  24. image = cv2.imdecode(buffer, cv2.IMREAD_COLOR)
  25. cv2.imshow('Stream', image)
  26. if cv2.waitKey(10) == 27:
  27. exit(0)
  28. frame_count += 1
  29. print('\nFrames received ', frame_count)