资源简介
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
相关资源
- 续Python3.x+PyQtChart实现数据可视化界面
- pyHook-1.5.1-cp38-cp38-win_amd64.whl
- 个人博客网站源码python3.6+django2.0+my
- openopc for python 3.x
- mod_wsgi.so
- python3抓取头条新闻源码
- _bz2.cpython-37m-x86_64-linux-gnu.so
- PythonTCP编程
- HTMLTestRunner.py python3.6
- python3+selenium实现126邮箱登陆并发送邮
- _sqlite3.cpython-38-x86_64-linux-gnu.rar
- 基于socket的python聊天
- 爬取b站前百视频名称和链接
- 去停用词、测试数据
- 高效爬取微博数据python3实现
- python实现类似于QQ或MSN的聊天系统
- python3.4中文学习手册chm
- python3网络爬虫与开发实战崔庆才PDF百
- python300G视频书籍教程.zip
- PYQT5+图片拖拽
- python3-bayes朴素贝叶斯
- 最近邻kNN-python3源码和数据
- python加django加websocket实现即时通讯
- sublime_package_control-python3.zip
- 02.6.利用Python SOCKET多线程开发FTP软件
- python3.5和python3.6的anaconda,以及pycha
- 廖雪峰最新Python3教程
- 小甲鱼零基础入门学习Python+全套源码
- pygraphviz python3.4 轮子
- python3程序设计习题答案第3版
评论
共有 条评论