1

有些系统将安全摄像头连接到数据中心(工作站计算机,由人类操作员不断观察)。我只是在谈论普通的安全系统。

在这种架构中有 4 种可能的情况:

1) 多个摄像头 - 单个数据中心,2) 多个摄像头 - 多个数据中心,3) 单个摄像头 - 单个数据中心和 4) 单个摄像头 - 多个数据中心。

假设摄像机只有平移-倾斜-缩放+实时视频流功能。对于“案例 2”系统,存在一些问题: - 当两个数据中心想要同时访问同一个摄像头时会发生什么。- 数据中心之间是否有任何优先级等级?- 操作之间是否有任何优先级层次结构(例如,Pan-tilt 优先于版本查询)。. .

我认为这些问题在安全系统开发人员中一定很常见,是否有任何算法、规范、书籍或库实现 - 用于对安全摄像头系统的多次访问?

目前我正在检查 ONVIF 规范,但我无法找到任何相关的定义。

我知道我的问题太笼统了,但任何帮助都会变得很方便。

4

1 回答 1

0

试试这个以显示不同的相机

  <title>Video Camera</title>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"

  <style type="text/css" media="screen">
    video {
      border:1px solid gray;
    }
  </style>   </head>   <body>
<script>
  if (!MediaStreamTrack) document.body.innerHTML = '<h1>Incompatible Browser Detected. Try <strong

style="color:red;">Chrome Canary 代替。';

  var videoSources = [];

  MediaStreamTrack.getSources(function(media_sources) {
    console.log(media_sources);
    alert('media_sources : '+media_sources);
    media_sources.forEach(function(media_source){
      if (media_source.kind === 'video') {
        videoSources.push(media_source);
      }
    });

    getMediaSource(videoSources);
  });

  var get_and_show_media = function(id) {
    var constraints = {};
    constraints.video = {
      optional: [{ sourceId: id}]
    };

    navigator.webkitGetUserMedia(constraints, function(stream) {
      console.log('webkitGetUserMedia');
      console.log(constraints);
      console.log(stream);

      var mediaElement = document.createElement('video');
      mediaElement.src = window.URL.createObjectURL(stream);
      document.body.appendChild(mediaElement);
      mediaElement.controls = true;
      mediaElement.play();

    }, function (e) 
    {
      alert('Hii');  
      document.body.appendChild(document.createElement('hr'));
      var strong = document.createElement('strong');
      strong.innerHTML = JSON.stringify(e);
      alert('strong.innerHTML : '+strong.innerHTML);
      document.body.appendChild(strong);
    });
  };

  var getMediaSource = function(media) {
    console.log(media);
    media.forEach(function(media_source) {
      if (!media_source) return;

      if (media_source.kind === 'video') 
      {
        // add buttons for each media item
        var button = $('<input/>', {id: media_source.id, value:media_source.id, type:'submit'});
        $("body").append(button);
        // show video on click
        $(document).on("click", "#"+media_source.id, function(e){
          console.log(e);
          console.log(media_source.id);
          get_and_show_media(media_source.id);
        });
      }
    });
  }
</script>   </body> </html>
于 2013-10-31T11:29:44.320 回答