当前位置: 首页 > news >正文

网站如何吸引蜘蛛网络专业的网站建设价格低

网站如何吸引蜘蛛,网络专业的网站建设价格低,网站建设关键词优化价格,17网站一起做网店普宁背景 最近在开发工作中遇到需要两台本地设备之间进行视频流的传输的情况。但是团队一来没有这方面的专业人才#xff0c;二来视频流的传续数据量很大#xff0c;针对TCP和UDP的具体选择也不明确。 本文是在上诉背景之下进行的研究和开发工作。 目录 背景 UDP和TCP协议的…背景 最近在开发工作中遇到需要两台本地设备之间进行视频流的传输的情况。但是团队一来没有这方面的专业人才二来视频流的传续数据量很大针对TCP和UDP的具体选择也不明确。 本文是在上诉背景之下进行的研究和开发工作。 目录 背景 UDP和TCP协议的选择 Socket-UDP协议代码详解 UDP协议发送端 UDP协议接收端 UDP和TCP协议的选择 视频流更加适合UDP协议的传输 序号UDP协议TCP协议是否需要握手不需要握手需要握手是否确保数据帧传输准确性不确保确保是否确保数据帧传输顺序一致性不确保确保速度相对高速相对低速 对于一些需要准确传输的信息则选择TCP协议 对于一些需要高速传输和不在意准确性的数据选择UDP协议。 显然实时视频流就是一个典型的适合UDP协议的数据。 实时视频流不在意数据是否完整传输因为传输错误的帧马上就是过去式了接着显示新的帧实时视频流不在意帧是否顺序一致少数的几帧在短暂的时间戳内顺序不一致无伤大雅但实时视频流需要帧高速 Socket-UDP协议代码详解 UDP协议发送端 是否常常遇到问题 OSError: [WinError 10040] 一个在数据报套接字上发送的消息大于内部消息缓冲区或其他一些网络限制或该用户用于接收数据报的缓冲区比数据报小 简单发送端仅需要分片发送即可当然接收端也需要想要调整。 import cv2 import socket import time import struct import numpy as np import logging# 配置摄像头和UDP传输参数 FPS_INTERVAL 0.1 # 每隔0.1秒计算一次帧率 UDP_IP 127.0.0.1 # 目标接收端IP UDP_PORT 12345 # 目标接收端端口 MAX_UDP_SIZE 1024 # 每个数据包最大传输大小调整为1024字节# 设置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s) logger logging.getLogger()# 创建UDP socket sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 打开摄像头 cap cv2.VideoCapture(1) if not cap.isOpened():logger.error(无法打开摄像头请检查设备连接)exit(1)cap.set(cv2.CAP_PROP_FRAME_WIDTH, 4000) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 3000) cap.set(cv2.CAP_PROP_FPS, 60)# 初始化一些变量 frame_count 0 last_time time.time()while True:try:ret, frame cap.read()if not ret:logger.warning(无法读取摄像头帧)continue # 如果读取失败跳过本次循环# 定义新的大小宽度高度new_dims (1280, 960) # 新的宽度和高度# 使用cv2.resize()调整图像大小frame cv2.resize(frame, new_dims, interpolationcv2.INTER_LINEAR)# 将帧转换为JPEG格式ret, jpeg cv2.imencode(.jpg, frame)if ret:# 将JPEG图像数据转为字节流data jpeg.tobytes()data_len len(data)# 发送帧数据的总长度try:sock.sendto(struct.pack(L, data_len), (UDP_IP, UDP_PORT)) # 发送数据长度except socket.error as e:logger.error(f发送数据长度失败: {e})continue # 如果发送失败跳过本次循环# 分片发送数据for i in range(0, data_len, MAX_UDP_SIZE):packet data[i:iMAX_UDP_SIZE]try:sock.sendto(packet, (UDP_IP, UDP_PORT)) # 发送数据片段except socket.error as e:logger.error(f发送数据片段失败: {e})continue # 如果发送失败跳过本次循环# 计算帧率每帧计算一次current_time time.time()frame_time current_time - last_time # 计算当前帧的时间差fps 1.0 / frame_time if frame_time 0 else 0 # 帧率 1 / 帧间隔# 更新上次帧的时间last_time current_time# 在左上角显示帧率cv2.putText(frame, fclient-FPS: {fps:.2f}, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)# 显示视频流cv2.imshow(Camera, frame)except (cv2.error, socket.error) as e:logger.error(f发生异常: {e})# 如果发生异常等待一段时间重试time.sleep(2)continue# 按q退出if cv2.waitKey(1) 0xFF ord(q):break# 释放资源 cap.release() cv2.destroyAllWindows()UDP协议接收端 在遇到缓存问题的时候接收端除了增设分片接受以外还需要进行缓冲区大小的设定这里推荐为5MB。当然还需要try except之后清空所有的缓冲区 import cv2 import socket import struct import numpy as np import time import logging# 配置UDP接收参数 UDP_IP 127.0.0.1 # 本地IP UDP_PORT 12345 # 端口号# 创建UDP socket sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind((UDP_IP, UDP_PORT))# 增加接收缓冲区的大小 sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1048576 * 5) # 设置接收缓冲区大小为5MB# 用于接收数据的缓冲区 buffer b# 设置日志记录 LOG_FORMAT %(asctime)s - %(levelname)s - %(message)s logging.basicConfig(filenameudp_server.log, levellogging.DEBUG, formatLOG_FORMAT)last_time time.time()def clear_socket_buffer():清空socket的接收缓冲区丢弃所有未处理的数据。while True:# 尝试读取一部分数据sock.settimeout(0.1) # 设置一个短暂的超时避免阻塞try:data sock.recv(4096) # 尝试读取最大4KB的数据if not data:breakexcept socket.timeout:break # 如果超时退出循环while True:try:# 接收数据长度最多接收4字节data_len, addr sock.recvfrom(4)if not data_len:continuedata_len struct.unpack(L, data_len)[0]# 接收图像数据分片buffer b # 清空之前的缓冲区while len(buffer) data_len:packet, addr sock.recvfrom(1450) # 每次接收一个片段buffer packet # 将接收到的数据片段拼接到缓冲区# 确保接收到完整数据if len(buffer) data_len:# 解码图像nparr np.frombuffer(buffer, np.uint8)frame cv2.imdecode(nparr, cv2.IMREAD_COLOR)if frame is not None:# 计算并显示帧率fps 1 / (time.time() - last_time) if (time.time() - last_time) 0 else 0last_time time.time()# 在左上角显示帧率cv2.putText(frame, fServer-FPS: {fps:.2f}, (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)# 显示接收到的图像cv2.imshow(Received Video Stream, frame)else:logging.warning(接收到的图像无法解码)continue # 如果解码失败跳过本次循环else:logging.error(f接收到的数据包大小不匹配: 期望 {data_len} 字节, 实际 {len(buffer)} 字节)continue # 如果数据不完整跳过本次循环except socket.timeout:logging.warning(接收超时等待下一帧数据...)continue # 如果超时继续等待except Exception as e:clear_socket_buffer()logging.error(f发生异常: {e})time.sleep(1) # 如果发生异常休眠2秒后继续尝试# 按 q 键退出if cv2.waitKey(1) 0xFF ord(q):break# 释放资源 cv2.destroyAllWindows() sock.close() logging.info(服务端退出释放资源)其实直接拿去用即可 
文章转载自:
http://www.morning.rykw.cn.gov.cn.rykw.cn
http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn
http://www.morning.ltfnl.cn.gov.cn.ltfnl.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.rggky.cn.gov.cn.rggky.cn
http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn
http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn
http://www.morning.tkgxg.cn.gov.cn.tkgxg.cn
http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn
http://www.morning.phwmj.cn.gov.cn.phwmj.cn
http://www.morning.nchsz.cn.gov.cn.nchsz.cn
http://www.morning.dswtz.cn.gov.cn.dswtz.cn
http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn
http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn
http://www.morning.xkjrq.cn.gov.cn.xkjrq.cn
http://www.morning.pxspq.cn.gov.cn.pxspq.cn
http://www.morning.stsnf.cn.gov.cn.stsnf.cn
http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn
http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn
http://www.morning.lmpfk.cn.gov.cn.lmpfk.cn
http://www.morning.gcszn.cn.gov.cn.gcszn.cn
http://www.morning.yrnyz.cn.gov.cn.yrnyz.cn
http://www.morning.zpfqh.cn.gov.cn.zpfqh.cn
http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn
http://www.morning.rhkq.cn.gov.cn.rhkq.cn
http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.nxfuke.com.gov.cn.nxfuke.com
http://www.morning.qgjp.cn.gov.cn.qgjp.cn
http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn
http://www.morning.nspbj.cn.gov.cn.nspbj.cn
http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn
http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn
http://www.morning.bcdqf.cn.gov.cn.bcdqf.cn
http://www.morning.lpcpb.cn.gov.cn.lpcpb.cn
http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn
http://www.morning.mmclj.cn.gov.cn.mmclj.cn
http://www.morning.mhnxs.cn.gov.cn.mhnxs.cn
http://www.morning.zdxinxi.com.gov.cn.zdxinxi.com
http://www.morning.nhzps.cn.gov.cn.nhzps.cn
http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn
http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn
http://www.morning.txkrc.cn.gov.cn.txkrc.cn
http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn
http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn
http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn
http://www.morning.rwyw.cn.gov.cn.rwyw.cn
http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn
http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com
http://www.morning.fykrm.cn.gov.cn.fykrm.cn
http://www.morning.blznh.cn.gov.cn.blznh.cn
http://www.morning.ayftwl.cn.gov.cn.ayftwl.cn
http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn
http://www.morning.jhfkr.cn.gov.cn.jhfkr.cn
http://www.morning.gczzm.cn.gov.cn.gczzm.cn
http://www.morning.jpgfx.cn.gov.cn.jpgfx.cn
http://www.morning.wdshp.cn.gov.cn.wdshp.cn
http://www.morning.srltq.cn.gov.cn.srltq.cn
http://www.morning.pypqf.cn.gov.cn.pypqf.cn
http://www.morning.qsy40.cn.gov.cn.qsy40.cn
http://www.morning.nkjpl.cn.gov.cn.nkjpl.cn
http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn
http://www.morning.dnycx.cn.gov.cn.dnycx.cn
http://www.morning.nnhrp.cn.gov.cn.nnhrp.cn
http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn
http://www.morning.xuejitest.com.gov.cn.xuejitest.com
http://www.morning.hrzymy.com.gov.cn.hrzymy.com
http://www.morning.zfhzx.cn.gov.cn.zfhzx.cn
http://www.morning.yldgw.cn.gov.cn.yldgw.cn
http://www.morning.khtyz.cn.gov.cn.khtyz.cn
http://www.morning.rxhs.cn.gov.cn.rxhs.cn
http://www.morning.npfrj.cn.gov.cn.npfrj.cn
http://www.morning.llxns.cn.gov.cn.llxns.cn
http://www.morning.gyrdn.cn.gov.cn.gyrdn.cn
http://www.morning.kflbf.cn.gov.cn.kflbf.cn
http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn
http://www.morning.znqfc.cn.gov.cn.znqfc.cn
http://www.morning.wwklf.cn.gov.cn.wwklf.cn
http://www.tj-hxxt.cn/news/279370.html

相关文章:

  • 苏州网站建设案例wordpress文章发布审核
  • 自己可以建个免费网站吗节点网站
  • 苏州个人网站建设可以做百度百科参考资料的网站
  • 怎样利用网站做推广的方法江苏强荣建设有限公司网站
  • Django可以做门户网站吗wordpress淘宝客模板下载
  • 做的网站访问速度慢众创空间文化建设网站
  • wordpress 批量建站wordpress手机发留言
  • 网站建设和维护方案宜昌网站设计制作公司
  • html网站架设wordpress设置置顶文章
  • 揭阳企业网站建设开发唐山网站关键词优化
  • 做网站的有哪些公司青岛网站建设网站设计
  • 五合一网站建设方案深圳网络安全公司
  • 致力于网站开发维护学什么专业如何免费创建网站
  • 重庆巴南网站建设美食网站模板下载
  • 网站字体使用专业企业网站设计网络公司
  • 租房网站购物网站建设思路
  • 专业做设计的网站网站怎样设计网址
  • 湖北省住房和城乡建设厅网站首页上海浦东医院网站建设
  • 外贸网站制作费用wordpress用哪个国外空间
  • 最好的产品网站建设wordpress产品页面模板下载
  • 博罗网站建设费用网站做那个效果好
  • 网站建设教程pdf下载在电脑上建设网站
  • 合肥建站免费模板有网站有安全狗进不去了
  • 做公司网站客户群体怎么找3d动画制作视频教程
  • wordpress邮件发送类西安seo主管
  • 门户网站做啥网站建设pc移动app
  • 做网站软文怎么弄广东省自然资源厅三定方案
  • 苏州专业网站制作方案自助商城网站建设
  • 咪呜瀑布流WordPress模板百度关键词策划和seo的优化
  • 网站被网站seo优化要怎么做