婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python使用UDP實現720p視頻傳輸的操作

Python使用UDP實現720p視頻傳輸的操作

熱門標簽:上海機器人外呼系統哪家好 浙江電銷卡外呼系統好用嗎 南京銷售外呼系統軟件 地圖標注的意義點 地圖制圖標注位置改變是移位嗎 房產電銷外呼系統 地圖標注微信發送位置不顯示 蓋州市地圖標注 315電話機器人廣告

1. 項目背景

視頻傳輸: 在一臺電腦上播放視頻(捕捉攝像頭畫面),同局域網內另一臺電腦上實時播放,盡量不卡頓。

先放最后的照片,和用gif展示一下視頻效果。

傳輸視頻可以采取圖片或者流的形式,本文采取傳輸圖片的形式,在1s之內顯示多張圖片從而形成連續的視頻畫面。

經費有限,所有實驗均基于筆記本電腦。

使用的視頻源是本機攝像頭,以及進擊的巨人720p資源。

2. 解決方案

1. 使用Python的Socket,使用opencv捕捉攝像頭/視頻的畫面。

2. 原始的圖片很大(720p的大小是1920*1080*3),整圖就算壓縮成jpg格式其大小也非常大。而UDP最大只能傳輸65535字節大小的數據區,故對圖片進行分塊,分塊過后的數據壓縮成jpg格式,并對圖片分塊數據進行編號。

3. 實驗檢測表明,本文實驗環境發送端不需要使用發送隊列,基本上新生成的幀很快就能被socket傳輸掉。

4. 接收端使用多線程接收,每個線程是一個socket,接收過后的數據存儲于數據片池。

5. 接收端另開一個線程,用于反復從數據片池 讀取數據片,根據數據片的編號更新幕布,這里幕布是專門用于圖像顯示的一個數組,其維度是720p(1920*1080*3)。更新過后的結果暫存于圖片池

6. 主線程反復從圖片池讀取圖片,并顯示。

3. 實現細節

3.1 TCP/UDP的選擇

為了實現低延遲,毫無疑問選取無連接的UDP傳輸。

3.2 圖片分片算法

這里其實也談不上什么算法,就是將圖片水平分割。這種做法的好處在于,分割后圖片的編號可以和區域一一對應。本文沒有探索更為復雜的圖片分片算法。

經過處理,圖片變為一個個分片,如下:

對上述圖片進行編號,很顯然可以編號0,1,2,3,對于任意分塊(例如2)在圖像數組中對應的區域是frame[2*piece_size:(2+1)*piece_size],其中piece_size表示一片數據的大小。

這種對應關系方便解壓后的圖像還原操作。

3.3 JPG壓縮

這其實是個很小的技術點,因為使用的壓縮算法都是現成的。但是值得一提的是,JPG的壓縮率是真的高,在實驗數據上實現了10-20倍的壓縮率。

使用了多線程壓縮,壓縮完過后,更新對應的桶,這里的桶實際上就是數據片。

由主線程Main Thread反復從桶里取數據片(t1),每取1片發送一次,然后再取下一片(t2),直到所有桶都被取了一次(例子中有10片)。

至此,一張圖片的分片數據被全部取完,于是開始統計一些FPS相關信息。

3.4 接收隊列

接收端開了10個線程用于異步socket接收數據片。

為了保證接收端產生絲滑的視頻效果,使用接收隊列是個不錯的選擇。本文使用了2個隊列的設計。實現數據接收的二級緩沖。示意圖如下:

這樣一來,視頻效果明顯絲滑了很多。

4. 遇到的坑及解決辦法

4.1. Windows防火墻

巨坑,最好都關了。

4.2. 路由器網絡頻段

同一臺路由器的5G和2.4G頻段有時候不能互相ping通,要確保兩個電腦連接在同一頻段上。

4.3. Wifi配置

如果上述設置都對了,但是還是ping不通。將wifi連接設置成專用網絡,也許就能解決問題。

4.4. 硬件瓶頸

個人PC的性能是較大瓶頸,尤其是單機測驗的時候(本地兩個終端,一個發送、一個接收),CPU使用率分分鐘到100%。聽某個技術大哥說要使用GPU壓縮。

用兩臺電腦,一臺接收一臺發送之后,效果要好很多。

4.5. OpenCV讀取攝像頭大坑

由于攝像頭驅動的關系,在我的電腦上需要設置以下兩個變量,才能成功啟用外置的720p攝像頭。

	os.environ["OPENCV_VIDEOIO_DEBUG"] = "1"
	os.environ["OPENCV_VIDEOIO_PRIORITY_MSMF"] = "0"

即使如此,如果不做額外的設置,讀出來的圖片將是480p的(看起來很像是720p被壓縮過后的)。所以如果要傳輸真·720p,還需要設置讀出的圖像大小,如下:

	self.stream = cv2.VideoCapture(1) # 讀取第一個外置攝像頭
	self.stream.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)   # float
	self.stream.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)   # float

4.6. Socket卡頓

不知道是不是我寫的有問題,感覺多線程的socket會爭搶資源(發送和接收的線程間,對應5.1節功能),造成接收端的畫面顯示將變得卡頓。

5. 尚未Bug Free的功能

5.1 使用TCP回傳幀率信息

為了計算網絡時延,采取類似伽利略測光速的方法。從數據包打包之前,到對方收到數據包之后,再將這個數據回傳到發送方。

這樣就不存在兩臺機器時間差校準的問題。

該算法的大致流程如下圖所示。

這種計算方式應該是自己的實驗環境下比較準確的方法了。

時延信息的反饋不需要特別快(比如200-500ms發送一次),所以使用TCP技術

其實TCP和UDP在使用Python編程的時候代碼差距可以說極小…

但是!!!

自己目前在實現信息回傳的時候,會莫名卡頓起來。

接收端建立回傳的socket之后,甚至還沒傳輸數據,整個程序運行起來就變得非常卡頓,這個讓我比較苦惱,目前正在找bug.

5.2 擁塞控制 (流量控制)的算法

這部分的思想是流量控制,感謝評論區指正。

5.1節如果一并回傳接收端隊列狀態信息。如果接收端隊列太滿,說明來不及處理視頻幀了,從而對發送端的發送速度進行控制,才是“擁塞控制”

這個本來是想著和5.1綜合起來用的,已經寫好了,但是還沒能真正展現價值,設計是否合理也值得商榷。

控制的是發送端的發送頻率,從而實現接收端的流暢播放

思想和TCP的擁塞控制一樣慢增長,快下降。如果接收端的隊列一直處于較空的狀態,則表明還有一定的性能剩余,此時可以緩慢加快發送的頻率;如果檢測到接收端隊列中數據較多,表明發送速度太快來不及顯示,這時候就大幅下降發送的頻率。

這個擁塞控制的算法基于幾個假設:

1.網絡情況良好,丟包率比較低;

2接收端電腦的性能足夠高,來得及處理解包、顯示圖像。

如果5.1能夠正確實現,則應該根據網絡時延的大小來控制發送的頻率。

6. 總結

這個項目是一周的時間內完成的,目前還有點bug。小組內的成員分別在不同技術方向上進行了探索,收獲都還挺大的。這篇博客就當一個項目總結吧,寫的難免有紕漏之處。

github地址:https://github.com/820fans/UDP-Video-Transfer

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python+uiautomator2實現自動刷抖音視頻功能
  • Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜
  • 如何用python反轉圖片,視頻
  • python基于tkinter制作m3u8視頻下載工具
  • 寫一個Python腳本自動爬取Bilibili小視頻
  • 用python制作詞云視頻詳解
  • Python通過m3u8文件下載合并ts視頻的操作
  • 用Python制作燈光秀短視頻的思路詳解
  • Python從視頻中提取音頻的操作
  • python爬取梨視頻生活板塊最熱視頻
  • 教你如何使用Python下載B站視頻的詳細教程

標簽:陽泉 赤峰 金華 貴州 臨汾 克拉瑪依 雙鴨山 日照

巨人網絡通訊聲明:本文標題《Python使用UDP實現720p視頻傳輸的操作》,本文關鍵詞  Python,使用,UDP,實現,720p,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python使用UDP實現720p視頻傳輸的操作》相關的同類信息!
  • 本頁收集關于Python使用UDP實現720p視頻傳輸的操作的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    丁香婷婷综合五月| 99精品国产91久久久久久| 色综合av在线| 久久久夜色精品亚洲| 日韩高清中文字幕一区| 91网址在线看| 亚洲精品欧美在线| 色香蕉久久蜜桃| 亚洲va欧美va人人爽| 欧美在线影院一区二区| 亚洲同性gay激情无套| 99精品视频一区二区| 综合久久久久久久| 在线精品视频小说1| 亚洲一级片在线观看| 在线观看91av| 麻豆国产精品777777在线| 日韩欧美久久一区| 国产成人在线视频免费播放| 欧美极品aⅴ影院| 成人教育av在线| 国产精品人妖ts系列视频| 91麻豆swag| 亚洲国产成人av网| 91久久国产综合久久| 亚洲国产美女搞黄色| 91精品国产一区二区人妖| 久久99精品国产麻豆婷婷洗澡| 久久欧美中文字幕| 国产999精品久久| 亚洲欧洲av色图| 欧美日本免费一区二区三区| 久久精品久久精品| 国产欧美精品在线观看| 成人福利视频网站| 午夜av区久久| 国产精品久久久爽爽爽麻豆色哟哟| 欧美亚一区二区| 国产伦精品一区二区三区免费 | 国产精品美女久久久久久久久久久 | 亚洲精品高清视频在线观看| 欧美一区二区三区影视| 99re这里只有精品视频首页| 日本美女一区二区三区| 国产精品久99| www国产亚洲精品久久麻豆| 成人激情综合网站| 色综合一区二区| 男女男精品视频| 国产精品久久久久7777按摩| 日韩片之四级片| 欧美视频一区在线观看| 国产精品69毛片高清亚洲| 亚洲成人自拍偷拍| 亚洲色图一区二区三区| 久久嫩草精品久久久精品| 欧美福利视频导航| 日本精品裸体写真集在线观看 | 亚洲天堂精品视频| 精品三级在线看| 色国产精品一区在线观看| 日日嗨av一区二区三区四区| 日韩美女精品在线| 国产欧美日韩中文久久| 日韩免费一区二区三区在线播放| 欧美午夜精品免费| 一道本成人在线| 东方aⅴ免费观看久久av| 激情五月激情综合网| 蜜乳av一区二区| 另类欧美日韩国产在线| 亚洲成人资源在线| 香蕉影视欧美成人| 五月天激情综合网| 日韩成人av影视| 日本午夜精品一区二区三区电影| 性做久久久久久免费观看欧美| 亚洲婷婷在线视频| 亚洲高清免费在线| 日日摸夜夜添夜夜添国产精品| 一区二区激情小说| 亚洲一区视频在线| 日本最新不卡在线| 久久电影网电视剧免费观看| 韩国精品一区二区| 国产专区欧美精品| www.66久久| 欧美午夜寂寞影院| 日韩欧美国产1| 日韩色视频在线观看| 欧美精品一区二区精品网| 久久午夜羞羞影院免费观看| 国产欧美日韩不卡| 国产精品免费网站在线观看| 国产精品午夜春色av| 亚洲综合视频在线| 视频一区二区三区中文字幕| 精品一区二区日韩| 9久草视频在线视频精品| 99视频超级精品| 欧美撒尿777hd撒尿| 日韩一级完整毛片| 国产欧美日韩精品一区| 夜夜嗨av一区二区三区网页 | 日本va欧美va欧美va精品| 日韩精品电影在线观看| 久久99精品国产91久久来源| 精品午夜久久福利影院| 99re在线精品| 日韩欧美一级在线播放| 在线播放亚洲一区| 国产亚洲欧美在线| 亚洲一区视频在线| 国产福利一区二区三区视频在线| 欧美视频一区二区三区| 日韩精品一区二区三区四区| 亚洲精品日日夜夜| 国产综合色视频| 欧美美女直播网站| 国产亚洲午夜高清国产拍精品| 洋洋成人永久网站入口| 99久免费精品视频在线观看| 欧美一级xxx| 亚洲一区二区精品久久av| 懂色一区二区三区免费观看| 久久综合色8888| 天天影视涩香欲综合网| eeuss鲁片一区二区三区在线看| 欧美日韩在线一区二区| 亚洲欧美国产77777| 激情偷乱视频一区二区三区| 欧美在线高清视频| 国产日产欧美精品一区二区三区| 午夜精品福利久久久| 高清不卡一区二区| 欧美mv日韩mv国产网站| 一区二区免费在线| av在线一区二区三区| 精品久久久久久综合日本欧美| 亚洲成av人综合在线观看| 精品一区二区影视| 91麻豆国产在线观看| 538prom精品视频线放| 中文字幕av一区二区三区| 亚洲动漫第一页| 亚洲国产综合91精品麻豆| 五月天婷婷综合| 裸体在线国模精品偷拍| 国产成人精品www牛牛影视| 久久嫩草精品久久久精品一| 亚洲精品va在线观看| 日韩成人免费在线| 91玉足脚交白嫩脚丫在线播放| 国产精品视频在线看| 成人在线视频一区二区| 欧美三级乱人伦电影| 日韩精品在线一区二区| 亚洲欧洲av一区二区三区久久| 亚洲国产精品久久不卡毛片 | 日韩视频在线一区二区| 国产无人区一区二区三区| 成人免费观看av| 亚洲黄一区二区三区| 亚洲va国产天堂va久久en| 国产91清纯白嫩初高中在线观看 | 久久色.com| 国产99久久久精品| 日韩美一区二区三区| 久久99精品久久久久久久久久久久 | 99精品桃花视频在线观看| 亚洲国产毛片aaaaa无费看| 午夜精品福利一区二区三区蜜桃| 日韩午夜电影在线观看| 91精品国产色综合久久不卡电影 | 日韩免费成人网| av成人动漫在线观看| 国产三级一区二区| 日本精品一区二区三区高清 | 日韩av在线播放中文字幕| 日韩女优视频免费观看| 成人动漫一区二区| 欧美国产激情二区三区| 91精品在线观看入口| 亚洲r级在线视频| 日本sm残虐另类| 91精品国模一区二区三区| 亚洲一区在线视频观看| 在线免费观看日韩欧美| 亚洲一区二区四区蜜桃| 国产成人精品三级| 日本va欧美va瓶| 精品国产精品网麻豆系列| 日日夜夜免费精品| 亚洲狼人国产精品| 色综合中文综合网| 日韩一区精品字幕| 一级女性全黄久久生活片免费| 91老师片黄在线观看| 成人网在线播放| 洋洋av久久久久久久一区|