当前位置: 首页 > news >正文

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

第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
在这里插入图片描述

相关文章:

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

第1章 方案简介 1.1 行业痛点 在各种智慧城市、智慧社区、智慧水利、智慧矿山等数字孪生项目中,经常使用通UE来开发三维可视化场景。在这些场景中通常都需要把现场的各种监控视频在UE的可视化场景中接入,主要包含海康威视、大华、宇视、华为等众多监控…...

iOS - 开发者账号续订会员资格更换订阅的账号

文章目录 前言开发环境续订会员资格转让账户持有人验证身份1. 实名认证2. 联系信息 更换订阅的账号最后 前言 公司有一个开发者账号快到期了需要续订会员资格,刚注册时是用我自己的个人账号完成的订阅购买。现在想来有点不妥,于是尝试更换用于订阅的账号…...

大数据课程F3——HIve的基本操作

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握HIve的基本SQL语句和注意问题; ⚪ 掌握HIve的表结构; ⚪ 掌握HIve的数据类型; ⚪ 掌握HIve的基础函数和窗口函数; 一、基本SQL 1. SQL的执行方式 1. 通过hive -e的方式来执行指…...

top解析

top - 13:52:26 up 26 days, 20:56, 2 users, load average: 0.00, 0.01, 0.05 当前时间 系统运行时间,格式为时:分 当前登陆用户数2 系统负载,即任务队列的平均长度。三个数值分别为1分钟,5分钟,15分钟前到现在的平均…...

如何让子组件,router-view,呈现左右分布格局

1.用浮动进行浮动布局,定义一个大盒子,把浮动的样式写在公共样式里(这里在main.js里定义一下全局布局)。 2、能够在右边显示了...

计算机网络—TCP和UDP、输入url之后显示主页过程、TCP三次握手和四次挥手

TCP基本认识 TCP是面向连接的、可靠的,基于字节流的传输层通信协议。 图片来源小林coding 序号:传输方向上字节流的字节编号。初始时序号会被设置一个随机的初始值(ISN),之后每次发送数据时,序号值 ISN…...

使用反汇编工具IDA查看发生异常的汇编代码的上下文去辅助分析C++软件异常

目录 1、概述 2、如何使用IDA打开并查看二进制文件的汇编代码 3、在IDA中找到发生崩溃的那条汇编指令的位置 3.1、如何在IDA中找到发生异常的那条汇编指令 3.2、示例 4、阅读汇编代码上下文需要掌握一定的基础汇编知识 5、最后 VC常用功能开发汇总(专栏文章列…...

怎么合并多个视频?简单视频合并方法分享

合并多个视频可以将它们组合成一个更长的视频,这对于需要播放多个短视频的情况非常有用。此外,合并视频还可以使视频编辑过程更加高效,因为不必将多个独立的视频文件分别处理。最后,合并视频可以减少文件数量,从而使整…...

webpack基础知识九:如何提高webpack的构建速度?

一、背景 随着我们的项目涉及到页面越来越多,功能和业务代码也会随着越多,相应的 webpack 的构建时间也会越来越久 构建时间与我们日常开发效率密切相关,当我们本地开发启动 devServer 或者 build 的时候,如果时间过长&#xff…...

批量改名字序号和前缀

echo off setlocal enabledelayedexpansion set count10 for /f %%i in (dir /b *.jpg,*.png,*.bmp,*.jpeg,*.gif) do ( set /a count1 echo %%i 前缀_!count! rename %%i 前缀_!count!.png ) REM …...

基于Spring Boot的医院预约挂号网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: 基于Spring Boot的医院预约挂号网站设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java spring…...

Linux命令200例:join将两个文件按照指定的键连接起来分析

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...

谈谈网络安全

目录 1.概念 2.发展现状 3.主要问题 1.概念 网络安全是指保护计算机网络和其中的数据免受未经授权访问、损坏、窃取或破坏的过程和技术。网络安全涉及预防和检测潜在的威胁和漏洞,并采取措施保护网络的机密性、完整性和可用性。 网络安全的概念包括以下几个方面&am…...

机器学习深度学习——文本预处理

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——序列模型(NLP启动!) 📚订阅专栏:机器学习&am…...

Qt实现可伸缩的侧边工具栏(鼠标悬浮控制伸缩栏)

Qt实现可伸缩的侧边工具栏 一直在网上找,发现大多的实现方案都是用一个按钮,按下控制侧边栏的伸缩,但是我想要实现鼠标悬浮在侧边栏的时候就伸出,移开就收缩的功能,也没找到好的参考,所以决定自己实现一个…...

【Spring Boot】拦截器与统一功能处理

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE进阶 上一篇文章我们讲解了Spring AOP是一个基于面向切面编程的框架,用于将某方面具体问题集中处理,通过代理对象来进行传递,但使用原生Spring AOP实现统一的…...

RabbitMQ的6种工作模式

RabbitMQ的6种工作模式 官方文档: http://www.rabbitmq.com/ https://www.rabbitmq.com/getstarted.html RabbitMQ 常见的 6 种工作模式: 1、simple简单模式 1)、消息产生后将消息放入队列。 2)、消息的消费者监听消息队列,如果队列中…...

MFC第二十六天 CRgn类简介与开发、封装CMemoryDC类并应用开发

文章目录 CRgn类简介与开发CRgn类简介CRgn类区域管理开发CRgn类区域管理与不规则形状的选取 封装CMemoryDC类并应用开发CMemoryDC.h封装CMemoryDC开发游戏透明动画CFlashDlg.hCFlashDlg.cpp 封装CMemoryDC开发游戏动画 附录四大窗口CDC派生类 CRgn类简介与开发 CRgn类简介 CR…...

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题 1、本方案默认本地已经安装了VScode与MobaXterm2、在服务器端3、在本地端安装MobaXterm4、测试5、opencv显示测试(测试过程中需保持MobaXterm开启的状态)6、 matplotlib显示测试&#x…...

支付模块功能实现(小兔鲜儿)【Vue3】

支付 渲染基础数据 支付页有俩个关键数据,一个是要支付的钱数,一个是倒计时数据(超时不支付商品释放) 准备接口 import request from /utils/httpexport const getOrderAPI (id) > {return request({url: /member/order/$…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

2025季度云服务器排行榜

在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...