欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端接入海康威視攝像頭的3種方案示例代碼

 更新時間:2025年09月10日 10:44:50   作者:web網(wǎng)頁精選  
在前端調(diào)用??低晹z像頭的過程中,主要涉及到攝像頭的連接、視頻流的獲取以及前端頁面的展示,這篇文章主要介紹了前端接入海康威視攝像頭的3種方案,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

方案選擇?

方案適用場景優(yōu)缺點
?Web SDK(3.0)??需要完整功能(PTZ控制、錄像回放)功能全,但需加載??礘S文件
?RTSP轉(zhuǎn)Web播放?低延遲實時監(jiān)控需后端轉(zhuǎn)碼(如FFmpeg轉(zhuǎn)HLS)
?HTTP API?簡單截圖或設(shè)備管理直接調(diào)用REST接口

方案一:??礧eb SDK(Vue組件封裝)??

適用場景:需要完整功能(實時監(jiān)控、PTZ控制、錄像回放)

1. 安裝依賴

npm install hikvision-web-sdk  # 或直接引入JS文件

2. 封裝Vue組件

<template>
  <div>
    <!-- 視頻容器 -->
    <div id="hikvision-player" ref="videoContainer"></div>
    <!-- PTZ控制按鈕 -->
    <button @click="ptzControl('LEFT')">左轉(zhuǎn)</button>
    <button @click="capture">截圖</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      player: null
    }
  },
  mounted() {
    this.initPlayer();
  },
  methods: {
    initPlayer() {
      // 動態(tài)加載??礢DK
      const script = document.createElement('script');
      script.src = 'https://open.hikvision.com/resource/webVideoCtrl.js';
      script.onload = () => {
        WebVideoCtrl.init({
          callback: () => {
            this.player = new WebVideoCtrl.IWebPlayback({
              id: this.$refs.videoContainer.id,
              width: '100%',
              height: '500px'
            });
            this.loginCamera();
          }
        });
      };
      document.head.appendChild(script);
    },
    loginCamera() {
      this.player.login({
        ip: '192.168.1.64',
        port: 8000,
        username: 'admin',
        password: 'your_password',
        success: () => this.player.startPreview()
      });
    },
    ptzControl(direction) {
      this.player.ptzControl(direction);
    },
    capture() {
      this.player.capturePicture('snapshot_' + Date.now() + '.jpg');
    }
  },
  beforeDestroy() {
    if (this.player) this.player.stopPreview();
  }
}
</script>

方案二:RTSP轉(zhuǎn)Web播放(通過FFmpeg + WebSocket)??

適用場景:低延遲需求(如實時監(jiān)控<500ms)

1. 后端服務(wù)(Node.js示例)

// server.js
const express = require('express');
const { spawn } = require('child_process');
const app = express();

app.get('/stream', (req, res) => {
  const ffmpeg = spawn('ffmpeg', [
    '-i', 'rtsp://admin:password@192.168.1.64:554/Streaming/Channels/101',
    '-c:v', 'libx264',
    '-preset', 'ultrafast',
    '-f', 'mpegts',
    'pipe:1'
  ]);
  ffmpeg.stdout.pipe(res);
});

app.listen(3000);

 2. Vue組件(使用JSMpeg播放)

<template>
  <canvas ref="videoCanvas"></canvas>
</template>

<script>
import JSMpeg from '@cycjimmy/jsmpeg-player';

export default {
  mounted() {
    new JSMpeg.Player('ws://your-server:3000/stream', {
      canvas: this.$refs.videoCanvas,
      autoplay: true,
      audio: false
    });
  }
}
</script>

方案三:HTTP API調(diào)用(輕量級管理)??

適用場景:僅需截圖或設(shè)備管理

Vue組件示例

<template>
  <div>
    <img :src="snapshotUrl" v-if="snapshotUrl">
    <button @click="getSnapshot">獲取截圖</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      snapshotUrl: null
    }
  },
  methods: {
    async getSnapshot() {
      try {
        const response = await fetch(
          'http://192.168.1.64/ISAPI/Streaming/channels/101/picture', 
          {
            headers: {
              'Authorization': 'Basic ' + btoa('admin:password')
            }
          }
        );
        const blob = await response.blob();
        this.snapshotUrl = URL.createObjectURL(blob);
      } catch (error) {
        console.error('獲取截圖失敗', error);
      }
    }
  }
}
</script>

三種方案對比?

特性Web SDK方案RTSP轉(zhuǎn)碼方案HTTP API方案
?功能完整性?? 全功能支持? 僅視頻流? 基礎(chǔ)管理
?延遲?500ms~1s200ms~500ms-
?Vue集成難度?中等(需SDK加載)簡單(純前端)非常簡單
?是否需要后端???(需轉(zhuǎn)碼服務(wù))?
?典型應(yīng)用場景?企業(yè)監(jiān)控系統(tǒng)實時監(jiān)控大屏設(shè)備狀態(tài)管理

推薦選擇?

  1. ?需要PTZ控制/錄像回放? → ?Web SDK方案?
  2. ?追求最低延遲? → ?RTSP轉(zhuǎn)碼方案?(配合WebRTC更佳)
  3. ?僅需簡單管理? → ?HTTP API方案?

?安全注意事項

// 所有方案都應(yīng):
1. 使用HTTPS加密通信
2. 避免在前端硬編碼密碼(推薦通過后端接口鑒權(quán))
3. 設(shè)置攝像頭IP白名單

在市場上,企業(yè)級項目接入??低晹z像頭的主流方案選擇會根據(jù)項目規(guī)模功能需求技術(shù)棧有所不同。以下是行業(yè)實踐中的常見選擇及原因分析:

市場主流方案排名(按使用頻率)??

排名方案市場占比典型應(yīng)用場景代表用戶群體
1???Web SDK方案?~65%安防監(jiān)控平臺、智慧園區(qū)政府/金融/大型企業(yè)
2???RTSP轉(zhuǎn)碼方案?~25%實時監(jiān)控大屏、移動端H5中小型企業(yè)/教育/醫(yī)療
3???HTTP API方案?~10%設(shè)備管理系統(tǒng)、簡單狀態(tài)監(jiān)控物業(yè)/零售/輕量級應(yīng)用

各方案的市場選擇原因?

?1. Web SDK方案(最主流)??

?核心優(yōu)勢?:
? ?功能完整?:原生支持PTZ控制、多畫面分割、錄像回放等專業(yè)功能
? ?官方維護?:??党掷m(xù)更新,兼容90%以上型號(如DS-2CD3系列、iDS-7系列)
? ?開發(fā)效率?:直接調(diào)用API,無需自研視頻流處理

?典型案例?:

  • 銀行金庫監(jiān)控系統(tǒng)(需雙向語音對講+報警聯(lián)動)
  • 智慧城市交通監(jiān)控(支持電子地圖集成)

?技術(shù)棧適配:

// Vue項目通常封裝為獨立組件
<hikvision-player 
  ip="192.168.1.64" 
  @ptz-move="handlePtz" 
  @alarm="handleAlarm" 
/>

2. RTSP轉(zhuǎn)碼方案(性價比之選)??

?核心優(yōu)勢?:
? ?低延遲?:WebRTC方案延遲可控制在300ms內(nèi)(SDK通常500ms+)
? ?跨平臺?:一套代碼兼容PC/移動端(H5/微信小程序)
? ?規(guī)避授權(quán)?:不依賴??礢DK,避免商業(yè)授權(quán)問題

?典型硬件方案?

典型案例?:

  • 建筑工地移動巡檢APP
  • 連鎖門店實時巡店系統(tǒng)

?成本對比?:

項目Web SDK方案RTSP轉(zhuǎn)碼方案
開發(fā)成本低(直接調(diào)用)中(需搭建轉(zhuǎn)碼)
硬件成本需轉(zhuǎn)碼服務(wù)器
授權(quán)成本需企業(yè)級授權(quán)

?3. HTTP API方案(輕量級場景)??

?核心優(yōu)勢?:
? ?零依賴?:純HTTP調(diào)用,適合簡單需求
? ?快速上線?:1人天即可完成集成

?典型調(diào)用鏈?:

// 獲取設(shè)備狀態(tài)(無需視頻流)
GET /ISAPI/System/deviceInfo
// 控制云臺(需支持PTZ的型號)
PUT /ISAPI/PTZCtrl/channels/1/continuous

適用場景?:

  • 物業(yè)設(shè)備狀態(tài)看板(僅需展示在線狀態(tài))
  • 零售門店攝像頭管理(定時截圖抽查)

選擇決策樹

最新趨勢(2024)??

  1. ?WebAssembly加速?:
    部分企業(yè)用WASM解碼H.265,替代FFmpeg轉(zhuǎn)碼(如Broadway.js方案)
  2. ?國密加密支持?:
    政府項目要求SM4加密視頻流,Web SDK已兼容
  3. ?低代碼集成?:
    ??敌峦瞥龅摹篙p量化配置工具」可生成Vue組件代碼

實際項目反饋?

"在智慧園區(qū)項目中,我們測試了三種方案:

  • Web SDK在功能完整性上得分最高,但移動端加載速度慢;
  • 最終采用混合方案?:PC端用Web SDK,移動端用WebRTC轉(zhuǎn)碼"
    ——某安防上市公司技術(shù)總監(jiān)

?最終建議?:

  • 大型項目優(yōu)先選 ?Web SDK?(功能全、維護省心)
  • 中小項目推薦 ?RTSP轉(zhuǎn)WebRTC?(平衡成本與體驗)
  • 簡單管理場景用 ?HTTP API?(快速落地)

總結(jié) 

到此這篇關(guān)于前端接入??低晹z像頭的3種方案的文章就介紹到這了,更多相關(guān)前端接入??低晹z像頭內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue前端框架—Mint UI詳解(更適用于移動端)

    vue前端框架—Mint UI詳解(更適用于移動端)

    這篇文章主要介紹了vue前端框架—Mint UI的詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • React DOM diff 對比Vue DOM diff 區(qū)別詳解

    React DOM diff 對比Vue DOM diff 

    這篇文章主要為大家介紹了React DOM diff 對比Vue DOM diff 區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 帶你一文了解Vue生命周期鉤子

    帶你一文了解Vue生命周期鉤子

    生命周期鉤子又被叫做生命周期時間,生命周期函數(shù),生命周期鉤子就是vue生命周期中出發(fā)的各類事件,這些事件被稱為生命周期鉤子,下面這篇文章主要給大家介紹了關(guān)于Vue生命周期鉤子的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Vue.js 實現(xiàn)微信公眾號菜單編輯器功能(二)

    Vue.js 實現(xiàn)微信公眾號菜單編輯器功能(二)

    這篇文章主要介紹了Vue.js 實現(xiàn)微信公眾號菜單編輯器功能,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-05-05
  • 集成vue到j(luò)query/bootstrap項目的方法

    集成vue到j(luò)query/bootstrap項目的方法

    下面小編就為大家分享一篇集成vue到j(luò)query/bootstrap項目的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue + Webpack + Vue-loader學(xué)習(xí)教程之相關(guān)配置篇

    Vue + Webpack + Vue-loader學(xué)習(xí)教程之相關(guān)配置篇

    這篇文章主要介紹了關(guān)于Vue + Webpack + Vue-loader的相關(guān)配置篇,文中通過示例代碼介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Vue 與 Vuex 的第一次接觸遇到的坑

    Vue 與 Vuex 的第一次接觸遇到的坑

    在 Vue.js 的項目中,如果項目結(jié)構(gòu)簡單, 父子組件之間的數(shù)據(jù)傳遞可以使用 props 或者 $emit 等方式,如果是大型項目,很多時候都需要在子組件之間傳遞數(shù)據(jù),使用vue的狀態(tài)管理工具vuex很好的解決
    2018-08-08
  • 關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解

    關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解

    這篇文章主要介紹了關(guān)于Vue源碼vm.$watch()內(nèi)部原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 使用Plotly.js在Vue中創(chuàng)建交互式散點圖的示例代碼

    使用Plotly.js在Vue中創(chuàng)建交互式散點圖的示例代碼

    Plotly.js是一個功能強大的JavaScript庫,用于創(chuàng)建交互式數(shù)據(jù)可視化,它支持各種圖表類型,包括散點圖、折線圖和直方圖,在Vue.js應(yīng)用程序中,Plotly.js可用于創(chuàng)建動態(tài)且引人入勝的數(shù)據(jù)可視化,本文介紹了使用Plotly.js在Vue中創(chuàng)建交互式散點圖,需要的朋友可以參考下
    2024-07-07
  • vue解決彈出蒙層滑動穿透問題的方法

    vue解決彈出蒙層滑動穿透問題的方法

    這篇文章主要介紹了vue解決彈出蒙層滑動穿透問題的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論