python3從網(wǎng)絡(luò)攝像機解析mjpeg http流的示例
前言
網(wǎng)絡(luò)攝像頭的視頻流解析直接使用通過http的Mjpeg是具有邊界幀信息的multipart / x-mixed-replace,而jpeg數(shù)據(jù)只是以二進制形式發(fā)送。因此,實際上不需要關(guān)心HTTP協(xié)議標頭。所有jpeg幀均以marker開頭,0xff 0xd8并以結(jié)尾0xff 0xd9。因此,上面的代碼從http流中提取了此類幀,并將其一一解碼。像下面
...(http) 0xff 0xd8 --| [jpeg data] |--this part is extracted and decoded 0xff 0xd9 --| ...(http) 0xff 0xd8 --| [jpeg data] |--this part is extracted and decoded 0xff 0xd9 --| ...(http)
如果圖像的獲取是從tcp網(wǎng)絡(luò)中傳輸?shù)奖镜剡M行解析需要對bytes類型數(shù)據(jù)進行解碼
在使用OpenCV直接調(diào)用網(wǎng)絡(luò)攝像頭時可能會出現(xiàn)
Cam not found
這時候就需要下面這種辦法
代碼:
幀解析
import cv2 cap = cv2.VideoCapture('http://localhost:8080/frame.mjpg') while True: ret, frame = cap.read() print(frame) if ret == True: cv2.imshow('Video', frame) if cv2.waitKey(1) == 27: exit(0)
視頻流解析
import cv2 import requests import numpy as np r = requests.get('http://192.168.1.xx/mjpeg.cgi', auth=('user', 'password'), stream=True) if(r.status_code == 200): bytes = bytes() for chunk in r.iter_content(chunk_size=1024): bytes += chunk a = bytes.find(b'\xff\xd8') b = bytes.find(b'\xff\xd9') if a != -1 and b != -1: jpg = bytes[a:b+2] bytes = bytes[b+2:] i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR) cv2.imshow('i', i) if cv2.waitKey(1) == 27: exit(0) else: print("Received unexpected status code {}".format(r.status_code))
以上就是python3從網(wǎng)絡(luò)攝像機解析mjpeg http流的示例的詳細內(nèi)容,更多關(guān)于python 解析mjpeg http流的資料請關(guān)注腳本之家其它相關(guān)文章!
- 詳談python http長連接客戶端
- Python HTTP客戶端自定義Cookie實現(xiàn)實例
- 使用httplib模塊來制作Python下HTTP客戶端的方法
- 使用基于Python的Tornado框架的HTTP客戶端的教程
- 如何用python實現(xiàn)一個HTTP連接池
- Python Http請求json解析庫用法解析
- 基于Python模擬瀏覽器發(fā)送http請求
- Python requests HTTP驗證登錄實現(xiàn)流程
- Python實現(xiàn)http接口自動化測試的示例代碼
- 詳解用python -m http.server搭一個簡易的本地局域網(wǎng)
- python用700行代碼實現(xiàn)http客戶端
相關(guān)文章
對python打亂數(shù)據(jù)集中X,y標簽對的方法詳解
今天就為大家分享一篇對python打亂數(shù)據(jù)集中X,y標簽對的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python3.4實現(xiàn)從HTTP代理網(wǎng)站批量獲取代理并篩選的方法示例
這篇文章主要介紹了Python3.4實現(xiàn)從HTTP代理網(wǎng)站批量獲取代理并篩選的方法,涉及Python網(wǎng)絡(luò)連接、讀取、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Python實現(xiàn)的讀取文件內(nèi)容并寫入其他文件操作示例
這篇文章主要介紹了Python實現(xiàn)的讀取文件內(nèi)容并寫入其他文件操作,結(jié)合實例形式分析了Python文件讀寫操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-04-04在Linux系統(tǒng)上通過uWSGI配置Nginx+Python環(huán)境的教程
這篇文章主要介紹了在Linux系統(tǒng)上通過uWSGI配置Nginx+Python環(huán)境的教程,示例中為Ubuntu系統(tǒng)并且默認使用系統(tǒng)中自帶的Python解釋器,需要的朋友可以參考下2015-12-12