赞
踩
通过了两个多星期的研究,总算用做出了可用的成功例子。以下是根据海康威视提供的api方法:
后端技术栈:node + ffmpeg 取流通过ws输入到前端界面
参考链接:浏览器播放rtsp视频,基于nodeJs
1.1. V3.0包(支持Win32&Win64,支持的浏览器有:IE6IE11、Chrome8Chrome42、Firefox3.5~Firefox52(32位,64位是到Firefox40)、Safari5.0.2+,需要浏览器支持NPAPI。) (这种可以放弃了)
1.2 .V3.2包(WEB3.2无插件版本开发包,支持高版本谷歌、火狐浏览器,同时需要设备支持Websocket取流。无插件版本需要使用nginx代理服务器。) (这种需要设备支持webscoket取流)
// 取流 let rtspStream = null app.post('/open-rtsp-stream', function (req, res) { const { ip } = req.body; if(rtspStream){ rtspStream.stop() rtspStream = null } if(ip){ const rtsp_url = `rtsp://admin:hm123456789@${ip}:554/h264/ch1/sub/av_stream` rtspStream = new Stream({ name: 'sockets', streamUrl: rtsp_url, wsPort: 9998, ffmpegOptions: { // 选项ffmpeg标志 '-stats': '', // 没有必要值的选项使用空字符串 '-r': 30, // 具有必需值的选项指定键后面的值<br> '-s':'1920*1080' } }) res.send({ code:200, msg:'连接成功' }) }else{ res.send({ code:400, msg:'连接失败' }) } })
// 回放 let rtspPlayback = null app.post('/playback-rtsp-stream', function (req, res) { const { forkId, currTime, status } = req.body.obj; if(rtspPlayback){ rtspPlayback.stop() rtspPlayback = null } if(status === 'open'){ const rtsp_url = `rtsp://admin:hm123456789@192.168.65.10/Streaming/tracks/${forkId}?${currTime}` rtspPlayback = new Stream({ name: 'sockets', streamUrl: rtsp_url, wsPort: 9966, ffmpegOptions: { // 选项ffmpeg标志 '-stats': '', // 没有必要值的选项使用空字符串 '-r': 30, // 具有必需值的选项指定键后面的值<br> '-s':'1920*1080' } }) res.send({ code:200, msg:'连接成功' }) }else{ res.send({ code:400, msg:'连接失败' }) } })
1、注册平台账号密码 —> 创建产品 —> 创建项目 附上平台地址
2、点击控制台->开发能力->基础能力->物联网loT->设备接入->快速试用
在试用中心的物联网loT->设备接入->设备添加,填入必要信息,完成设备接入。
附上平台地址
提示:如果设备接入失败则需要联系平台客服处理,有可能是经销商的需要nvr硬盘接入
import JSMpeg from 'jsmpeg-player' // 安装这个包(可以搜下这个包用法) data() { return { per: 0, player: null, // jsmpeg实例 obj: {}, time: '', wid: 800, // 宽度 hei: 600 // 高度 } } // 初始化监控 openRtsp(time = 0) { const that = this if (that.player) { that.player.destroy() that.player = null } axios({ method: 'post', url: 'http://localhost:9000/playback-rtsp-stream', data: { obj: this.obj } }).then(function (response) { // console.log(response) that.player = new JSMpeg.VideoElement('#playback', urls) }) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。