91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: Python
  • 標簽: python3??socket??TCP??

資源簡介

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


評論

共有 條評論