UE中低延时播放RTSP监控视频解决方案

news2024/10/7 0:27:16

第1章 方案简介

1.1 行业痛点

在各种智慧城市、智慧社区、智慧水利、智慧矿山等数字孪生项目中,经常使用通UE来开发三维可视化场景。在这些场景中通常都需要把现场的各种监控视频在UE的可视化场景中接入,主要包含海康威视、大华、宇视、华为等众多监控厂商的设备与平台,监控视频流都是通过RTSP协议实时传送。

但是,在UE中没有好用的RTSP实时流播放插件,当前仅有一款UMP播放插件(基于VLC播放器开发的,但是延时很大,通常在3秒以上),根本无法满足实时播放的需要。比如远程指挥和应急通信、抢险救灾等应用,要求端到端延时在500ms以内,否则基于这种过时的视频信号做出的所有判断和决定将带来极其严重的后果,比如通过视频远程操控无人机、远程操控无人驾驶车辆等。

部分安防监控厂商也推出了视频播放解决方案,比如海康的统一视频监控平台可以输出HLS的m3u8格式的网络流,这种格式可以在H5浏览器中播放,嵌入到UE中调用CEF嵌入式浏览器播放时延时更大(通常在10秒以上),也远远无法满足项目需求。

因此,行业内急需一套成熟的低延时视频接入解决方案,从而满足基于UE开发的各种可视化平台业务的需要。

第2章 解决方案实现

经过十多年的流媒体技术研发积累和对当前各种应用场景的调研分析,北京顺景科技有限公司历时两年多时间开发了一款通用的低延时视频接入解决方案,我们采用B/S架构方式来实现这个功能,该方案可以实现在终端H5浏览器中超低延时播放,端到端播放延时可以控制在500ms以内,在UE中可以调用CEF实现嵌入式播放。实现效果如下:

UE中低延时播放RTSP视频

2.1 技术架构

首先,该方案基于多协议视频转码技术和低延时流媒体直播发布技术来实现,整个方案的架构如下:
低延时直播系统架构

2.2 功能模块构成

该方案主要由三部分组成,分别是低延时转码推流工作站、低延时流媒体发布服务器、低延时H5网页播放器:
1. 低延时转码推流工作站
主要功能是将前端监控摄像头的RTSP网络流拉取后进行实时转码,然后推送给低延时流媒体发布服务器。
该工作站根据不同的使用环境,可以采用软件+PC架构实现,也可以采用嵌入式低功耗设备实现(主要用于户外场景不便于维护的场合)。
低延时转码推流工作站

2. 低延时流媒体发布服务器
用于接收低延时转码推流工作站推送上来的视音频信号,然后将其以流媒体的方式进行实时发布。
该平台采用通用的硬件服务器+流媒体平台软件来实现,可以为用户有效节省投资。
低延时流媒体发布服务器 可以实现如下功能:
1) 支持上千个网络摄像头的并发接入;
2) 支持PC、智能手机、等多终端设备通过H5浏览器直接播放;
3) 单台服务器支持1000以上用户并发收看;
4) 支持按需拉流转发,从而节约服务器端的带宽资源消耗;
5) 支持直播节目的同步录制功能,录制完成后可以自动生成点播内容;
6) 支持服务器的性能和状态监控,包括CPU和内存占用率、实时连接数、网络带宽占用等。
7) 多终端自动适配技术。
针对当前主流的客户端设备,我们开发了终端自适应播放功能,可以自动适配PC端的主流浏览器(Fifrfox、Chrome、Safari),Android端的HTML5浏览器,iOS端的HTML5浏览器,微信小程序等。
低延时流媒体发布服务器

3. 低延时H5 网页播放器
该播放器主要用于实时接收流媒体服务器发布的直播流,然后将其以H5的方式进行实时解码播放。该播放器经过深度优化设计,只缓冲1~2帧数据,具有快速接收和解码能力。主要特性如下:
1) 接收和解码延时极低,通常在40ms左右,最高不超过80ms;
2) 支持MSE硬件加速解码;
3) 支持主流的浏览器,包括UE嵌入式CEF浏览器、Chrome、Edge、Fifrfox、Safari等;
4) 支持高清和VR视频播放;
5) 可以适配多种操作系统终端,包括Windows系统、Linux系统、Android系统、iOS系统、国产信创系统(麒麟、统信等);

2.3 方案效果

经过大规模的应用场景使用,当前该系统可以达到如下效果:
在局域网和专网环境下,端到端的直播延时通常在300ms以内;
在互联网环境下,端到端的直播延时通常在500ms以内;
在UE的CEF内嵌式播放中,可以支持到4K@60FPS实时解码,画面播放流畅。
UE中嵌入式播放效果
UE中的嵌入式播放效果
2.4 在线测试
我们搭建了一个公网的在线测试环境,感兴趣的朋友可以通过该系统自行测试,
http://www.shunjingtech.com/xmms/pc.html
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot实现文件记录日志,日志文件自动归档和压缩

😊 作者: Eric 💖 主页: https://blog.csdn.net/weixin_47316183?typeblog 🎉 主题:SpringBoot实现文件记录日志,日志文件自动归档和压缩 ⏱️ 创作时间: 2023年08月06日 文章目…

[webpack] 基本配置 (一)

文章目录 1.基本介绍2.功能介绍3.简单使用3.1 文件目录和内容3.2 下载依赖3.3 启动webpack 4.基本配置4.1 五大核心概念4.2 基本使用 1.基本介绍 Webpack 是一个静态资源打包工具。它会以一个或多个文件作为打包的入口, 将我们整个项目所有文件编译组合成一个或多个文件输出出去…

ad+硬件每日学习十个知识点(23)23.8.3(LDO 设计实例)(涉及到自控没听懂,学完自控再回来看)

文章目录 1.输入电容的选取(两个,一个大电容,一个小电容)2.输出电容的选取(两个,一个大电容,一个小电容)3.有些LDO需要输出的最小负载电流,所以需要接一个下拉电阻。4. 1…

使用TransBigData快速高效地处理、分析、挖掘出租车GPS数据

01、TransBigData简介 TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。TransBigData为处理常见的交通时空大数据(如出租车GPS数据、共享单车数据和公交车GPS数据等)提供了快速而简洁的方法。TransBigData为交通时空大数据分析的…

JavaScript的对象+内置对象(Math+Date日期+数组+字符串)

一.创建对象 对象是由属性和方法组成的 创建对象的三种方法: 1.利用字面量创建对象 var obj{uname : 张三疯 ,age : 18 ,sex : 男 ,sayHi : function(){console.log(hi~);}} 里面的属性或者方法采用键值对的形式多个属性或者方法用逗号隔开方法冒号后面跟的是一个匿名…

第四次作业 运维高级 构建 LVS-DR 群集和配置nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 LVS-DR模式工作原理 首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包…

如何创建51单片机KEIL工程

如何创建51单片机KEIL工程步骤: (1)打开keil软件,点击工具栏-Project,选择创建新的工程; (2)然后给工程命名,文章以project为例,然后点击保存 &#xff08…

ubuntu 暂时不能解析域名 解决办法

需要修改系统DNS 打开终端:输入 sudo vi /etc/resolv.conf 回车 在打开的配置文件中添加DNS信息 nameserver 114.114.114.114 nameserver 8.8.8.8 保存退出,重启系统即可。

一、MySql前置知识

文章目录 一、什么是数据库(一)存储数据用文件就可以了,为什么还要弄个数据库?(二)数据库存储介质:(三)主流数据库 二、数据库基本操作(一)连接服务器&#…

ArcGIS在洪水灾害普查、风险评估及淹没制图中应用教程

详情点击链接:ArcGIS在洪水灾害普查、风险评估及淹没制图中应用教程 一:洪水普查技术规范 1.1 全国水旱灾害风险普查实施方案 1.2 洪水风险区划及防治区划编制技术要求 1.3 山丘区中小河流洪水淹没图编制技术要求 二:ArcGIS及数据管理 …

为什么说CSPM考的越早越好?

一、CSPM 含金量怎么样,考了有什么用? 1、国家标准做背书(gj认可) CSPM 更符合项目管理从业者在能力、经验上的需求,有政策的支持,相关理论知识在国内项目管理领域更加容易落地、更实用、更可持续性。 2…

一张图理解非对称加密解密过程

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对…

postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里

存储架构 ​专栏内容: postgresql内核源码分析 手写数据库toadb 并发编程 个人主页:我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 概述 postgresql 数据库服务运行时,数据在磁…

对返回引用函数的进一步解释

#include <iostream> #include <string> using namespace std; class Box { public:Box(string name,int age):name(name),age(age){}string& getname() //返回引用的函数{cout << "&name: " << (int)&name << endl;retur…

Maven入职学习

一、什么是Maven&#xff1f; 概念&#xff1a; Maven是一种框架。它可以用作依赖管理工具、构建工具。 它可以管理jar包的规模、jar包的来源、jar包之间的依赖关系。 它的用途就是管理规模庞大的jar包&#xff0c;脱离IDE环境执行构建操作。 具体使用&#xff1a; 工作机…

Clickhouse 存储引擎

一、常用存储引擎分类 1.1 ReplacingMergeTree 这个引擎是在 MergeTree 的基础上&#xff0c;添加了”处理重复数据”的功能&#xff0c;该引擎和MergeTree的不同之处在于它会删除具有相同主键的重复项。 特点: 1使用ORDERBY排序键作为判断重复的唯一键 2.数据的去重只会在合并…

复习之selinux的管理

一、什么是selinux? SELinux&#xff0c;Security Enhanced Linux 的缩写&#xff0c;也就是安全强化的 Linux&#xff0c;是由美国国家安全局&#xff08;NSA&#xff09;联合其他安全机构&#xff08;比如 SCC 公司&#xff09;共同开发的&#xff0c;旨在增强传统 Linux 操…

x光下危险物品/违禁物品目标识别的模型训练与推理代码

前言 1.安检在公共场合的重要性不言而喻&#xff0c;保障群众人身安全是其首要任务。在各种场合&#xff0c;安检都是不可或缺的环节。x光安检机作为安检的重要工具&#xff0c;尽管其具有人工监控判断成像的特性&#xff0c;但是其局限性也十分明显。 为了解决这一局限性为出…

面试题:bind、call、apply 区别?如何实现一个 bind?

面试题&#xff1a;bind、call、apply 区别&#xff1f;如何实现一个 bind? 一、call()代码描述&#xff1a; 二、apply()代码描述&#xff1a; 三、bind()—最重要代码描述&#xff1a; 四、call、apply、bind 总结 一、call() 代码描述&#xff1a; 二、apply() 代码描述&am…

广州VR制作 | 利用VR元宇宙平台开展林地管理培训的优势

在林业领域&#xff0c;实地调查是获取准确数据和深入了解森林生态的重要手段。然而&#xff0c;传统的实地调查方法存在诸多问题&#xff0c;如时间成本高、人力物力投入大、安全风险高等。为了解决这些教学痛点&#xff0c;我们引入了虚拟现实(VR)技术&#xff0c;通过虚拟林…