Send and receive images / stream video through network with low latency for external computation.
Image/Video streamed can be seen with browser in another device, or captured with OpenCV for further computation.
Technology used is Motion JPEG over HTTP.
The server does not require extra packages installation (like Flask) and it's Python 2 compatible because has been used on a robot not updatable.
- no extra packages needed
- python 2/3 compatible
- image stream can be captured directly with OpenCV cap.read() method.
- low latency, good for real-time
- Python 2 / 3
- OpenCV 3.4.5
- MJpegHttpStreamer: pure server that streams video/images (i.e. from webcam), only 1 client.
- OpenCV_MJPEG_Streaming_Server: Server example that streams the webcam.
- OpenCV_read_source_from_argument_client: Client example that reads the images/video streamed on another device.
- raw_stream_client_read_opencv: Server that can handle multiple clients, but the format can't be captured with OpenCV cap.read() method, but with the client below.
- raw_stream_server: Client for the server above, can decode the stream.
- robot_baxter_stream_pic: an example of mine for a Baxter Robot
If any problem or unstable connection, try shaping your frames in (480,640,3) datatype: uint8, before encoding them in .jpg .
https://github.com/switchdoclabs/SDL_Pi_MJPEGStream
https://github.com/janakj/py-mjpeg