色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

libONVIF實(shí)戰(zhàn):從零搭建ONVIF協(xié)議棧的嵌入式開(kāi)發(fā)指南

libONVIF實(shí)戰(zhàn):從零搭建ONVIF協(xié)議棧的嵌入式開(kāi)發(fā)指南 簡(jiǎn)介libONVIF是一個(gè)面向Qt/C開(kāi)發(fā)者的ONVIF協(xié)議實(shí)現(xiàn)庫(kù)致力于隱藏gSOAP的復(fù)雜性并提供融入Qt5優(yōu)點(diǎn)的簡(jiǎn)潔接口適合需要對(duì)接網(wǎng)絡(luò)攝像頭、實(shí)現(xiàn)設(shè)備發(fā)現(xiàn)與媒體流控制的開(kāi)發(fā)者。項(xiàng)目目前處于進(jìn)行中狀態(tài)不承諾二進(jìn)制兼容適合學(xué)習(xí)研究而非生產(chǎn)依賴。壓縮包共一百四十六個(gè)文件以六十多個(gè)頭文件和五十多個(gè)C源文件為主另含少量C文件、nsmap映射文件、CMake構(gòu)建腳本及配置文件整體大小約2.31MB目錄結(jié)構(gòu)清晰。已有一千一百四十三人瀏覽學(xué)習(xí)。通過(guò)該資源可以快速理解ONVIF協(xié)議棧的封裝思路掌握gSOAP代理類、設(shè)備綁定等核心代碼的組織方式并借助附帶的構(gòu)建配置與格式規(guī)范降低上手門檻同時(shí)項(xiàng)目支持跨平臺(tái)編譯代碼結(jié)構(gòu)對(duì)理解安卓、Linux與Windows等環(huán)境下的ONVIF集成很有參考價(jià)值適合有一定C基礎(chǔ)、希望擴(kuò)展網(wǎng)絡(luò)視頻互操作能力的開(kāi)發(fā)者參考。1. 為什么是“另一個(gè)”O(jiān)NVIF庫(kù)先直接給結(jié)論libONVIF是一個(gè)從零實(shí)現(xiàn)ONVIF協(xié)議棧的開(kāi)源C/C庫(kù)目標(biāo)場(chǎng)景是嵌入式設(shè)備端、桌面客戶端和工具鏈開(kāi)發(fā)。我第一次接觸它是在做一個(gè)網(wǎng)絡(luò)攝像機(jī)的私有協(xié)議對(duì)接項(xiàng)目當(dāng)時(shí)手里已經(jīng)有一堆現(xiàn)成的SDK但要么綁定特定廠商芯片要么只支持客戶端拉流遇到一個(gè)需要自己實(shí)現(xiàn)服務(wù)端的場(chǎng)景找了一圈才發(fā)現(xiàn)這個(gè)庫(kù)的價(jià)值。我先把ONVIF協(xié)議對(duì)齊一下免得后面聊偏。ONVIFOpen Network Video Interface Forum開(kāi)放網(wǎng)絡(luò)視頻接口論壇是一套用于網(wǎng)絡(luò)視頻設(shè)備互通的標(biāo)準(zhǔn)化接口規(guī)范覆蓋設(shè)備發(fā)現(xiàn)、媒體配置、PTZ控制、事件告警、視頻分析等。它底層基于Web Service用WSDL定義接口傳輸走SOAP over HTTP/HTTPS設(shè)備發(fā)現(xiàn)走WS-Discovery。很多人在概念上把它當(dāng)成一個(gè)協(xié)議實(shí)際它是一整套“協(xié)議家族”不同Profile如Profile S、Profile G、Profile T分別約束了不同功能子集。那問(wèn)題來(lái)了ONVIF規(guī)范文檔幾百頁(yè)自己照著寫不是不行但工作量巨大而且細(xì)節(jié)坑極多。libONVIF就是在這種背景下出現(xiàn)的“另一種選擇”——它的定位介于“完整參考實(shí)現(xiàn)”和“廠商私有SDK”之間既保留了協(xié)議靈活性又提供了相對(duì)輕量的實(shí)現(xiàn)骨架。不過(guò)先潑一盆冷水這個(gè)庫(kù)早期版本存在代碼結(jié)構(gòu)較亂、注釋偏少、某些Profile覆蓋不全的問(wèn)題文檔也談不上友好。我花了不少時(shí)間讀源碼才摸清它的行為。如果你指望一個(gè)函數(shù)搞定所有設(shè)備接入那它不適合你但如果你需要理解ONVIF服務(wù)端和客戶端的消息流轉(zhuǎn)、想在受限硬件上裁剪協(xié)議棧、或者被廠商SDK綁死想換條路這個(gè)庫(kù)提供的參考價(jià)值非常大。2. ONVIF協(xié)議的核心知識(shí)點(diǎn)2.1 SOAP、WSDL和ONVIF的關(guān)系ONVIF接口從本質(zhì)上是SOAP Web Service。SOAP是一種基于XML的消息協(xié)議它定義了一套信封Envelope、頭Header、體Body結(jié)構(gòu)用來(lái)承載遠(yuǎn)程調(diào)用請(qǐng)求和響應(yīng)。WSDL則是對(duì)Web Service接口的機(jī)器可讀描述文件類似接口說(shuō)明書ONVIF每種服務(wù)的WSDL定義了可供調(diào)用的方法、參數(shù)類型和返回結(jié)構(gòu)。實(shí)際抓包看一次就非常清晰。一次ONVIF的GetDeviceInformation請(qǐng)求發(fā)出去SOAP請(qǐng)求體長(zhǎng)這樣?xml version1.0 encodingUTF-8? soap:Envelope xmlns:soaphttp://www.w3.org/2003/05/soap-envelope xmlns:tdshttp://www.onvif.org/ver10/device/wsdl xmlns:trthttp://www.onvif.org/ver10/media/wsdl xmlns:tthttp://www.onvif.org/ver10/schema soap:Header/ soap:Body tds:GetDeviceInformation tds:Usernameadmin/tds:Username tds:Passwordpass/tds:Password /tds:GetDeviceInformation /soap:Body /soap:Envelope服務(wù)端解析XML執(zhí)行對(duì)應(yīng)邏輯再返回SOAP格式的響應(yīng)里面嵌套著設(shè)備廠商、型號(hào)、固件版本、序列號(hào)等信息。所以O(shè)NVIF開(kāi)發(fā)基本可以拆成兩件事一是生成符合規(guī)范的SOAP消息二是解析返回的SOAP響應(yīng)。libONVIF做的主要事情正是幫你封裝這兩步并附帶設(shè)備管理、媒體配置、PTZ控制等業(yè)務(wù)層的處理邏輯。2.2 WS-Discovery 設(shè)備發(fā)現(xiàn)機(jī)制ONVIF設(shè)備上電后會(huì)在局域網(wǎng)中廣播自己的存在這一機(jī)制來(lái)自WS-Discovery。設(shè)備會(huì)周期性地發(fā)送Hello消息客戶端通過(guò)發(fā)送Probe消息來(lái)探測(cè)局域網(wǎng)內(nèi)支持ONVIF的設(shè)備。設(shè)備收到Probe后會(huì)回復(fù)ProbeMatch并附上自己的XAddr也就是服務(wù)地址。我在實(shí)際調(diào)試中遇到過(guò)不少“能Ping通但ONVIF發(fā)現(xiàn)不到”的情況。大多因?yàn)閮蓚€(gè)原因設(shè)備的WS-Discovery廣播被交換機(jī)的組播過(guò)濾策略攔截或客戶端所在VLAN與設(shè)備不在同一廣播域客戶端發(fā)送的Probe消息沒(méi)有攜帶匹配的Scope或類型設(shè)備選擇不響應(yīng)。libONVIF在設(shè)備發(fā)現(xiàn)這塊也做了封裝但受限于運(yùn)行平臺(tái)嵌入式環(huán)境里普遍依賴第三方庫(kù)來(lái)實(shí)現(xiàn)組播收發(fā)和SOAP棧。我們后面細(xì)聊。2.3 Profile S、Profile G、Profile T 的區(qū)別ONVIF把常用功能按應(yīng)用場(chǎng)景分成了幾類Profile。接入任何一個(gè)設(shè)備前都要先搞清楚它支持哪些Profile這決定你能調(diào)哪些接口。Profile核心能力典型場(chǎng)景常用接口Profile SIP攝像頭基礎(chǔ)流媒體視頻監(jiān)控、錄像GetProfiles、GetStreamUri、StartMulticastProfile G錄像存儲(chǔ)與回放NVR、本地存儲(chǔ)GetRecordings、StartRecordingProfile T高級(jí)視頻編碼與加密配置新一代攝像頭GetVideoEncoderConfigurations、SetVideoEncoderConfigurationProfile C門禁控制門禁系統(tǒng)門禁狀態(tài)、開(kāi)鎖控制Profile A門禁與事件高級(jí)接入綜合安防訪問(wèn)控制策略、事件調(diào)度一個(gè)支持Profile T的攝像頭接口能力通常也會(huì)覆蓋Profile S的大部分內(nèi)容但事件模型、編碼配置方式有明顯增強(qiáng)。開(kāi)發(fā)前一定要通過(guò)GetServices或GetDeviceInformation確認(rèn)設(shè)備實(shí)際支持的Profile否則后面調(diào)接口會(huì)不停收到Action not supported未實(shí)現(xiàn)動(dòng)作錯(cuò)誤。3. libONVIF 的核心架構(gòu)與模塊拆解3.1 分層設(shè)計(jì)與數(shù)據(jù)模型libONVIF的源碼結(jié)構(gòu)大體上分成三層核心層維護(hù)ONVIF數(shù)據(jù)模型包括Device、Profile、VideoSource、VideoEncoder、PTZConfiguration等信息服務(wù)層實(shí)現(xiàn)設(shè)備端需要暴露的服務(wù)邏輯比如DeviceService能力查詢、系統(tǒng)重啟、時(shí)間設(shè)置、MediaService媒體配置、視頻流地址、PTZService云臺(tái)控制、EventService告警訂閱傳輸層處理SOAP消息的編解碼、HTTP/HTTPS傳輸、基礎(chǔ)認(rèn)證與WS-Security。代碼抽象上它大量使用結(jié)構(gòu)體來(lái)承載設(shè)備信息。設(shè)備模型大致有以下關(guān)系Device設(shè)備 ├── Services能力集 ├── Network網(wǎng)絡(luò)配置 ├── System系統(tǒng)信息 ├── Media媒體 │ ├── Profile含多個(gè) │ ├── VideoSource視頻源 │ ├── VideoEncoder編碼器 │ └── AudioSource音頻源 └── PTZ云臺(tái) ├── Configuration配置 └── Presets預(yù)置位這個(gè)數(shù)據(jù)模型與ONVIF規(guī)范中XSD定義的對(duì)象關(guān)系是一一對(duì)應(yīng)的所以讀完整個(gè)結(jié)構(gòu)體就能對(duì)設(shè)備能力有一個(gè)全貌認(rèn)識(shí)。比如Profile中不僅帶有ProfileToken還會(huì)同時(shí)索引到VideoSource、Encoder、PTZ三個(gè)子對(duì)象這也是ONVIF“Profile”概念的關(guān)鍵每個(gè)Profile本質(zhì)是一個(gè)能力組合。3.2 內(nèi)部實(shí)現(xiàn)上的幾個(gè)關(guān)鍵機(jī)制由于ONVIF的每個(gè)功能接口都需要處理大量的XML標(biāo)簽libONVIF在內(nèi)部實(shí)現(xiàn)中通過(guò)一組XML生成和解析工具來(lái)降低重復(fù)工作量。每個(gè)服務(wù)模塊都有對(duì)應(yīng)的請(qǐng)求構(gòu)造函數(shù)和響應(yīng)解析函數(shù)接口名后面基本能看到soap_前綴的函數(shù)。所有功能接口靠設(shè)備上的XAddr定位。ONVIF服務(wù)端啟動(dòng)時(shí)會(huì)在指定端口監(jiān)聽(tīng)HTTP請(qǐng)求根據(jù)SOAP Action分發(fā)到不同服務(wù)。libONVIF的HttpServer模塊實(shí)現(xiàn)了基礎(chǔ)的HTTP解析與路由然后根據(jù)SOAP Action例如http://www.onvif.org/ver10/device/wsdl/GetDeviceInformation調(diào)用對(duì)應(yīng)的業(yè)務(wù)處理函數(shù)。這里我單獨(dú)提一個(gè)點(diǎn)認(rèn)證。ONVIF有兩種常見(jiàn)認(rèn)證方式一種是簡(jiǎn)單的用戶名密碼直接放在SOAP Body里很多老設(shè)備這么干另一種是WS-Security UsernameToken密碼需要做摘要計(jì)算。libONVIF兩者都支持。我在測(cè)試時(shí)發(fā)現(xiàn)部分客戶端工具默認(rèn)只發(fā)WS-Security摘要如果你的庫(kù)只實(shí)現(xiàn)了明文認(rèn)證會(huì)出現(xiàn)“客戶端能發(fā)現(xiàn)設(shè)備、但請(qǐng)求被401拒絕”的現(xiàn)象。3.3 庫(kù)的優(yōu)缺點(diǎn)復(fù)盤優(yōu)點(diǎn)方面它給設(shè)備端開(kāi)發(fā)提供了一個(gè)不依賴商業(yè)SDK的起點(diǎn)代碼結(jié)構(gòu)相對(duì)清晰在Linux和嵌入式Linux上很容易編譯依賴項(xiàng)不算多對(duì)于需要理解協(xié)議本質(zhì)的開(kāi)發(fā)者來(lái)說(shuō)是一份很好的活文檔。缺點(diǎn)也很致命。首先項(xiàng)目更新節(jié)奏不穩(wěn)定有些分支已經(jīng)和最新ONVIF規(guī)范脫節(jié)其次它對(duì)HTTP/2、TLS 1.3等新特性的支持缺失現(xiàn)代設(shè)備使用高級(jí)加密配置時(shí)可能無(wú)法協(xié)商成功最后文檔嚴(yán)重不足很多接口的輸入輸出參數(shù)需要對(duì)著規(guī)范文檔一點(diǎn)點(diǎn)核對(duì)。這些都不妨礙它作為學(xué)習(xí)和二次開(kāi)發(fā)的骨架但要用在生產(chǎn)環(huán)境需要自己補(bǔ)齊不少東西。4. 環(huán)境搭建與快速編譯4.1 依賴準(zhǔn)備libONVIF依賴下面幾個(gè)庫(kù)缺一不可libxml2XML解析與生成libcurlHTTP客戶端傳輸gSOAPSOAP消息序列化/反序列化這是關(guān)鍵依賴opensslHTTPS與證書管理非必須但推薦啟用。在Ubuntu/Debian系統(tǒng)上安裝命令很簡(jiǎn)單sudo apt-get install libxml2-dev libcurl4-openssl-dev libssl-dev gsoap-dev這里特別說(shuō)一下gSOAP。libONVIF的核心代碼很多是gSOAP根據(jù)WSDL自動(dòng)生成的SOAP存根和骨架所以它的編譯和運(yùn)行極度依賴gSOAP的相關(guān)頭文件與動(dòng)態(tài)庫(kù)。如果你編譯中遇到大量和soap_函數(shù)有關(guān)的未定義引用十有八九是gSOAP沒(méi)裝好或版本不匹配。4.2 編譯流程libONVIF本身沒(méi)有特別成熟的構(gòu)建系統(tǒng)不同分支使用不同的構(gòu)建方式。一種常見(jiàn)的方式是仿照其源碼中附帶的Makefile示例make clean make如果源碼根目錄沒(méi)有直接提供Makefile請(qǐng)進(jìn)入lib子目錄查看。我自己的習(xí)慣是新建一個(gè)build目錄手動(dòng)指定庫(kù)路徑避免污染系統(tǒng)目錄mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease -DWITH_OPENSSLON make -j$(nproc)這里有個(gè)值得注意的細(xì)節(jié)很多舊分支壓根沒(méi)有CMakeLists.txt。遇到這種情況我建議先檢查倉(cāng)庫(kù)的README和branch列表優(yōu)先選擇維護(hù)較為活躍的fork而不是自己硬改Makefile。編譯時(shí)如果遇到libxml2相關(guān)錯(cuò)誤先確認(rèn)pkg-config --modversion libxml-2.0能正常輸出版本號(hào)。4.3 編譯后冒煙測(cè)試編譯完畢后先跑一個(gè)最簡(jiǎn)單的能力查詢。libONVIF通常帶示例程序比如bin目錄下的device測(cè)試工具。如果設(shè)備端程序正常啟動(dòng)控制臺(tái)應(yīng)該能看到HTTP服務(wù)綁定端口的日志。拿一臺(tái)真實(shí)ONVIF攝像頭來(lái)測(cè)使用ONVIF Device Manager工具在“設(shè)備發(fā)現(xiàn)”列表中找到這個(gè)設(shè)備。如果發(fā)現(xiàn)不了先不要懷疑代碼回到WS-Discovery的組播IP239.255.255.250和端口3702確認(rèn)網(wǎng)絡(luò)沒(méi)有攔截。我踩過(guò)一個(gè)大坑攝像頭和開(kāi)發(fā)機(jī)在同一個(gè)路由器下但路由器開(kāi)了AP隔離導(dǎo)致設(shè)備可以上網(wǎng)但組播發(fā)現(xiàn)全部失敗。后來(lái)接交換機(jī)直連就一切正常。這種網(wǎng)絡(luò)問(wèn)題會(huì)浪費(fèi)大量時(shí)間排查時(shí)優(yōu)先排除。5. 服務(wù)端開(kāi)發(fā)自己實(shí)現(xiàn)一個(gè)ONVIF設(shè)備5.1 設(shè)備注冊(cè)與服務(wù)啟動(dòng)流程服務(wù)端開(kāi)發(fā)的第一件事是向libONVIF注冊(cè)設(shè)備信息。核心工作是把真實(shí)設(shè)備的能力項(xiàng)配置到庫(kù)的Device模型中。偽代碼大致是這樣// 創(chuàng)建設(shè)備句柄 OnvifDevice *dev onvif_device_new(); // 配置設(shè)備基本信息 onvif_device_set_manufacturer(dev, MyCompany); onvif_device_set_model(dev, IPC-1000); onvif_device_set_firmware_version(dev, 1.0.0); onvif_device_set_serial_number(dev, SN123456); // 注冊(cè)媒體服務(wù) onvif_device_add_media_service(dev, /onvif/media, 8899); // 注冊(cè)PTZ服務(wù) onvif_device_add_ptz_service(dev, /onvif/ptz, 8899); // 啟動(dòng)服務(wù) onvif_device_start(dev);啟動(dòng)后HTTP服務(wù)會(huì)監(jiān)聽(tīng)在對(duì)應(yīng)端口根據(jù)URI路徑和SOAP Action來(lái)分發(fā)請(qǐng)求。這里要注意ONVIF規(guī)范中的XAddr地址必須能被客戶端訪問(wèn)。假如設(shè)備有多個(gè)網(wǎng)口你需要確保注冊(cè)的IP地址與客戶端路由可達(dá)。5.2 關(guān)鍵Token管理ONVIF中最容易讓新手懵的就是各種Token。ProfileToken、VideoSourceToken、VideoEncoderToken、RecordingToken……它們本質(zhì)都是字符串標(biāo)識(shí)符用來(lái)在請(qǐng)求中引用具體配置對(duì)象。開(kāi)發(fā)服務(wù)端時(shí)必須自己定義這些Token的生成規(guī)則并維護(hù)一套映射關(guān)系。我常用這樣的數(shù)據(jù)結(jié)構(gòu)來(lái)管理typedef struct { char token[32]; char video_source_token[32]; char video_encoder_token[32]; int width; int height; int framerate; int bitrate; } MediaProfile;之所以要自己維護(hù)是因?yàn)镺NVIF的大部分接口如GetStreamUri、GetVideoEncoderConfiguration都以Token為入?yún)ⅰH绻阍贕etProfiles里返回了ProfileToken為“MainStream”但GetStreamUri時(shí)內(nèi)部沒(méi)有建立“MainStream - 對(duì)應(yīng)RTSP地址”的映射客戶端就會(huì)獲取不到有效的拉流地址。5.3 如何對(duì)接真實(shí)編碼器與RTSP流libONVIF只負(fù)責(zé)協(xié)議部分不負(fù)責(zé)實(shí)際的視頻采集和編碼。你需要把協(xié)議層和流媒體層對(duì)接起來(lái)。最直接的做法在返回GetStreamUri時(shí)返回一個(gè)自己實(shí)際啟動(dòng)的RTSP地址。舉個(gè)例子攝像頭內(nèi)部如果集成了Live555或者自研RTSP服務(wù)那么const char* get_stream_uri(const char* profile_token) { // 偽代碼根據(jù)Token映射RTSP地址 if (strcmp(profile_token, MainStream) 0) { return rtsp://192.168.1.100:554/main; } else if (strcmp(profile_token, SubStream) 0) { return rtsp://192.168.1.100:554/sub; } return NULL; }然后客戶端比如VLC或ONVIF Device Manager通過(guò)GetStreamUri拿到這個(gè)RTSP地址再來(lái)拉流。如果RTSP服務(wù)和ONVIF服務(wù)不在同一個(gè)端口完全沒(méi)問(wèn)題ONVIF只負(fù)責(zé)把流地址告訴客戶端不直接承載視頻數(shù)據(jù)。5.4 服務(wù)端調(diào)試的實(shí)用技巧在客戶機(jī)上我習(xí)慣開(kāi)啟Wireshark抓包并設(shè)置過(guò)濾條件為tcp.port 8899 || port 3702。這樣能同時(shí)看到WS-Discovery的發(fā)現(xiàn)報(bào)文和SOAP請(qǐng)求響應(yīng)。抓包時(shí)重點(diǎn)關(guān)注SOAP Body中是否包含fault節(jié)點(diǎn)ONVIF的錯(cuò)誤信息通常通過(guò)SOAP Fault返回里面會(huì)有詳細(xì)的錯(cuò)誤碼如Sender、Receiver和原因描述。另外一點(diǎn)很多調(diào)試工具如ONVIF Device Manager默認(rèn)會(huì)先調(diào)用GetCapabilities來(lái)獲取設(shè)備能力。如果這個(gè)接口返回異常整個(gè)客戶端后續(xù)可能連配置界面都打不開(kāi)。所以服務(wù)端最先實(shí)現(xiàn)且務(wù)必實(shí)現(xiàn)正確的一定是GetCapabilities、GetDeviceInformation和GetProfiles這三個(gè)基礎(chǔ)接口。6. 客戶端開(kāi)發(fā)發(fā)現(xiàn)設(shè)備、拉流和控制PTZ6.1 設(shè)備發(fā)現(xiàn)Probe消息的封裝與匹配用libONVIF寫客戶端第一步往往也是設(shè)備發(fā)現(xiàn)。你主動(dòng)發(fā)一個(gè)Probe等待設(shè)備回ProbeMatch。一個(gè)簡(jiǎn)化過(guò)程如下OnvifClient *client onvif_client_new(); onvif_client_probe(client, 3); // 探測(cè)3秒 OnvifDeviceInfo *list NULL; int count onvif_client_get_discovered_devices(client, list); for (int i 0; i count; i) { printf(Device: %s, XAddr: %s\n, list[i].friendly_name, list[i].xaddr); }實(shí)際環(huán)境中局域網(wǎng)內(nèi)同時(shí)存在多臺(tái)設(shè)備需要根據(jù)ProbeMatch中的Scope字段比如mac地址、設(shè)備類型進(jìn)行過(guò)濾。Probe消息中可以攜帶Types如dn:NetworkVideoTransmitter來(lái)限制設(shè)備類型。如果不攜帶任何類型的匹配條件某些設(shè)備會(huì)默認(rèn)忽略該P(yáng)robe導(dǎo)致“發(fā)現(xiàn)不到設(shè)備”。這也是新手最容易踩的坑。6.2 拉流流程全解析拉流是整個(gè)客戶端開(kāi)發(fā)中最常見(jiàn)的需求。ONVIF拉流路徑一般是通過(guò)GetProfiles獲取設(shè)備的Profile列表用ProfileToken調(diào)用GetStreamUri拿到RTSP地址用RTSP客戶端如FFmpeg、GStreamer去拉取視頻流。以下是用libONVIF完成前兩步的示意邏輯OnvifDevice *camera onvif_client_create_device(client, xaddr, username, password); // 獲取第一個(gè)Profile的Token OnvifProfile *profiles NULL; int profile_count onvif_device_get_profiles(camera, profiles); if (profile_count 0) { const char *token profiles[0].token; const char *stream_uri onvif_device_get_stream_uri(camera, token); printf(RTSP URL: %s\n, stream_uri); }拿到RTSP地址后直接調(diào)用FFmpeg的命令行驗(yàn)證ffplay -rtsp_transport tcp rtsp://username:password192.168.1.100:554/main這里我一定要說(shuō)一個(gè)常見(jiàn)問(wèn)題GetStreamUri返回的地址可能帶上了設(shè)備的賬號(hào)密碼也可能不帶具體取決于設(shè)備實(shí)現(xiàn)。如果返回的RTSP地址里沒(méi)有認(rèn)證信息播放時(shí)需要手動(dòng)拼接上用戶名密碼否則其實(shí)是對(duì)的。6.3 PTZ控制實(shí)現(xiàn)PTZ云臺(tái)控制是ONVIF里最“好玩”但也最容易出細(xì)節(jié)問(wèn)題的一部分。常見(jiàn)的操作包括ContinuousMove連續(xù)移動(dòng)、AbsoluteMove絕對(duì)定位、RelativeMove相對(duì)移動(dòng)、SetPreset設(shè)置預(yù)置位、GotoPreset調(diào)用預(yù)置位。libONVIF的PTZ控制入口通常類似這樣// 連續(xù)移動(dòng)向上 OnvifPTZMove move; move.pan 0.0f; move.tilt 1.0f; // 速度歸一化范圍[-1,1] move.zoom 0.0f; onvif_device_ptz_continuous_move(camera, profile_token, move, timeout_seconds); // 停止移動(dòng) onvif_device_ptz_stop(camera, profile_token, 1, 1, 1);注意其中的速度范圍通常是[-1,1]不同設(shè)備對(duì)速度值的響應(yīng)曲線不同。有的設(shè)備對(duì)0.1的tilt速度不動(dòng)作而對(duì)1.0響應(yīng)很快。如果遇到PTZ請(qǐng)求返回成功但云臺(tái)不動(dòng)優(yōu)先用ONVIF Device Manager手動(dòng)調(diào)同一個(gè)Profile看是不是設(shè)備本身云臺(tái)參數(shù)配置受限比如機(jī)械限位或轉(zhuǎn)速設(shè)置過(guò)低。另外PTZ控制是和Profile綁定的。如果Profile沒(méi)有關(guān)聯(lián)PTZConfigurationContinuousMove可能返回錯(cuò)誤碼。所以開(kāi)發(fā)時(shí)務(wù)必在GetProfile里檢查是否包含PTZ配置信息。完整的Profile信息中會(huì)有一個(gè)PTZConfiguration節(jié)點(diǎn)里面有PanTiltLimits、ZoomLimits等參數(shù)這些直接決定你能轉(zhuǎn)動(dòng)的范圍。7. 常見(jiàn)問(wèn)題與調(diào)試經(jīng)驗(yàn)7.1 設(shè)備能被發(fā)現(xiàn)但XAddr連不上這個(gè)問(wèn)題大概率是設(shè)備沒(méi)有把XAddr設(shè)置成客戶端可訪問(wèn)的地址。很多攝像頭默認(rèn)XAddr是http://192.168.x.x:8000/onvif/device_service如果設(shè)備的IP是DHCP動(dòng)態(tài)獲取的客戶端拿到的是舊地址自然連接失敗。解決辦法在代碼中調(diào)用SetNetworkInterfaces或進(jìn)入設(shè)備后臺(tái)固定IP或者開(kāi)發(fā)時(shí)把設(shè)備接到路由器上通過(guò)ARP表確認(rèn)實(shí)際IP后再更新XAddr。很多調(diào)試工具提供了“手工添加設(shè)備XAddr”的功能可以繞開(kāi)發(fā)現(xiàn)階段直接測(cè)試。7.2 WS-Security認(rèn)證失敗這類報(bào)錯(cuò)通常是UsernameToken生成有問(wèn)題。ONVIF認(rèn)證摘要的計(jì)算公式是Digest Base64(SHA1(Nonce CreatedTimestamp Password))其中Nonce是隨機(jī)生成的字符串Created是UTC時(shí)間。如果設(shè)備時(shí)間是北京時(shí)間代碼里卻用本地時(shí)間直接拼接導(dǎo)致創(chuàng)建時(shí)間和設(shè)備時(shí)間不匹配認(rèn)證就會(huì)失敗。更穩(wěn)的做法是先通過(guò)GetSystemDateAndTime校準(zhǔn)設(shè)備時(shí)間再發(fā)起帶認(rèn)證的請(qǐng)求。我遇到過(guò)一批設(shè)備系統(tǒng)時(shí)間漂移嚴(yán)重最后索性所有客戶端請(qǐng)求都先校準(zhǔn)時(shí)間。7.3 SOAP響應(yīng)超時(shí)與重試策略O(shè)NVIF設(shè)備在極端負(fù)載下比如同時(shí)處理碼流和PTZ命令可能會(huì)延遲響應(yīng)。TCP連接建立后如果設(shè)備沒(méi)有及時(shí)返回SOAP響應(yīng)客戶端可能直接超時(shí)。libONVIF的超時(shí)時(shí)間一般可用設(shè)置。onvif_client_set_timeout(client, 5); // 超時(shí)5秒如果超時(shí)頻繁建議區(qū)分不同接口設(shè)置不同超時(shí)時(shí)間。比如GetSystemDateAndTime這種輕量查詢2秒足夠GetSnapshotUri或StartRecording這類涉及存儲(chǔ)或編碼器操作的接口預(yù)留5~10秒會(huì)穩(wěn)妥一些。重試策略也很重要最忌諱的是無(wú)差別無(wú)限重試一旦設(shè)備出現(xiàn)端口掛死反而進(jìn)一步加重負(fù)載。我的習(xí)慣是每種請(qǐng)求最多重試3次兩次重試之間增加隨機(jī)延遲500ms到2s。7.4 抓包分析的一個(gè)典型思路最后分享一個(gè)我覺(jué)得最有用的調(diào)試思路。當(dāng)你拿到一個(gè)“客戶端報(bào)錯(cuò)但不知道是請(qǐng)求格式問(wèn)題還是設(shè)備端問(wèn)題”的情況先在電腦上同時(shí)打開(kāi)Wireshark抓包和ONVIF Device Manager讓它去找設(shè)備。抓包范圍不要只抓ONVIF端口WS-Discovery走的是組播要確保抓到UDP 3702端口的報(bào)文。定位問(wèn)題時(shí)按這個(gè)順序看包有沒(méi)有Hello或ProbeMatch判斷設(shè)備是否在線TCP三次握手成不成功失敗則檢查防火墻看HTTP請(qǐng)求頭中Authorization字段確認(rèn)認(rèn)證是否帶上看SOAP Body是否與ONVIF規(guī)則里的WSDL定義一致看響應(yīng)中是否有SOAP Fault節(jié)點(diǎn)有則直接讀取錯(cuò)誤碼和原因。這套方法幫我排查過(guò)大量“玄學(xué)問(wèn)題”??偨Y(jié)起來(lái)ONVIF開(kāi)發(fā)的核心其實(shí)是“對(duì)照規(guī)范、細(xì)看報(bào)文、梳理狀態(tài)”工具永遠(yuǎn)只是輔助。libONVIF的價(jià)值不單是給你一套可運(yùn)行的代碼更是一份能讓你對(duì)照規(guī)范逐行驗(yàn)證的學(xué)習(xí)圖譜。如果你正準(zhǔn)備接觸ONVIF服務(wù)端或客戶端開(kāi)發(fā)花幾天把它的源碼讀一遍去配合抓包工具觀察一次完整的SOAP交互過(guò)程之后你遇到任何商業(yè)SDK或者自研協(xié)議棧都會(huì)有一種“不過(guò)如此”的踏實(shí)感。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产又黄又粗又猛大片| 日韩午夜啪啪视频| 日产123区精品免费观看| 国产三区免费在线观看| 亚洲久9| 人妻美腿丝袜制服诱惑综合天堂-| 久久精品人人做人人看| 欧美亚洲中文字幕| 欧美精品久久96人妻无码| 亚洲最大的综合性av| 欧美操逼录像国产黄色国产| 久久夜色一区二区| 久操大香蕉| 亚州性色| 亚洲天天自拍| 国产免费小视频| 亚洲色图欧美色图制服丝袜| 开心五月婷婷激情| 亚洲欧美精品国产一区二区| 91中出视频| 人妻人妻天天碰| 91色综| 少妇3P性爱自拍| 91 亚欧| 最新av在线| 另类图片五月| 成人夜夜爽| www久| 国产 码在线成人网站| 日本免费一级AAA大片器| 性色AV蜜色av色欲av| 欧美 亚洲 91| 久草男人天堂| 熟女熟妇一区二区三四区 | 国产9熟妇视频网站| 四虎884a| 久久久久久波多野吉衣高潮| 天天综合有色网| 日韩97超碰中文字幕| 风流老熟女一区二区三区l| 国产区在线| 天堂亚洲精品| 欧美综合天堂| 日本欧美中文字幕| 一区二区乱码福利| 亚洲成人福利电影免费| 一区二区娱乐网站| 中文有码第五页| 日韩ab网 | 超碰国产精品无码| 欧美日韩香蕉| 午夜精品久久久久久久男人的天堂 | 午夜性生活av免费在线看 | 久久综合日韩亚洲欧美| 日韩精品怡红院| 久久久99999久网站| 日韩精品系列| 一二三区精品视频| 91免费看一区二区三区| 国产av强奸美女| 午夜高清成人在线视频| 精品91摸| 超碰69| 久久97视频| 人妻丝袜美腿中文字幕| 肉嘟嘟www视频在线观看高清| a v网站在线播放| 亚洲天堂中文字幕无码男同| 欧美变态激情网| 人人妻人人色一区二区三区| 2017天天拍大香蕉| 色综合久久88色综合久久天天| 婷婷深爱五月| 天天操人人操骚逼网站| 97Ai亚洲| 大香蕉久| 伊人大香蕉在线| jiujiujiujingpin| 96精品久久| 日韩无码a片| 成片免费观看视频大全| 中文字幕-区二区三区四区视频中国| 99国内熟女露脸视频| 一卡二卡在线播放| 八戒午夜福利理论片| 精品区国产区一区二区三区| 欧美日韩国产传媒在线精品| 欧亚韩国999| 亚洲图片欧美色图| 久久久久久久国产a∨| AA丁香综合激情| 国产十八禁视频| 啊啊啊免费| 404操逼福利视频| 久久久久精| 啊啊啊啊好大好硬啊啊啊啊啊| 巨乳特殊服务按摩| 操逼无码一区| 久久亚洲不卡一区二区三区| 男人的天堂2018| 久操在97| 韩日精品四区| 国产噜噜噜噜噜久久久久久久久| 国产精品一区二区三区免费视频| 国产福利第一视频| 国产成人啪一区二区| 日本操逼视频不卡直接放| 日日日日日| 美女91在线观看| 男人久久天堂| 男人天堂一区二区| 97久久综合网| 亚洲成人久久美女| 亚州,欧美在线| www色日本| 久久九精品| 欧美日韩黄片精品在线| 久久久久9久久久久| 少妇久久久久久久久| 五月婷视频| 五十路成人在线视频二区三区| 久久亚州精品成人Av无| 欧美大香蕉97| 波多野结衣AV无码一区| 中文字幕在在线观看网站| 97视频在线播放| 91大学精品激情戏| 中文字幕天堂在线| 中文字幕精品久久久久人妻红杏ⅰ| 成人线上超碰| 久久一区无码| 成人aⅴ一区二区三区| 大香蕉国产中文自拍| 新亚洲无码| 欧美九九99久久精品| 欧美第二页| 久久99操天天日| 青青草这里只有精品| av在线资源| 男人的天堂kva| 国产精品久久久久久片| 久久东京热成人| 综合网欧美在线| 欧美精品宗合| 人人超碰在线观看黄| 91社区拍啪人妻| 亚洲欧美校园| 国产亚洲欧洲在线观看| 婷婷五月色| 热99这里有精品综合久久 | 另类图片五月天| 国产91影院| 高清肉丝中文无码| 草草影院在线视频| 高清国产性猛交xxxx乱大交| 男女无套 免费网站| 国产久久日韩网站导航| 欧美成人黄网色网站| 婷婷探花久久精品一区| 磁力99AV| 99热精品在线| 日本性爱少妇| 在线视频97| 情色五月天网| 国产乱码久久| 黄片直播三级黄片两女一男| av影片在线观看不卡| 超碰久在线天天做| 蜜桃精久三区| 开心五月天激情网| 性色av网站| 少妇久久久久久| 劲爆欧美人妖三区91| 五月丁香影院| 一区二区三区机械有限公司| 欧美日韩性爱电影在线| 97免费在线观看| 天天综合网合集91| 欧美日韩国产电影| 91网站18在线观看| 日韩成人电影AV| 亚瑟国产精品久久无码| 日本成熟少妇A∨网站| 精品人妻一区二区三区不卡断 | 青娱乐黄色录像| 97露脸精品丝袜| 可以免费观看的AV| 五月天玖玖资源站| 亚洲图片偷拍视频区| 操逼视频国产无套| 天天日天天操天天射河南省| 国产欧美在线观看免费观看| 欧美色图 色综合图| 新精精品久久精品| 久久亚洲熟妇在线视频| 久久久久久久九九九九九九| 中文字幕二区日韩天堂| 六月丁香婷| 免费啪啪一级视频| 九九色热| 久久,精品一二三| 色综合久| 97精品国产97久久久久久户外免费| 色综合网1| 国产成人亚洲精品无码古代早漏男| 中国AAAAAA黄色片| 操逼1区| 免费精品人妻一区二区三| 国产精品第一区第一页| 国产精品干干干| 国产亚洲精品无码三区| 日韩国产乱子伦App| 色综合av男人天堂| 乱伦熟女区| 思思在线免费视频| 五月激情小说| 久偷拍| 蜜臀99999| 精品九九九九九九九九九| 伦在线97| 亚洲欧洲激情卡通另类文学四射小说网站 | 女优大全 - 91n| 91丝袜人妻| 91制服丝袜中文字幕| 啊啊啊啊好疼| 亚洲欧美色图| 亚洲成A∨人影院在线欢看| 久久婷婷综合国际产色怕| 99色综合| 欧美天堂超碰97| 视频在线中文字幕| 狠狠干91| 久久首页| 成人国产精品三级A片| 综合熟女| 久久中出在线| 97国产精选| 中国人高清www色视频免费| 国产精品爆乳懂色蜜乳| 欧美另类精品xxxx| 天综合网| 9ⅰ久久久天天| 亚洲国产天堂| 色操逼网| 超碰久久性爱| 伊人96在线| 日本精品五区| 333kkkk·亚洲com久久| 中文字幕五区| 男人把坤坤插入女人的下体| 久久日本熟妇熟色一区| 五月丁香拍拍激情综合三级| 久久精精区一区二区一蜜桃一区二区| 婷婷色网| 91人妻人人澡人人爽人人精品| 日韩av在线精品观看| 国产aⅴ无码片毛片一级网站| 婷婷九月| 青草伊人网| 婷婷av在线中文字幕| 免费黄色片子| 亚洲人久久久网| 综合夜夜| 五月丁香综合啪啪| 高精欧美色| 久久美女国产| 东北女人| 国产精品不卡一区二区三区av| ?亚洲伊人伊成久久人综合网| 91AV老熟女视频| 超碰 欧美| 青娱乐欧美激情一区二区| 日韩精品一二三四| 一区二区三区一亚洲中文字幕、综合区灬 | 亚洲**2021在线观看| 国产精品免费视频不卡| 国产精品一二三| 午夜福利精品| 超碰97在线中文| 高清无码在线播放网站| 少妇同性| 丰满美女一级毛片在线播放| 日韩丝袜人妻AV| 亚洲一二三四区| 天天爽天天| 黄色成年| 丁香五月影院| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 手机不卡视频不卡在线一二三区| 五十路一区无码| 天天插天天操| 青操影院| 操逼网免费无码视频| 精品96久久| 日韩无码视频黄色| 丝袜无码a片| 久久久久九九九| 丁香激情五月| 成人五月天丁香激情综合| 天天插天天干| 97视频在线播放| 天天干天天干天天| 欧美男人天堂| 伊人国产视频| 日本精品高清一二区一本到| 日本高清视频在线观看黄已三辽| 五月丁香色色网| 婷婷丁香人妻 | 美女91色黄18| 久久人妻办公室视频| 精品玖九九久| 久久综合中文国产| 丝袜熟女一区二区三区| 国语少妇精| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 噜噜噜亚洲精| 婷婷久草一区二区三区| 久久久99免费| 加勒比色99999| 亚洲人妻AV| 97超碰超碰| 久操 高清| 口爆吞精在线观看| 欧美日韩在线小说| 国产二区三区粉嫩在线| 日本高清一区二区在线| 激情网色| 色路综合| 蜜臀99999| 无码聚合| 一区二区三区美女超清| 暴力av在线| 99操| 色婷婷五月综合| 亚洲熟伦熟妇AV无码春色| 加勒比人妻综合| 涩涩五月天| 国产精品分类在线观看| 亚洲人久久久久日| 久久久国产精品亚洲精品| 成人日韩欧美| 国产高清26uuu| 日韩综合色图| 欧美色吧综合| 亚洲永久AV无码精品秋霞| 被体育老师抱着c到高潮| 日韩兔费看黄片| 九九av| 免费的av网| 自偷自拍的亚洲视频| 国产亚洲深夜激情| 久久尹人大香焦视| 九九九999久久久网站| 亚洲大胆人体av| 亚洲情色婷婷五月天| 强奸乱伦av电影| 成人性爱AV在线免费观看| 亚洲人天堂| 粉嫩av一区二区三区四季| 91黑丝少妇| 欧亚综合一卡二卡中文字幕| 3p国产欧美99热| 日韩黄片视频试看| 亚洲国产成人精品999| 超碰在线91| 在线啊啊啊| 国产一区二区三区久久精品太古里| 精品丰满人妻一区二区三区免费观| 无码人妻丰满热妇又大又粗| 岛国免费黄色网址| 屁屁影院一区二区三区国产| 看一级特黄a大一片| 国产不良强奸视频免费看| 97干97色| 亚洲无992tv| 婷婷五月天久久久| 中文字幕 码 自拍 视频 区| 九月色婷婷| 亚洲精品人妻吞精av| 人妻人人做人人澡人人爽欧美一区| 丁香婷婷五月| 国产精品又黄又猛又粗| 欧美日韩大黄片| 欧美传媒| 国产亚洲日韩在线三区黑人| 一本一道波多野毛片中文在线| 成人免费视瓶| 欧美日韩黄片精品在线| 欧美日韩亚洲一区二区在线观看| 亚洲国产ⅴ高清在线观看| 亚洲熟女乱色一区二区三区| 最新亚洲人成网站在线影院| 亚洲蜜乳av| 伦伦成年午夜免费视频| 欧美顶级黄片AAAAA在线免费看| 青草青草久热| 25国产精品免费观看| 999在线电影香蕉| 九九九午夜| 91夜夜蜜桃臀1区2区3区| 欧美 熟女 日韩| 狠狠爱AV| 欧美色亚洲| 蘋果手機免費看成人Av| 国产熟码AV| 伊人麻豆传媒| 日本色色视频网站| 亚洲精品啪视频| 337p大胆噜噜噜噜噜91Av| 人妻天堂综合网| 成人熟女视频一区二区三区| 91精品免费| 超碰色大香蕉| AⅤ片水多多| 亚洲AV噜噜狠狠网址蜜桃动漫| 日韩性爱视频免费在线| 综合久草| 97中文字幕一区| 天美精品原创av片国产| 国产绿奴视频在线观看| 五月天激情四射| 成人综合网 欧美| 欧美人妻另类在线| a级免费在线观看| 操逼视频亚洲| 四虎AV无码| 国产高清在线自在拍69| 一级性爱视频免费观看 | 六月色色| 青青草精玖玖69精品| 国产乱子伦一区二区三区免看| 9.1小视频| 亚欧无码线免费观看视频| 国产强奸超碰AV| 欧洲综合视频| 天天干夜夜鈤| 欧美精品自慰系列寂寞少妇| 91九九九小逼| www.av家庭乱伦| 国产亚洲精品美女久久久m| 观看免费区二区三区二| 蜜臀AV一区二区三区| 亚洲色图尤物视频| 99久久久无码| 国产免费小视频| 日本高清_区二区三区 | 五月婷婷影院| 亚洲国产熟妇综合色专区| 大屁股熟女一区二区三区| 国产色图乱伦| 亚州少妇| 精品久久久久综合无码| 91天堂色男人的天堂| 超碰人妻中文在线| 欧亚无码视频| 精品久久久久瑟瑟| 91内射| 三级三级三级日本99| 99蜜月精品久久| 青娱乐亚洲自拍| 欧亚第一综合网| 91社区伊人| 91在线欧色| 最近二区三区视频大全| 亚洲91极品| 性色综合网| 五月丁香色综合| JuliaAnnXXX888| 日韩一级片| 偷拍99| 亚洲色欲天天人妻无码系列专区| 91操熟女视频| 一区二区激情国产熟女| 国产激情视频一区区三区| 精品少妇后入一区二区三区四区人妻巨乳 | 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲成成熟女人综合一区二区| 精品在线观看视频在线| 亚洲天堂久| 亚洲一区二区性爱电影| 欧美人妖内射| 亚洲中文人妻色| 综合伊人网12色| 伊人国产视频| 国产av美女被艹的乱叫| 欧美韩日精品99综合| 五月丁香久久| 3d成人精品一区二区| 亚洲一区二区麻豆影院| 青青操网| 天天色综亚洲91污| 殴美色网| 人妻一区二区三区| 国产精品ⅴ无码大片在线看.| 加勒比综合九九99视频在线播放| 中文字幕久热视频在线| 超碰 欧美| 亚洲欧美大| 一本色道无码DVD中文字幕| A啊啊在线观看| 丝袜熟女一区二区三区| 亚洲日韩美女丝袜美腿人妻视频| 中文字幕天天天天天| 尤物网址| 日韩精品一二三| 天天做天天爱天天爽AV| 户外裸露刺激视频第一区| 精品美女少妇一区二区| 99青青草国产视频| 激情五月天色色网| 蜜乳av一区二区| 欧美色蜜桃97| 天天超级碰碰碰| 久久一二三四五六七八九区区区 | 美女尤物人人操| 日日躁夜夜躁狠狠躁超爽| 欧美久久毛片基地| 翔田千里av一区二区三区| 日韩无码人妻| 青女偷拍网| 91丝袜在线视频| 精品久久一区二区三区四区五区| 顶级丝袜熟女一区二区三区| av三级电影在线播放| 大香蕉色欲AV| 丰满搜索结果 -第18页- 久久高清无码| 日美免费黄片| 国产精品久久妻无码网站| 国际精品久久久| 91 丝袜在线观看| 丝袜内射| 日本不卡卡一区| 99热这里是精品| 人人看人人爰人人操| 精品黄色电影| 国产精品不卡少妇白| 亚洲色图 图片| AV天天综合| 丁香婷婷啪啪| 久久久麻豆精品| 精品午夜福利国产一区二区在线观看| 欧美视频一| 麻豆久久一区二区三区| 97国产|免费| 色偷偷综合91久久噜噜| 亚洲视频二区| 91久久堂| 国产美女激情| 99黄页网站| 欧美成人色| 国产女同性恋视频| 曰本熟女视频| 爱爱久久| 好舒服视频| 亚洲情色在线| 青青草色插素人| 影音先锋一区二区在线资源| 自拍丝袜美腿人妻| 国产美女91视频| 免费网站观看www在线观| 第45页一区二区| 无码人妻丰满熟妇奶水区毛片| 亚洲情色电影网| 91九久| 久久超碰久| 蜜桃成人1区2区3区| 青青草密桃在线播放| 色综合一区二区三巨| 99久久久无码| www.高清无码诱惑一区.com | 天天激情干| 日韩亚洲国产视频| 五月天黄色激情视频| 91强奸乱轮| 婷婷色色网| 日本天天吊| 色天使大香蕉| 天天操天天日天天干| 天天色踪合| 偷窥自拍亚洲| 大JI巴好深好爽又大又粗视频| 91一区二区三区蜜桃| 国产亚洲精品久久久久小| 中文字幕日韩人妻视频| 日韩欧美亚洲一区二区三区影院| 五月丁香综合网| 韩国轻伦国内自拍一区| 色偷综合| 蜜臀久久99精品久久久久久婷婷 | 99热免费| 大香蕉欧美国产日韩高潮| 日本精品九九九| 欧美情色亚洲| 人人操,人人插| 国产免费一区在线观看| 情色av电影| 天天日熟妇| 大奶的诱惑| 岛国免费黄色网址| 亚洲丝袜色| 久久久久密臀视频| 久久伊人影院| 日本操逼视频导航| 91亚洲不卡一区| 久久久久久久久国产| 亚洲欧美色图片| 亚洲AV无码黄色强奸| 亚洲天堂电影精品一区| 亚州九九九精品视频| 亚洲国产97| 成人无码影片视频在线| 91色黑人少妇| 久久无码精品| 成视频在线观看免费看| 四虎视频在线观看| 搡老女人老91妇女老熟女| 亚洲性爱无码乱伦av| 亚洲日韩av一区二区三区百合| 女上位精品在线| 先锋影音av先锋一区| 九九AV| 久久久久幕乱码| 国产日韩欧美中文在线播放| 亚洲欧洲视频小说在线观看| 白嫩妹子国产骚| 在线观看免费视频国产| 97色爱| 国内外内射高清视频| 欧美在线播放aaaa| 肉丝无码中文高清| 无码av永久免费专区网站| 人人污日韩一区二区| 东京热天堂网| 亚洲不卡AV在线| 久热这里只有精品9| 国产精品爽爽va在线观看98| 日韩精品人妻中文字有码在线| 无码137片内射在线影院| 超碰97起碰| 亚洲天天更新| 亚洲最大91网| 亚洲欧美综合| 国产精品 亚洲情色| 九九AV| 中文字幕视频在线观看一区二区| 97精品免费| 91精品电影18| 精品人成视频在线观看| 精品福利视频| 亚洲熟女精品| 韩日精品福利视频一区不卡在线免| 久久 国产 无码| 天天夜夜久久| 久久久久久国产无码精品| 久久久男人的天堂| 日韩欧美国产高清视频| 日韩成人小视频| 国产精品麻豆成人AV艾秋| 97超碰欧美| 亚洲丝袜色图| 十八禁的黄污污免费网站| 日日日色色色色色| 色婷五月| 精品无码一区二区三区色欲| 欧美 日韩 另类 亚洲| 性影在线视频| 超碰在线1234区| 女人高潮抽搐喷水视频网站| 亚洲中文sv| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 色综合中文字幕不卡| 翔田千里AV无码秘 三区| 欧洲中文字幕| 在线精品福利免费播放| 欧洲精品二区| 久插不卡| 久久人人爽人人爽人人片Ⅴ| 亚洲精品九九九| 做爱福利视频一区二区| 黑人精品成人一区二区三区| 久久久亚洲精品中文字幕人妻| 九九色色| 欧美性爱18观看| 啊啊啊啊啊啊啊啊啊在线观看| 国产 丝袜 欧美中文 另类| 亚洲综合色图欧美| 男人的天堂在线2| 性在久久久久久| AV中文字幕三四五| 九九十八精品| 欧美麻豆成人同性GⅤ在线| 欧美亚洲首页| 少妇500双飞99| 一区三区啪啪| 少妇熟女1区2区3区| 午夜AV污污污| 久久天天性久久伊人| 国产成人综合在线播放| 欧美亚洲手机在线| 日韩美女高潮喷水视频| 超碰免费在线| 一区二区三区免费岛国片| 91色图| 美女好片色日本| 亚洲日韩欧美一区二区| 青草青青久久久久久国产| 婷婷丁香五月天亚洲天堂网| 九九九热| 四虎影视国产精品| 97超碰巨乳| 老色69| 久久露脸国产老熟女| 无码操逼视频一下| 国模精品娜娜一二三区| 精品美女久久久久| 啊啊啊啊操死我| 婷婷九月丁香| 欧美在线视频观看一二三四区高清| 丰满翘臀美女影院视频| 午夜丁香婷婷| 91麻豆va国产精品| 乱伦3P视频| 国产网红精品| av在线播放国产一区| 亚洲天堂男人| 97亚洲精品| 好吊色青靑草| 日本大香蕉综合网红本杳社区| 伊人96在线| 久久久免费懂色| 动漫av中文| 久久熟女久| 91 丝袜在线观看| 欧美熟妇亚洲版| 超碰人妻中文在线| 91草草草| 亚洲视频二区 | 日本一级特级毛片视频| 亚洲丝袜诱惑| 精品无码久久久久久久久果冻糖心 | 口爆吞精在线观看| 午夜福利精品| 国产激情av女片自拍| 亚洲美女自拍偷拍视频| 色欲日韩欧美在线一区| 天堂8在线新版官网| WWW黄片COM| 91精品久久久久久77777| 色情综合| av中文在线| 亚洲 日韩 欧美 国产综合体| 99操逼| Julia在线播放亚洲久久| 人妻激情另类| 中文字幕片| 熟女网站最新| AV男人天堂网| 蜜臀99久久国产| 亚洲丝袜综合| 亚洲一区操| 日本色色色色色视频| 国产精品久久久久av| 狠狠综合| 激情露脸爱| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲国产亚洲天堂| 99热一区二区三区四区| 天天看天天日天天操| 久久久久久亚洲Av无码精| 日本免费中文字幕在线| 欧美成人午夜免费福利785| 婷婷午夜| 欧美日韩亚洲天堂网| 无码人妻系列少妇| 天天综合97| 欧美日韩国产三级黄色| 亚洲熟女中文字幕在线| 日韩亚洲美州欧洲综三区一品在线| 日韩人妻网站| 99久在线精品99re8| 97精品网| 午夜福利免费精品视频| 日本天天吊| 欧美极品少妇| 91啦人妻| 日本三级日本三级99| 欧美性,亚州色| 9九九国产| 操国产逼| 香蕉久久国产AV一区二区| 97看操| 国产一区在线播放| 久久久久成人亚洲国产| 毛片17S| 久久这里只精品| 国产女同视频在线播放| 日韩三级一区| 久久精品一区二区三区蜜桃臀| 国产农村妇女精品| 免费看久久久性性| 日本99一区二区| 97亚洲欧美| 91色婷婷综合久久中文字幕二区| 欧美大香蕉97| 不卡在线观看视频| 五月婷婷丁香中文字幕| 9精品在线| 嗯嗯啊啊操我| 亚洲欧洲国产综合av| 亚洲视频一二区| 精品国产乱码久久| 67194国产| 97jingpin| 久久精品国产AV一区二区三区| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 伊人麻豆传媒| 九九热九九| 久久久成人免费av电影| 国产黄片精品在线| 久草资源在线视频官方总站日韩丝袜美腿 | 99re69综合| 亚洲丝袜诱惑| 天天干,夜夜爽| 欧美韩日精品99综合| 久草网站免费在线观看| 欧美白嫩女HD| 国产精品露脸在线观看| 亚洲精品欧美专业| 日韩免费在线观看不卡| 五月天丁香欧洲日韩| 97精| 丝袜狠狠草尤物人妻av91| 五月丁香激情四射| 久操黄色视频| 久久久久国产精品久久久| 夜夜嗨一区二区| 青青在线视频日韩欧美| 久久精品一区二区三区不卡| 国产一区二区在线播放| 99色在线| 91网站18| 日日干夜夜操视频h| 1000部熟女视频在线观看| 艾草av| 国产午夜福利电影免费在线观看| 嗯嗯嗯,草死我| 婷婷在线视频在线观看| 国产成自自拍在线观看| 欧亚性爱在线视频| 屁股久久久久久久久| 久久婷婷综合国际产色怕| 蜜臀网址在线| 女优免费一区二区永久| 欧美精品宗合| 97精品综合久久网| 男女真人网18| 91人人操| 欧美曰韩国产精品| 国产精品婬乱一级毛片彝族| 夜夜嗨一区二区三区三州加勒比| 操一区| 日韩无码一级黄色av片| baiduhicn.com。| 老子午夜伦不卡影院| 超碰97亚洲区| 嗯啊不要啊在线 | AAA久久| 91操熟女| 天天操人人操骚逼网站| 91Chinese在线| 亚洲在线网站| 国产人人干| 91狠婷| 97人人操人人摸| 亚洲天天更新| 九九九九九九视频| 夜夜操狠狠操| 亚洲性爱免费电影| 亚洲丝袜在线观看| 中文字幕人妻色偷偷久久皮| 乱伦熟女区| 亚洲精品一区二区日本| 东北操逼| 久操视频免费在线观看| 吖在线不卡一区二区国产剧情 | www.久久爱| 欧美Aⅴ| 亚洲成成熟女人综合一区二区| 亚洲91色在线| 色五月婷婷在线| 日韩激情啪啪啪| 久久久无码视频| 色哟哟AV| 96免费视频在线| 91校园春色长篇| av在线一区二区三区| 加勒比综合网| 亚洲中文sv| 超碰久久草| 江都AV在线| 五月丁香成人网| 欧美性爱www免费版| 日韩中文字墓| 一区二区三区高清 | 韩国一级婬片A片AAAAA| 午夜无遮挡男女啪啪视频| 日本一区二区三区四区五区六区七区八区九区| 91爱看| 久久本道| 亚洲天堂综合AV| 亚洲欧美中文日韩视频中国语| 国产日韩色综合| 国产精品一区二区a| 日比av无码| 亚欧美综合| 97视频www| 亚洲网自拍| 国产天天骚| 国产农村妇女一区二区| 夜夜草网站| 岛园激情| 日韩AV一起草| 多乙久久久久久| 欧美亚洲尤物久久| 女同女同恋久久级三级| 无码操逼视频一下| 一区二区三区美女超清| 91操操操操| 狠狠操使劲操| 天天草天天日| 在线午夜成人无码视频| 黑人综合网| 亚洲天天在线| 人妻铁牛TV| 成人久久久| 91中文字幕| 97超碰久久| 成·人免费午夜在线观看| 9久热这里只有精品| 成人三级片一区二区三区视频| 欧美同性恋 的搜索结果 - 91n| 久久久天美| 精品熟妇视频一区二区| 国产精品另类| 黄页| 2017av无码免费无线播| 国产精品不卡一区二区三区av| aaa亚无码专区| 你懂的在线观看区国产| 国产综合在线视频网站| 涩涩这里只有精品视频| aaaa少妇高潮大片| 欧美很很操视频| 久久久五月天| 少妇99成人麻豆| 欧美一区二区传媒| a片亚洲一本通视频| 96精品一区| 亚洲天天更新| 在线人成亚洲视频免费观看| 多毛小伙内射老太婆| 精品伊人久久久大香线蕉小说| 亚洲图片偷拍视频区| 黑丝少妇| 亚洲大色堂| 91痴汉| 亚洲男人的天堂va亚洲男人社| 精品人妻一区二区三区日产乱码| 香伊人在线| 人人干人人搞人人摸| 99精品在线| 尤物av网站| 风月影院男女十八禁| 亚洲熟女诱惑| 欧美性爱18观看| 国产做?爰片久久毛片?片美国| 五月综合视频| 亚洲综合99999| 9I1性色影院| 日韩中文字幕国产| 我要看免费韩日黄片| 亚洲综合在线高清| 国产成人啪一区二区| 欧美综合自拍| 无码高清专| 澳门成人网站久国产日韩| 人妻免费观看| 网友自拍第一页| 家庭乱伦性爱av| 亚洲s在线观看| 日韩成人人妻网站| A片大香蕉在线| 五月丁香色色网| 四季AV一区二区凹凸精品小说| 青青草原伊人网| 国产曰批免费观看久久久| 麻豆人妻精品一区二区| 日韩一级二级三级免费看完整版国语版| 夜夜夜爽www精品视频| 日韩在线性爱免费视频| 中文字幕在线观看丝袜| 97视频在线免费播放| 女沟厕偷窥piss小便| 超碰成人国产| 亚洲综合九| 国产精品久久久吖| 婷婷五月天基地| 91碰碰| 在线播放一级无码视频| 久久日韩毛| 一区二区无码视频| 波多野结衣先锋影音| 91最新综合| 激情小说亚洲| 涩五月婷婷| 九九超碰综合网| 无码天天操| 9 7超碰在线免费观看| 久久久久久久久999| 一级免费啪啪片| 熟女久久久| 中文字幕亚洲热播人妻| 亚洲欧洲色情高清| 国产丝袜欧美在线视频| 丰满人妻一区二区三区在线| 日韩熟女精一区二区三区不卡| 欧美 亚洲 偷拍自拍| 日韩综合色网| 国产偷拍自拍在线视频| 九九自拍伦理| 岛国色情视频在线观看| 神马久久久久久久久久久久| yaouchengrenav| oumeisetupian| 午夜啪| 亚洲综合在线高清| 国产成久久综合片| 久草色悠悠在线视频| 91视频精品| 成人色女网| 国产日产精品久久快鸭的功能介绍| 欧美黄色图片| 日婷婷| 97欧美日韩中文| 欧美系列在线一区二区| 亚洲熟女少妇免费视频| 国产又粗又长又爽又色| 啊啊啊 在线| 久草婷婷| 丰满人妻一区二区三区色-百度| 久草精品热视| 高清国产无码av| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久狠狠色噜噜狠狠狠狠97| 蜜臀人妻少妇久久在线观看| 涩涩涩综合| 久久久久久裸体| 99九九精品| 91超碰在线| 久啪| 丁香九月激情| av网站免费看| 九九国产热| 中文字幕 国产 精品| 欧在线一二区| 精彩国产视频播放1区2区| 日韩人妻播放| 九七超碰人人乐| 色哟哟-国产专区| 人人插人人摸人人| 久久久久久十| 一区二区三区日韩欧美 | 婷婷8月天青娱乐| 亚洲最大黄网| 国产精品69人妻无码久久久| 校园春色 亚洲| 国精品一区二区三| 乱伦AVxx| 俄罗斯及免费在线看| 日韩精品三级片长长久久| 六月丁香啪啪| 黄色视频60分钟| 日本一线产区和二线产区伦理片| 国产精品久久久久久夜夜夜| 岛国毛片手机在线观看| suv精产一二三区| 艳尻美人妻| 99热精品免费| av天堂天堂av日韩| 国产AV中文| 天天操天天7| 无码91| 日本国产成人亚洲精品无码| 日韩av无码网站| 欧美97se| 婷婷美人网| 久久天天性久久伊人| 亚洲黄网在哪免费看| 日韩欧美亚欧在线视频| 国产丁香精品露脸视频| 一本一首道人妻少妇免费久久| 激情丁香五月| 亚洲无码AV九九九| 强奸乱伦AV一天堂网| 亚洲 欧美 第一页 | 日韩操逼性鲍| 日韩超碰97| 97在线日韩中文字幕| 亚洲永久永久永久永久一级一级一级精品 | 亚洲免费人妻在| 亚洲性爱免费电影| av亚欧| 超碰九7| 超碰天天去日穴| 亚洲性感丝袜诱惑在线观看| 日日干夜夜操视频h| A V少妇特黄三级| 亚洲欧美精品福利在线| 啪啪AV导航| AV天堂国产| 人妻另类 专区 欧美 制服| 国产视频第二页| 四虎影视国产精品| 男人的天堂无码| 老司机免费视频在线91| 99re9这里只有精品| 按摩中文字幕| 精品四五区| 欧插网站| 欧美日韩丝袜| 国产免费一区二区三区最新不卡| 2020国产精品| 在线看免费无码AV天堂的| 日本一区二区成人在线| 精品高清一区二区三区三州| 亚洲无码超碰免费| A级片日韩欧美国产欧美视频精选观看 | 少妇综合| 欧美一级A一级a爱片久久| 97碰碰色| www.91理论| 亚洲 自拍偷拍 欧美| 亚洲乱色熟女一区| 100啪啪视频大全| 国产综合色精品在线观看| 国产乱伦视频污| 一级婬片120分钟试看| 夜夜草天天| 国产精品午夜福利亚洲综合网| 天天上日日上日韩精品| 乱伦一二三| 最新av网站在线观看| 大香蕉黄色一级片免费看| 精品成人无码| 97精品熟女少妇一区| 屁屁影院一区二区三区国产| 精品在线观看视频在线| 国产精品亚洲免费| 亚洲色色色| 99色悠悠|