在网页上显示监控视频
yuyutoo 2025-01-06 16:13 2 浏览 0 评论
最近需要在web项目中显示监控视频,采用了webrtc+webrtc-streamer+coturn的方案实现,能够在公网上做很低的延时,对于实时监控视频有很好的效果,是目前来讲比较好的一个选择方案。
1、webrtc 用于视频流的显示。
2、webrtc-streamer负责去监控视频主机(这里多数是NVR或DVR)去拉取RSTP视频流,并转发到Webrtc中进行显示。
3、coturn用于webrtc与webrtc-streamer之间的通信穿透服务,主要作用是穿透做NAT穿透,让双方找到能互相找到。
一、webrtc-streamer安装
这里采用的是CentOS 7系统,直接采用的Docker安装,关于Docker安装可以参考《Kubernetes安装记录》的docker部分。
docker pull mpromonet/webrtc-streamer
docker run -itd -p 8000:8000 --name webrtc-streamer mpromonet/webrtc-streamer -s120.92.19.150:3478 -tnoka:noka@120.92.19.150:3478
这里后面的-t和-s参数分别指向cotum的strun和tun服务,这里同内一定要用自己搭建的穿透服务,webrtc-streamer内置的服务是指向goole提供的一个服务,国内访问及其不稳定,关于cotum的安装请参照官网。这里启动好以后,就可以通过浏览器访问8000端口的服务了,这里可以通过以下地址来验证视频流服是否成功。
http://ip:8000/webrtcstreamer.html?rtsp://admin:admin@ip:554/Streaming/Channels/101
如果上面的地址能播放视频,说明配置成功了,地址后面的参数是视频流的地址。
二、web端视频显示代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- webrtc公用库-->
<script src="/js/adapter.js"></script>
<!-- webrtc-streamer调用库,来自webrtc-streamer-->
<script src="/js/webrtcstreamer.js"></script>
</head>
<body>
<!-- 视频显示部分 -->
<div id="play_div"></div>
<script>
var webRtcServerList = [];//视频流服务对象部分
var urls=[
'rtsp://admin:HUAN1415@192.168.1.106:554/Streaming/Channels/102',//视频流地址
'rtsp://admin:HUAN1415@210.201.225.44:554/Streaming/Channels/202'//视频流地址
];
var rsurl='http://210.201.225.42:8000/';//webrtc-streamer服务地址
//---------创建视频播放界面--------------------------------------------------------
function plays(idx){
var videoelt = document.createElement("video");//创建一个播放器
var vi_tag='videoTag_'+idx;//播放器的id
videoelt.id = vi_tag;//播放器id
videoelt.muted = true;
videoelt.width=500;
videoelt.height=600;
videoelt.controls=true;//开启进度条
document.getElementById ("play_div").appendChild(videoelt);//添加播放器到界面中
var webRtcServer = new WebRtcStreamer(vi_tag,rsurl);//创建webrtc流对象
//连接视频,参数1 视频地址,参数2 音频地址(这里没有),参数3 连接参数(这里采用的是tcp,120秒超时等)
webRtcServer.connect(urls[idx],undefined,"rtptransport=tcp&timeout=120&width=320&height=0");
webRtcServerList[idx]=webRtcServer;//缓存视频流对象
}
//----------页面退出时关闭播放流---------------------
window.onbeforeunload = function() {
for(var i=0;i<webRtcServerList.length;i++){
webRtcServerList[i].disconnect();
}
}
//---------初始化加载视频----------------------------
window.onload= function() {
for(var i=0;i<urls.length;i++){
plays(i);
}
}
</script>
</body>
</html>
这样就完成了整个项目实现,这里如果视频没有播放成功,最有可能是穿透服务的问题,需要检查穿透服务。
相关推荐
- 详细指南:如何在本地或服务器上安装Z-Blog博客系统
-
怎么安装Z-Blog(HowtoInstallZ-Blog) Z-Blog是一款功能强大的博客系统,因其简单易用和灵活性受到许多用户的喜爱。本文将详细介绍如何在本地或服务器上安装Z-Blog,...
- 群晖NAS安装wordpress博客,构建属于自己的web网站
-
学习网络技术的话可以关注我,每天都会有相应的教程发布的!群晖NAS主要的作用就是网络储存,你可以理解为百度云,但这个百度云的服务器放在了家里。个人而言,有了NAS以后,家里的所有设备(台式电脑,笔记本...
- MySQL8安装 八: 使用phpMyadmin客户端
-
MySQL8安装一:源码安装...
- ThinkPHP6开发博客实战入门(一),集成环境的安装与配置
-
本套入门教程适合想学php或者thinkphp却无从下手的同学,那么恭喜你,你只需要按照本套教程实战操作一遍,就会有意想不到的收获。我教程的特色是很少讲理论知识,主要偏重功能实战。我只会告诉你用怎样的...
- 蒸汽流量计远程控制系统的调试与应用
-
1、系统的联合调试蒸汽流量计上位机控制系统的调试主要包括服务器与数据库、各站点的连接调试。在与数据库连接调试中,本文选用一种被广泛使用的phpMyAdmin工具软件,实现对MySQL数据库图形化管理,...
- 有MacBook电脑,自学PHP详细步骤
-
自学PHP编程并在MacBook上设置好环境,是一个比较简单的过程。你可以按照以下步骤一步步开始你的学习之旅:1.安装PHPMacBook通常预装有PHP,但可以确认一下版本并更新到最...
- 如何从零开始创建一个功能强大的ZBlog网站指南
-
ZBlog怎么创建(HowtoCreateZBlog) ZBlog是一款非常流行的博客系统,因其简洁易用和强大的功能受到许多博主的喜爱。本文将详细介绍如何从零开始创建一个ZBlog网站,包括...
- phpMyAdmin 5.0.0正式发布:移除对5.5/5.6/7.0等旧版PHP支持
-
phpMyAdmin5.0.0版本于今天正式发布。该版本同4.9.3版本同时存在,不过官方推荐没有安装旧版PHP的用户尽量使用5.0.0版本。本次5.0版本更新中在涵盖了4.9分支的大量改进之外,还...
- 黑客学习搭建社工库nas黑群晖部署安装apache+php+mysql个人网站
-
今天分享给大家如何利用群晖自带的web功能,来搭建一个属于自己的个人网站群晖环境:首先进入套件中心,1、下载安装webstation2、下载安装php53、下载安装apache2.44、下载安装Ma...
- phpMyAdmin使用教程(图文详解)
-
什么是phpMyAdmin?phpMyAdmin是众多MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP开发的基于B/S模式的MySQL客户端软件,该工具是基于Web跨平台的管理程序,并且...
- ZBlog PHP迁移指南:步骤、注意事项与常见问题解决方案总结
-
ZBlogPHP迁移指南(ZBlogPHPMigrationGuide) ZBlog是一个功能强大的博客系统,广泛用于个人博客和企业网站。随着网站的发展,用户可能需要将其ZBlogP...
- 0成本打造私人文档管理系统,这个开源工具让你省下万元订阅费
-
在这个数字化时代,我们每天都在处理大量的文件和文档,随着时间推移,这些纸质文件不断堆积,不仅占用大量空间,查找起来非常让人头疼。你是否也曾因为找不到重要文件而焦虑不已?或是被满屋子的文件弄得焦头烂额?...
- 群晖NAS安装MySQL数据库及phpMyAdmin实现远程管理本地数据库
-
前言本文主要介绍如何在群晖NAS安装MySQL与数据库管理软件phpMyAdmin,并结合cpolar内网穿透工具配置公网地址,实现异地远程访问本地部署的phpMyAdmin详细流程。...
- 广受追捧MFC界面开发库BCGControlBar如何安装?
-
1.BCGControlBar简介1.1概述BCG是MFC的一个扩展库,可以用来构建类似于MicrosoftOffice2003/2007/2010/2013/2016和Microsoft...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)