Live Streaming Video Chat App using cv2 module of Python
Team : Summer_6_14
-Mohammed Adnan
-Prattipati Sri Raviteja
-Mohammed Awais Ahmed
-Saami Abdul Samad
SUMMER 2021— Task 03
Task Description 📄
📌 Create Live Streaming Video Chat App without voice using cv2 module of Python.

To create a Live Streaming Video Chat App using the cv2 module of Python, we have used the socket programming to connect the two ends of the network to connect to each other. There are two key nodes here:
- The Sender(Server)
- The Receiver(Client)
The Sender:
Importing the Libraries:
import socket
import cv2
import pickle
import struct
import imutils
Creating the Socket:
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host_name = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print('HOST IP:',host_ip)
port = 10050
socket_address = (host_ip,port)
Output: Host IP: <IP Address>
Binding & Listening the Socket
server_socket.bind(socket_address)server_socket.listen(5)
print("Listening @",socket_address)
Output: Listening @ <Host IP>, <Port>
Running and Streaming the Video:
while True:
client_socket,addr = server_socket.accept()
print('Connection from:',addr)
if client_socket:
vid = cv2.VideoCapture(0)
while(vid.isOpened()):
img,frame = vid.read()
a = pickle.dumps(frame)
message = struct.pack("Q",len(a))+a
client_socket.sendall(message)
cv2.imshow('Sending...',frame)
key = cv2.waitKey(10)
if key ==13:
client_socket.close()
The Receiver :
-Importing the same libraries as the Server Side
Connecting to the Socket:
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host_ip = '<Host IP>'
port = <Port_No>
Streaming the Server Side Video:
while True:
while len(data) < payload_size:
packet = client_socket.recv(4*1024)
if not packet: break
data+=packet
packed_msg_size = data[:payload_size]
data = data[payload_size:]
msg_size = struct.unpack("Q",packed_msg_size)[0] while len(data) < msg_size:
data += client_socket.recv(4*1024)
frame_data = data[:msg_size]
data = data[msg_size:]
frame = pickle.loads(frame_data)
cv2.imshow("Receiving...",frame)
key = cv2.waitKey(10)
if key == 13:
break
client_socket.close()
The Output:
