cv2 视频UDP传输

#server

import socket

import pickle

import cv2

import sounddevice as sd

import struct

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)

s.bind(("127.0.0.1",3000))

#s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 65565)

all_data=b''

while(1):

data,addr=s.recvfrom(1024)

all_data=data

data_size=struct.unpack('!L',data0:4)0

print(data_size)

while(len(all_data)<data_size+4):

data,addr=s.recvfrom(1024)

all_data+=data

print(len(all_data))

frame=pickle.loads(all_data4:)

frame=cv2.imdecode(frame, 1)

cv2.imshow("cesgi",frame)

print("接收完毕")

if cv2.waitKey(1) & 0xFF == ord('q'):

break

all_data=b''

#client

import socket

import cv2

import pickle

import sounddevice as sd

import struct

cap = cv2.VideoCapture(0)

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)

s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 1024)

while(1):

#my_recording = sd.rec(int(4410), samplerate=44100, channels=1)

ret, frame = cap.read()

_, send_data = cv2.imencode('.jpg', frame, cv2.IMWRITE_JPEG_QUALITY, 50)

data=pickle.dumps(send_data)

data_size=struct.pack('!L',len(data))

all_data=data_size+data

data_list=all_data\[i:i+1024 for i in range(0,len(all_data),1024)]

#audio=pickle.dumps(my_recording)

if ret:

for i in data_list:

s.sendto(i,("127.0.0.1",3000))

#s.sendto(audio,("127.0.0.1",3000))

if cv2.waitKey(1) & 0xFF == ord('q'):

break

相关推荐
abbgogo8 小时前
TCP/IP、OSI 与常见网络协议知识点总结
网络·网络协议·计算机网络
李昊哲小课8 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
abbgogo10 小时前
堆叠、DHCP 与链路聚合总结
网络·网络协议
古一木11 小时前
opencv 形态学操作
人工智能·opencv·计算机视觉
sali-tec17 小时前
C# 基于OpenCv的视觉工作流-章100-抠图
图像处理·人工智能·opencv·计算机视觉
花生了什么事o18 小时前
WebSocket 与 SSE:实时通信方案的选择
网络·websocket·网络协议
想学好C++的oMen18 小时前
应用层协议http
网络·网络协议·http
AI人工智能+电脑小能手18 小时前
【大白话说Java面试题 第215题】【10_网络协议篇】第6题:Socket 是什么?
java·udp·网络编程·socket·tcp
大鱼>18 小时前
从零实现TCP/IP协议栈:AR →IP分片→TCP状态机→拥塞控制
网络·网络协议·tcp/ip
paopaokaka_luck18 小时前
基于springboot3+vue3的乡村医生诊疗管理系统(AI助手、协同过滤算法、webSocket实时聊天、Echarts图形化分析)
前端·网络·人工智能·spring boot·websocket·网络协议·echarts