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

相关推荐
1570925113413 小时前
Android进阶之光:HTTP协议原理深度解析
android·网络协议·http
可爱系程序猿17 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
2501_9160088920 小时前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
努力的lpp1 天前
【攻击溯源四步法 · 面试讲解稿】
网络·网络协议·安全
cccc卌1 天前
HTTP协议总结
网络·网络协议·http
明月_清风1 天前
MHS:AI Agent 开始连接物理世界
人工智能·后端·网络协议
爱学习的程序媛1 天前
TCP / UDP 协议详解
网络·网络协议·udp·tcp·通信协议
爱学习的程序媛1 天前
以太网协议详解
网络·网络协议·计算机网络·以太网·ethernet·通信协议
binqian1 天前
【Linux】内核怎么管理侦听socket
linux·网络协议
本人手速666+1 天前
企业微信 API 接入层如何降低业务系统复杂度
运维·网络协议·微信·自动化·ipad