Selamun Aleykum, Canlı video akışı için bir şeyler buldum (kusra bakmayın linki bulamadım)
lakin bazı yerleri anlamadım.Socket ile veri alış veriş yerleri tamam lakin struct ve pickle araya girince kafam karışıyor mantığını anlayamıyorum
server:
import socket
import sys
import cv2
import pickle
import numpy as np
import struct ## new
HOST='localhost'
PORT=8089
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print 'Socket created'
s.bind((HOST,PORT))
print 'Socket bind complete'
s.listen(10)
print 'Socket now listening'
conn,addr=s.accept()
### new
data = ""
payload_size = struct.calcsize("L")
while True:
while len(data) < payload_size:
data += conn.recv(4096)
packed_msg_size = data[:payload_size]
data = data[payload_size:]
msg_size = struct.unpack("L", packed_msg_size)[0]
while len(data) < msg_size:
data += conn.recv(4096)
frame_data = data[:msg_size]
data = data[msg_size:]
###
frame=pickle.loads(frame_data)
print frame
cv2.imshow('frame',frame)
cv2.waitKey(0)
client.py:
import cv2
import numpy as np
import socket
import sys
import pickle
import struct ### new code
cap=cv2.VideoCapture(0)
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('localhost',8089))
while True:
ret,frame=cap.read()
data = pickle.dumps(frame)
print data ### new code
clientsocket.sendall(struct.pack("L", len(data))+data) ### new code
burada struct ve pickle ile olan yerleri anlamadım.Struct nedir araştırdım yine anlamadım yardımcı olur musunuz ?
NOT:(python 2 de yazılı ve çalışıyor evet yavaş ama tam mantığı anlamadığım için udp olarak daha ayarlayamadım )