SDK開發(fā)--->設(shè)備網(wǎng)絡(luò)SDK_Python_Linux64_V3.052.0000002.0.R.2" />
        <kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          onvif協(xié)議控制攝像頭轉(zhuǎn)動 您所在的位置:網(wǎng)站首頁 屬羊人起名偏旁 onvif協(xié)議控制攝像頭轉(zhuǎn)動

          onvif協(xié)議控制攝像頭轉(zhuǎn)動

          2023-06-08 10:02| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          一? 大華官方SDK demo測試連接攝像頭 下載SDK

          從大華官網(wǎng)(https://www.dahuatech.com/)找到服務(wù)支持--->SDK開發(fā)--->設(shè)備網(wǎng)絡(luò)SDK_Python_Linux64_V3.052.0000002.0.R.201103(自己電腦環(huán)境對應(yīng)版本)

          demo測試連接

          利用RealPlayDemo.py測試攝像頭連接,修改配置該文件中的攝像頭信息

          二 利用onvif協(xié)議控制攝像頭轉(zhuǎn)動 onvif協(xié)議

          2008年5月,由安訊士(AXIS)聯(lián)合博世(BOSCH)及索尼(SONY)公司三方宣布攜手共同成立一個國際開放型網(wǎng)絡(luò)視頻產(chǎn)品標(biāo)準(zhǔn)網(wǎng)絡(luò)接口開發(fā)論壇,取名為ONVIF(Open Network Video Interface Forum,開放型網(wǎng)絡(luò)視頻接口論壇)并以公開、開放的原則共同制定開放性行業(yè)標(biāo)準(zhǔn)。ONVIF標(biāo)準(zhǔn)將為網(wǎng)絡(luò)視頻設(shè)備之間的信息交換定義通用協(xié)議,包括裝置搜尋、實時視頻、音頻、元數(shù)據(jù)和控制信息等。

          ? ??ONVIF規(guī)范中設(shè)備管理和控制部分所定義的接口均以Web Services的形式提供,設(shè)備作為服務(wù)提供者為服務(wù)端。ONVIF規(guī)范涵蓋了完全的基于XML及WSDL的定義。每一個支持ONVIF規(guī)范的終端設(shè)備均須提供與功能相應(yīng)的Web Service。服務(wù)端與客戶端的數(shù)據(jù)交互采用SOAP協(xié)議。ONVIF中的其他部分比如音視頻流則通過RTP/RTSP進(jìn)行 。

          Web Services

          Web Service是基于網(wǎng)絡(luò)的、分布式的模塊化組件,執(zhí)行特定的任務(wù)。Web Service 主要利用HTTP 和SOAP 協(xié)議使數(shù)據(jù)在Web 上傳輸。Web 用戶能夠使用 SOAP 和 HTTP通過Web 調(diào)用的方法來調(diào)用遠(yuǎn)程對象。?

          Web Service是基于XML和HTTPS的一種服務(wù),其通信協(xié)議主要基于SOAP。服務(wù)端、客戶端以傳遞符合XML的SOAP消息實現(xiàn)服務(wù)的請求與回應(yīng)。

          客戶端根據(jù)?WSDL?描述文檔,會生成一個?SOAP?請求消息,該請求會被嵌入在一個HTTP POST請求中,發(fā)送到Web Services?所在的Web?服務(wù)器。Web Services?請求處理器解析收到的?SOAP?請求,調(diào)用相應(yīng)的?Web Services。然后再生成相應(yīng)的SOAP?應(yīng)答。Web?服務(wù)器得到?SOAP?應(yīng)答后,會再通過?HTTP應(yīng)答的方式把信息送回到客戶端。

          控制攝像頭轉(zhuǎn)動

          (下面為部分引用測試代碼)

          from time import sleep from onvif import ONVIFCamera import zeep XMAX = 1 XMIN = -1 YMAX = 1 YMIN = -1 def zeep_pythonvalue(self, xmlvalue): return xmlvalue def perform_move(ptz, request, timeout): # Start continuous move ptz.ContinuousMove(request) # Wait a certain time sleep(timeout) # Stop continuous move ptz.Stop({'ProfileToken': request.ProfileToken}) def move_up(ptz, request, timeout=1): print('move up...') request.Velocity.PanTilt.x = 0 request.Velocity.PanTilt.y = YMAX perform_move(ptz, request, timeout) def move_down(ptz, request, timeout=1): print('move down...') request.Velocity.PanTilt.x = 0 request.Velocity.PanTilt.y = YMIN perform_move(ptz, request, timeout) def move_right(ptz, request, timeout=1): print('move right...') request.Velocity.PanTilt.x = XMAX request.Velocity.PanTilt.y = 0 perform_move(ptz, request, timeout) def move_left(ptz, request, timeout=1): print('move left...') request.Velocity.PanTilt.x = XMIN request.Velocity.PanTilt.y = 0 perform_move(ptz, request, timeout) def continuous_move(): mycam = ONVIFCamera('192.168.170.**', 80, 'admin', '**') # Create media service object media = mycam.create_media_service() # Create ptz service object ptz = mycam.create_ptz_service() # Get target profile zeep.xsd.simple.AnySimpleType.pythonvalue = zeep_pythonvalue media_profile = media.GetProfiles()[0] # Get PTZ configuration options for getting continuous move range request = ptz.create_type('GetConfigurationOptions') request.ConfigurationToken = media_profile.PTZConfiguration.token ptz_configuration_options = ptz.GetConfigurationOptions(request) request = ptz.create_type('ContinuousMove') request.ProfileToken = media_profile.token ptz.Stop({'ProfileToken': media_profile.token}) if request.Velocity is None: request.Velocity = ptz.GetStatus({'ProfileToken': media_profile.token}).Position request.Velocity = ptz.GetStatus({'ProfileToken': media_profile.token}).Position request.Velocity.PanTilt.space = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].URI request.Velocity.Zoom.space = ptz_configuration_options.Spaces.ContinuousZoomVelocitySpace[0].URI # Get range of pan and tilt # NOTE: X and Y are velocity vector global XMAX, XMIN, YMAX, YMIN XMAX = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].XRange.Max XMIN = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].XRange.Min YMAX = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].YRange.Max YMIN = ptz_configuration_options.Spaces.ContinuousPanTiltVelocitySpace[0].YRange.Min # move right move_right(ptz, request) # move left move_left(ptz, request) # Move up move_up(ptz, request) # move down move_down(ptz, request) if __name__ == '__main__': continuous_move() 注:以上為測試代碼,部分參考引用信息部分非原創(chuàng),后期加上添加預(yù)置位和回調(diào)預(yù)置位。

          ?



          【本文地址】

          公司簡介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 伊金霍洛旗| 沙湾县| 新沂市| 浦北县| 舟山市| 和平县| 大关县| 嘉定区| 陆丰市| 英山县| 中卫市| 陆良县| 靖边县| 新昌县| 连城县| 且末县| 陇西县| 毕节市| 巴马| 阿合奇县| 出国| 上蔡县| 光山县| 博湖县| 明水县| 黄平县| 呼玛县| 新津县| 大化| 开原市| 莒南县| 德钦县| 积石山| 杭州市| 白城市| 东乌珠穆沁旗| 光山县| 罗田县| 湘潭县| 弋阳县| 榆林市| http://444 http://444 http://444 http://444 http://444 http://444