海康视频对接

利用 websocket

采用海康返回的 websocket 链接地址

下载 H5视频播放器开发包

链接 https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10

下载 文档和程序包

文档: 描述引入的 h5player.min.js 怎么使用

程序包: 包含一个 demo ,可以打开demo源码查看具体有哪些用法,可对应文档一起看, 有 h5player.min.js 等资源

直接引入 demo 中的 h5player.min.js Decoder.js AudioRenderer.js SuperRender_10 DecodeWorker js 文件

DecodeWorker.js 文件中的 importScripts 方法 如果报错 需要注释

如果是加载 h265 编码的视频 还会加载 Decoder.wasm 只需将该文件根据报错提示放置到指定目录即可;不可用script标签提前加载

如下是一个单窗口显示视频 示例代码

// 先引入 h5player.min.js
const curIndex = 0; // 当前窗口下标
const player = new window.JSPlugin({
    szId: '显示视频模块的标签ID', // 需要英文字母开头 必填
    szBasePath: "./", // 必填,引用H5player.min.js的js相对路径
    // 当容器div#play_window有固定宽高时,可不传iWidth和iHeight,窗口大小将自适应容器宽高
    // iWidth: 600,
    // iHeight: 400,
    iMaxSplit: 1, // 分屏播放,默认最大分屏4*4
    iCurrentSplit: 1,
    openDebug: true,
    oStyle: { // 样式
        borderSelect: '#FFCC00',
    }
})
player.JS_Play(
    wsUrl, // wsUrl 为提供的 websocket 链接地址
    {
        playURL: wsUrl, // 流媒体播放时必传
        mode: 0, // 解码类型:0=普通模式; 1=高级模式 默认为0  h265 格式的也可以用 普通模式

        // 设置直连时的认证参数等
    },
    curIndex, //当前窗口下标

    // 回放参数
    // startTime,
    // endTime,
).then(
    () => { 
        console.log('realplay success') 
    },
    e => { 
        console.error(e) 
    }
)

利用 HLS 方式

官方仓库: https://github.com/video-dev/hls.js

引入 hls.js

// 参考
// https://github.com/video-dev/hls.js/blob/master/docs/API.md#first-step-setup-and-support

var video = document.getElementById('video');
var videoSrc = 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8';
if (Hls.isSupported()) {
    var video = document.getElementById('video');
    var hls = new Hls();
    // bind them together
    hls.attachMedia(video);
    hls.on(Hls.Events.MEDIA_ATTACHED, function () {
      console.log('video and hls.js are now bound together !');
      hls.loadSource('http://my.streamURL.com/playlist.m3u8');
      hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
        console.log(
          'manifest loaded, found ' + data.levels.length + ' quality level'
        );
        video.play();
      });
    });
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = videoSrc;
}
Last Updated:
Contributors: Warren