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

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

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

相关文章

Rust 编程小技巧摘选(8)

目录 Rust 编程小技巧(8) 1. 取整函数 floor() 2. 取整函数ceil() 3. 取整函数 round() 4. 保留小数位数 5. 字符串转整数 unwrap() unwrap_or() Rust 编程小技巧(8) 1. 取整函数 floor() floor函数对浮点数进行向下取整 示例代码: fn main() {let x: …

[C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...

在前四篇文章中, 我们实现了从文档文件的清理 到 搜索的所有内容: 项目背景: 🫦[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: 🫦[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…

0基础学习VR全景平台篇 第80篇:Insta360 影石如何直播推流

一、下载Insta360 Pro APP 1、手机进入Insta360官网Insta360 | Action Cameras | 360 Cameras | VR Cameras,页面往下滑动到Insta360 Pro2相机处,点击相机图片进入详情页。详情页继续下滑到到手机APP处,根据自己的手机系统选择对应的客户端进…

计算机网络(6) --- https协议

计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…

【Linux】网络基础1

文章目录 网络基础11. 计算机网络背景1.1 网络发展 2. 认识协议2.1 网络协议2.2 OSI七层模型2.3 TCP/IP五层(或四层)模型 3. 网络传输基本流程3. 1 数据报封装和分用 4. 网络中的地址管理4.1 认识IP地址 5. 认识MAC地址 网络基础1 1. 计算机网络背景 1…

Flink-串讲面试题

1. 概念 有状态的流式计算框架 可以处理源源不断的实时数据,数据以event为单位,就是一条数据。 2. 开发流程 先获取执行环境env,然后添加source数据源,转换成datastream,然后使用各种算子进行计算,使用s…

数据结构 | 树的定义及实现

目录 一、树的术语及定义 二、树的实现 2.1 列表之列表 2.2 节点与引用 一、树的术语及定义 节点: 节点是树的基础部分。它可以有自己的名字,我们称作“键”。节点也可以带有附加信息,我们称作“有效载荷”。有效载荷信息对于很多树算法…

【学习FreeRTOS】第5章——FreeRTOS任务挂起与恢复

1.任务的挂起与恢复的API函数 vTaskSuspend() ——挂起任务(类似暂停,可恢复,但删除任务,无法恢复)vTaskResume() ——恢复被挂起的任务xTaskResumeFromISR()—— 在中断中恢复被挂起的任务 1.1.任务挂起函数vTaskSu…

leetcode19. 删除链表的倒数第 N 个结点

题目:leetcode19. 删除链表的倒数第 N 个结点 描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 思路: 让前面的节点比后面的节点先走n1步,因为从链表的尾节点的下一个节点开始&…

【BASH】回顾与知识点梳理(二十二)

【BASH】回顾与知识点梳理 二十二 二十二. Linux 账号管理22.1 Linux 的账号与群组使用者标识符: UID 与 GID使用者账号/etc/passwd 文件结构/etc/shadow 文件结构 关于群组: 有效与初始群组、groups, newgrp/etc/group 文件结构有效群组(effective grou…

传值与传址问题

传值与传址实例 2023年上半年软考真题: 22、设函数foo和hoo的定义如下图所示,在函数foo中调用函数hoo,hoo的第一个参数采用传引用方式(call by reference),第二个参数传值方式(call by value),那么函数foo中的print(a…

go错误集(持续更新)

1.提示以下报错 Build Error: go build -o c:\Users\Administrator\Desktop__debug_bin2343731882.exe -gcflags all-N -l . go: go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决办法: go …

Elasticsearch 与 OpenSearch:揭开性能差距

作者:George Kobar, Ugo Sangiorgi 对于任何依赖快速、准确搜索数据的组织来说,强大、快速且高效的搜索引擎是至关重要的元素。 对于开发人员和架构师来说,选择正确的搜索平台可以极大地影响你的组织提供快速且相关结果的能力。 在我们全面的…

opencv实战项目 实现手势跟踪并返回位置信息(封装调用)

OpenCV 是一个基于 Apache2.0 许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 需要提前准备opencv 和 mediapipe库 pip --default-timeout5000 install -i https://pypi.tuna.tsi…

拂袖一挥,zipfile秒列zip包内容

使用wxpython列出文件夹中的zip文件及内容 最近在做一个文件管理的小工具,需要列出选择的文件夹下的所有zip压缩文件,并在点击某个zip文件时能够显示其中的内容。为此我使用了wxpython来实现这个功能。 1. 导入需要的模块 首先导入程序需要的模块: import wx import os imp…

设计模式之工厂模式

简单工厂 由一个工厂生产多个产品。 一般工厂 每个产品都有一个单独的工厂专门生产。 抽象工厂 不同工厂生产不同种类的产品,每个工厂生产的同类产品又可以再次分类。比如一个鼠标工厂和一个键盘工厂,他们可以为不同的品牌生产鼠标和键盘。

CTF流量题解http1.pcapng

使用Wireshark工具打开流量文件http1.pcapng,如下图所示。 在过滤检索栏输入http,wireshark自动进行过滤。 选中其中一条记录后,wireshark 下方显示若干信息。 Frame 81: 925 bytes on wire (7400 bits), 925 bytes captured (7400 bits) …

从数据仓库到数据结构:数据架构的演变之路

在上个世纪,从电子商务巨头到医疗服务机构和政府部门,数据已成为每家组织的生命线。有效地收集和管理这些数据可以为组织提供宝贵的洞察力,以帮助决策,然而这是一项艰巨的任务。 尽管数据很重要,但CIOinsight声称&…

DL_20无线串口模块

今日介绍一块最近入手的无线串口模块,40r左右,精简好用,虽然感觉配置波特率啥的并不智能化,但250米的通信距离还是很顶的!它的升级版甚至有1000米的通信距离(空旷地带) 这篇文章不多讲其余话&am…

【C++】开源:abseil-cpp基础组件库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍abseil-cpp基础组件库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…