Web端集成海康视频监控画面

Web端集成海康视频监控画面


海康NVR(Network Video Recorder)

海康威视(Hikvision)是一家全球领先的视频监控设备和解决方案提供商,其产品包括网络视频录像机(NVR)以及摄像头、监视器、存储设备、软件和其他安全监控相关的产品。

image-20240223182210570

获取录像机RTSP视频流

  • 取流格式
>>RTSP单播取流格式如下(车载录像机不支持RTSP取流):

rtsp://用户名:密码@IP:554/Streaming/Channels/101

录像机示例:

取第1个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101

取第1个通道的子码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/102

取第1个通道的第三码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/103

取第12个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/1201

>>RTSP多播取流格式如下

rtsp://用户名:密码@IP:554/Streaming/Channels/101?transportmode=multicast

录像机示例

取第1个通道的主码流预览

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101?transportmode=unicast

★2012年之前的设备URL规定:

rtsp://username:password@//ch/

路径后面不能有空格、回车等符号,否则会连接失败。

→举例:

主码流取流:

rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream

子码流取流:

rtsp://admin:12345@192.0.0.64:554/h264/ch1/sub/av_stream

零通道取流:

rtsp://admin:12345@192.0.0.64:554/h264/ch0/main/av_stream

注意:URL中“:”“?”“&”等符号均为英文半角。
  • 这里是通过录像机的ip取的RTSP流

    • image-20240227133745278

    • image-20240226180345532

RTSPtoWeb转化视频格式

下载RTSPtoWeb工程

项目地址

  • 安装GO环境

    • wget https://dl.google.com/go/go1.18.3.linux-amd64.tar.gz
      sudo tar -zxvf go1.18.3.linux-amd64.tar.gz -C /usr/local/lib/
      sudo ln -s /usr/local/lib/go/bin/* /usr/bin/
      # GOPATH需要设置成你自己的路径
      sudo tee -a ~/.bashrc << EOF
      export GOROOT=/usr/local/lib/go/
      export GOPATH=/home/${USER}/sdk/go
      export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin
      EOF
      go env -w GO111MODULE=on
      go env -w GOPROXY=https://goproxy.cn,direct
      # 查看Go版本信息
      go version
      
      • image-20240227113527211
  • 项目根目录编译RTSPtoWeb

    • go build
      
  • 运行

    • ./RTSPtoWeb
      
  • 打开浏览器

    • http://localhost:8083
  • 在海康威视录像机界面设置摄像头的编码格式

    • image-20240227113845857

RTSPtoWEB添加通道

image-20240227114239378

RTSPtoWEB页面效果

image-20240227112513585

通过RTSPtoWeb的接口再次取流

RTSPtoWeb API

  • 列出所有流

    • GET /streams
      curl http://demo:demo@127.0.0.1:8083/streams
      
  • 获取某个流信息

    • GET /stream/{STREAM_ID}/info
      curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/info
      
  • HLS-LL视频接口

    • GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
      curl http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
      

自定义HTML页面播放画面

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>前端播放m3u8格式视频</title>
    <link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
    <script src='https://vjs.zencdn.net/7.4.1/video.js'></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js" type="text/javascript"></script>
    <!-- videojs-contrib-hls 用于在电脑端播放 如果只需手机播放可以不引入 -->
</head>
<body>
    <style>
        .video-js .vjs-tech {position: relative !important;}
    </style>
    <div>
        <video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{}' style='width: 100%;height: auto'>
            <source id="source" src="http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8" type="application/x-mpegURL"></source>
        </video>
    </div>
    <div class="qiehuan" style="width:100px;height: 100px;background: red;margin:0 auto;line-height: 100px;color:#fff;text-align: center">切换视频</div>
</body>
 
<script>
    // videojs 简单使用
    var myVideo = videojs('myVideo', {
        bigPlayButton: true,
        textTrackDisplay: false,
        posterImage: false,
        errorDisplay: false,
    })
    myVideo.play()
    var changeVideo = function (vdoSrc) {
        if (/\.m3u8$/.test(vdoSrc)) { //判断视频源是否是m3u8的格式
            myVideo.src({
                src: vdoSrc,
                type: 'application/x-mpegURL' //在重新添加视频源的时候需要给新的type的值
            })
        } else {
            myVideo.src(vdoSrc)
        }
        myVideo.load();
        myVideo.play();
    }
    var src = 'http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8';
    document.querySelector('.qiehuan').addEventListener('click', function () {
        changeVideo(src);
    })
</script>

效果

image-20240227122602579

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java对接大华海康视频监控是指通过Java编程语言实现与大华和海康视频监控设备的交互和通讯。Java是一种跨平台的高级编程语言,其强大的网络编程能力和丰富的第三方库使得与视频监控设备的对接变得更加简单和灵活。 对接大华海康视频监控可以利用Java提供的网络编程功能,使用Socket或HTTP协议与视频监控设备进行通信。首先,需要通过设备的IP地址和口号建立与设备的连接。然后,通过发送指令和接收设备的响应来实现对视频监控设备的控制和操作。 在Java中,可以使用第三方库来简化与大华海康视频监控设备的对接过程。例如,对于大华视频监控设备,可以使用Java SDK提供的相关接口,通过调用SDK中的方法实现设备的登录、预览、录像回放和控制等功能。 对于海康视频监控设备,可以使用Java SDK提供的海康芯片平台开发包(SDK)来实现对接。通过该SDK,可以获取设备的基本信息、实时视频流、录像文件等,并进行远程控制和操作。 在对接大华海康视频监控时,还可以利用Java提供的图形用户界面(GUI)开发工具包,如JavaFX或Swing,将视频监控画面显示在程序界面上,以便用户实时查看监控画面,同时结合图像处理和分析算法,实现实时监控、报警和数据分析等功能。 总之,Java对接大华海康视频监控是一种灵活、高效的方式,能够通过Java编程语言实现与视频监控设备的交互和通讯,满足不同应用场景下的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值