Metadata-Version: 2.1
Name: imagiz
Version: 0.5
Summary: Live video streaming over network with OpenCV and (ZMQ or TCP)
Home-page: https://github.com/jmowlaei/imagiz
Author: Jafar Mowlaei
Author-email: jmowlaei@gmail.com
License: MIT
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: zmq

# Imagiz
Fast and none blocking live video streaming over network with OpenCV and (ZMQ or TCP).


# Install
```
pip3 install imagiz
```

# ZMQ Client

```
import imagiz
import cv2


client=imagiz.Client("cc1",server_ip="localhost")
vid=cv2.VideoCapture(0)
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]

while True:
    r,frame=vid.read()
    if r:
        r, image = cv2.imencode('.jpg', frame, encode_param)
        client.send(image)
    else:
        break

```

# ZMQ Server
```
import imagiz
import cv2

server=imagiz.Server()
while True:
    message=server.recive()
    frame=cv2.imdecode(message.image,1)
    cv2.imshow("",frame)
    cv2.waitKey(1)
```
# TCP Client
```
import imagiz
import cv2

vid=cv2.VideoCapture(0)
client=imagiz.TCP_Client(server_port=9990,client_name="cc1")
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]


while True:
    r,frame=vid.read()
    if r:
        r,image=cv2.imencode('.jpg',frame, encode_param)
        response=client.send(image)
        print(response)

```

# TCP Server
```
import imagiz
import cv2

server=imagiz.TCP_Server(9990)
server.start()
while True:
    message=server.receive()
    frame=cv2.imdecode(mmessage.image,1)
    cv2.imshow("",frame)
    cv2.waitKey(1)
```



# Client Options
| Name | Description |
| --- | --- |
| `client_name` | Name of client |
| `server_ip` | Ip of server default value is localhost  |
| `server_port` | Port of server default value is 5555 |
| `request_timeout` | how many milliseconds wait to resend image again |
| `request_retries` | how many time retries to send an image before client exit  |
| `generate_image_id` | image_id is unique and ordered id that you can use for save data on disk or db also it is show time of image sended by client  |
| `time_between_retries` | On TCP client show time between retries  |

# Server Options
| Name | Description |
| --- | --- |
| `Port` | Port of server |
| `listener` | Number of listening threads.default value is 10 |

# Message Class
| Name | Description |
| --- | --- |
| `image` | Byte of image |
| `client_name` | Name of client |
| `image_id` | If disable generate_image_id it will be 0  |


