资源简介
python 3.6 socket传输视频 ,采用TCP传输的方式,实现服务器和客服端视频传输

代码片段和文件信息
import socket
import cv2
import threading
import struct
import numpy
#TCP连接
#1. 客户端连接端口后,首先发送需要协商的分辨率和帧数,以致能够使传输“协议”一致
#2. 客户端使用线程,对图片进行收集
#3. 对收到的每一张图片进行解码,并利用OpenCV播放出来,即可实现C/S两端实时视频传输。
#4 利用服务器端打开端口8880,此时客户端连接后,便可以在客户端中捕获到服务器端的视频。
class Camera_Connect_object: #定义一个摄像头类
def __init__(selfD_addr_port=[““8880]): #类的构造函数,当创建了这个类的实例时就会调用该方法
self.resolution=[640480] #self 代表类的实例
self.addr_port=D_addr_port #绑定的端口和ip
self.src=888+15 #双方确定传输帧数,(888)为校验值
self.interval=0 #图片播放时间间隔
self.img_fps=15 #每秒传输多少帧数
def Socket_Connect(self):
self.client=socket.socket(socket.AF_INETsocket.SOCK_STREAM) # 选择TCP连接方式
self.client.setsockopt(socket.SOL_SOCKETsocket.SO_REUSEADDR1) # 操作系统会在服务器socket被关闭或服务器进程终止后马上释放该服务器的端口,否则操作系统会保留几分钟该端口。
self.client.connect(self.addr_port) #连接对应的端口位置,包括IP和端口,传输给客户端
print(“IP is %s:%d“ % (self.addr_port[0]self.addr_port[1])) #输入连接的IP和端口号
def RT_Image(self):
self.name=self.addr_port[0]+“ Camera“
self.client.send(struct.pack(“lhh“ self.src self.resolution[0] self.resolution[1])) #按照格式打包发送帧数和分辨率
while(1):
info=struct.unpack(“lhh“self.client.recv(8)) #将接收到的8位二进制解包
buf_size=info[0] #获取读的图片总长度
if buf_size:
try:
self.buf=b““ #代表bytes类型
temp_buf=self.buf
while(buf_size): #读取每一张图片的长度
temp_buf=self.client.recv(buf_size)
buf_size-=len(temp_buf)
self.buf+=temp_buf #获取图片
data = numpy.fromstring(self.buf dtype=‘uint8‘) #按uint8转换为图像矩阵
self.image = cv2.imdecode(data 1) #图像解码
cv2.imshow(self.name self.image) #展示图片
except:
pass;
finally:
if(cv2.waitKey(10)==27): #每10ms刷新一次图片,按‘ESC’(27)退出
self.client.close()
cv2.destroyAllWindows()
break
def Get_Data(selfinterval):
showThread=threading.Thread(target=self.RT_Image)
showThread.start()
if __name__ == ‘__main__‘:
camera=Camera_Connect_object()
camera.addr_port[0]=input(“Please input IP:“)
camera.addr_port=tuple(camera.addr_port)
camera.So
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3807 2018-05-13 17:05 SOCKET传输视频\video_C.py
文件 3605 2018-05-13 17:33 SOCKET传输视频\video_S.py
目录 0 2018-05-23 17:13 SOCKET传输视频
----------- --------- ---------- ----- ----
7412 3
相关资源
- pywin32_python3.6_64位
- python socket游戏
- 一个高性能的同时支持websocket/http/t
- python3环境搭建教程.ppt
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- python3.5.2.chm官方文档
- python3.5.4_windows下32与64位安装包
- GitHack-python3.zip
- Python3.x+PyQtChart实现数据可视化界面
- python3根据模板图片批量自动制作个性
- 《机器学习实战》源代码Python3
- Python3.5.2的IDLE汉化版计算机等级考试
- python3.5 百度ai人脸识别
- python3实现的国密SM2+SM3
- python100道面试题及解答全部答案 pyc
- #python3.3关于Tk中的Treeview使用方法
- Python3.x+Pyqt5实现界面编程浏览网页
- 《机器学习实战》Python3代码
- Python3学习笔记
- Python3.7.2中文文档-标准库-通用操作系
- Python3.7.2中文文档-标准库-Python数据类
- python3基础教程第三版高清
- 随机森林python3实现代码(带数据集)
- dlib-19.18.0-cp37-cp37m-linux_armv7l.whl
- python3学习路线+思维导图
- Learn python3 the hard way
- 笨办法学python 3 第四版 英文
- python3爬虫
- Beginning Python: From Novice to Professional
评论
共有 条评论