python opencv实现视频UDP传输
新人小白勿怪。
python实现服务器录制视频,UDP实时传输到客户端,实时显示。
报错
data, addr = s.recvfrom(4096),socket.error: [Errno 10040]
Buffer已经设置为65536,按说不应该会有buffer不足的情况。
感谢大佬们指点。
代码如下:
host.py
import cv2
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('127.0.0.1', 9999))
cap = cv2.VideoCapture(1)
cap.set(3, 320)
cap.set(4, 240)
while True:
data, addr = s.recvfrom(4096)
if data != '0':
_, fra = cap.read()
_, enfra = cv2.imencode('.jpg', fra)
s.sendto(enfra, ('127.0.0.1', 9999))
s.close()
client.py
import cv2
import socket
port = 9999
host = '127.0.0.1'
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(b'1', (host, port))
cv2.namedWindow('img')
while True:
data, addr = s.recvfrom(400000)
if data:
imde = cv2.imdecode(data, 1)
cv2.imshow('img', imde)
k = cv2.waitKey(1)
if k == ord('q'):
s.sendto(b'0', (host, port))
break
s.close()
cap.release()
cv2.destroyAllWindows()