LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
- 1、背景
- 2、信令传输
- 3、视频流传输
- 3.1、UDP传输模式
- 3.2、TCP被动传输模式
- 3.3、TCP主动传输模式
- 4、WEB配置流传输模式
- 4.1、编辑模式
- 4.2、下拉切换模式
- 5、搭建GB28181视频直播平台
1、背景
在国标GB28181协议体系下,视频流传输至国标视频平台时,主要采用的传输协议为UDP和TCP。在早期阶段,由于摄像头的分辨率相对较低,视频码流较小,UDP协议以其简单高效的特性,成为了视频传输的主流选择。在这一时期,UDP协议在传输过程中所产生的丢包现象并不显著,能够较好地满足当时的视频传输需求。
然而,随着硬件技术的飞速发展,摄像头的分辨率和视频质量得到了极大提升,视频码流也随之大幅增加。在这种情况下,UDP协议的劣势逐渐凸显出来,其传输过程中产生的丢包问题日益严重,已经无法满足高质量视频传输的要求。
为了应对这一挑战,新的国标协议GB28181 - 2016版本以及GB28181 - 2022版本中,都明确规定了TCP流传输的相关标准。此后,较新生产的设备也开始纷纷支持TCP流传输功能。在实际的项目建设过程中,如果摄像头设备支持TCP流传输,我们强烈建议优先选择TCP流传输模式,以确保视频传输的稳定性和可靠性。
需要注意的是,所有的国标设备都支持UDP流传输,但是老设备不一定支持TCP流传输。因此,在选择传输模式时,需要根据设备的实际情况进行合理配置。如果设备支持TCP流传输,建议将其配置为TCP收流模式。
2、信令传输
在国标视频平台的通信过程中,信令传输是非常重要的一环。注册配置的传输协议,指的是信令的注册传输协议,而视频流具体通过什么协议进行传输,则是由上级配置来决定的。
信令通过何种方式进行上报,是由设备端决定的。一般来说,用户可以在设备的配置注册界面进行选择。不过,也有部分设备没有提供这个配置选项。常见的信令传输方式主要有UDP和TCP两种。
下面是一张展示信令传输配置界面的图片,从中我们可以直观地看到设备端对信令传输协议的选择方式。
3、视频流传输
与信令注册不同,收流的传输模式是由上级决定的。在发起播放请求时,上级会告知设备通过何种方式推送视频流过来。下面我们将详细介绍三种不同的流传输模式。
3.1、UDP传输模式
在UDP传输模式下,服务端会监听一个UDP端口。服务端通过信令服务将这个端口信息告知设备,设备在接收到信息后,会主动向服务端发起流传输。UDP协议的优点是传输速度快,开销小,但缺点是不保证数据的可靠传输,容易出现丢包现象。因此,这种模式适用于对实时性要求较高,但对数据完整性要求相对较低的场景。
3.2、TCP被动传输模式
TCP被动传输模式下,服务端同样会监听一个TCP端口,并通过信令服务将该端口信息告知设备。设备在接收到端口信息后,会主动向服务端发起流传输。与UDP模式不同的是,TCP协议提供了可靠的数据传输,能够保证数据的完整性和顺序性。因此,这种模式能够有效避免因丢包而导致的视频卡顿、花屏等问题,提高视频观看的质量。虽然这种模式是比较推荐的收流模式,但需要注意的是,并不是所有的设备都支持TCP流传输。在使用这种模式之前,需要确保设备具备相应的功能。
3.3、TCP主动传输模式
在TCP主动传输模式下,设备端会告知服务端其监听的TCP端口情况。服务端在获取到端口信息后,会主动向设备拉流。这种模式的应用场景相对较少,因为它要求设备所在的网络能够被服务所在的网络访问。在实际应用中,如果设备处于内网环境,并且没有进行相应的网络配置,服务端可能无法直接访问设备,从而导致无法正常拉流。
4、WEB配置流传输模式
上述三种流传输模式的灵活切换,能够帮助我们在不同的网络环境下,选择最合适的传输模式,以确保视频流的稳定传输。在LiveGBS后台,我们可以通过WEB登陆的方式进行流传输模式的配置操作。
4.1、编辑模式
登录LiveGBS后台后,我们可以通过以下路径进行流传输模式的编辑:LiveGBS -> 国标设备 -> 编辑。在编辑界面中,我们可以根据实际需求选择不同的流传输模式。
4.2、下拉切换模式
除了在编辑界面进行配置外,我们还可以在LiveGBS的国标设备列表页面进行快速切换。在该页面中,我们可以通过下拉菜单直接选择所需的流传输模式,操作非常便捷。
5、搭建GB28181视频直播平台
LiveGBS国标视频平台具有广泛的适用性,它支持Windows、Linux以及其他CPU架构(如国产、嵌入式等)的操作系统。如果您有搭建GB28181视频直播平台的需求,可以按照以下步骤进行操作:
- 安装包下载:您可以通过安装包下载链接获取LiveGBS的安装包。
- 安装使用说明:在下载安装包后,您可以参考安装使用说明进行安装和配置。
- 常见问题解答:在使用过程中,如果您遇到任何问题,可以查阅更多常见问题,获取相关的解决方案。
通过以上的介绍,相信您对LiveGBS国标视频平台的收流模式有了更深入的了解。在实际应用中,您可以根据设备的特性和网络环境的特点,选择最合适的流传输模式,以确保视频流的稳定、高效传输。
相关文章:

LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析 1、背景2、信令传输3、视频流传输3.1、UDP传输模式3.2、TCP被动传输模式3.3、TCP主动传输模式 4、WEB配置流传输模式4.1、编辑模式4.2、下拉切换模式 5、搭建GB28181视频直播平台 1、背景 在…...
跳表(Skip List)查找算法详解
1、原理 跳表是一种概率型数据结构,通过多层有序链表实现高效查找,时间复杂度接近平衡树(O(log n))。其核心思想是通过层级索引加速搜索,结构类似火车时刻表的“快车-慢车”模式。 关键特性: 多层链表&a…...
React从基础入门到高级实战:React 核心技术 - React 与 TypeScript:构建类型安全的应用
React 与 TypeScript:构建类型安全的应用 在现代前端开发中,TypeScript 因其强大的类型系统和编译时错误检查功能,已成为 React 开发者的热门选择。通过为代码添加类型定义,TypeScript 能够显著提升代码的健壮性、可维护性和团队…...
Django orm详解--组成部件
Django ORM 的核心部件可分为模型系统、查询系统、数据库后端和辅助工具四大类,每个部件负责不同的职责,共同实现对象与关系数据库的映射。以下是核心部件的分层解析: 一、模型系统(Model System) 1. 模型基类&#…...

Tomcat 使用与配置全解
一、 Tomcat简介 Tomcat服务器是Apache的一个开源免费的Web容器。它实现了JavaEE平台下部分技术规范,属于轻量级应用服务器。 1. Tomcat版本 Tomcat版本 JDK版本 Servlet版本 JSP版本 10.0.X 8 and later 5.0 3.0 9.0.x 8 and later 4.0 2.3 8.0.x 7…...
Chrome 开发中的任务调度与线程模型实战指南
内容 概述 快速入门指南 核心概念线程词典 线程任务优先使用序列而不是物理线程 发布并行任务 直接发布到线程池通过 TaskRunner 发布 发布顺序任务 发布到新序列发布到当前(虚拟)主题 使用序列代替锁将多个任务发布到同一线程 发布到浏览器进程中的主线…...

aws instance store 的恢复
1: aws instance store 要在launch instance 才可以创建,而且,通过snapshot 恢复后,instance store 里面的数据会丢失。 下面是创建instance store 的过程,和通过两种方式恢复,发现/etc/fstab 不同的写法,有的不能启动: [root@ip-xx ~]# lsblk NAME MAJ:MIN RM …...
从零开始创建 Vue 3 开发环境并构建第一个 Demo
Vue 3 是目前前端开发中非常流行的渐进式 JavaScript 框架。本文将手把手带你完成从环境搭建到运行一个基础 Vue 3 示例的全过程。 📦 一、环境准备 1. 安装 Node.js Vue 项目依赖 Node.js 运行环境,请确保你的电脑已安装 Node.js(建议使用…...

EasyRTC音视频实时通话助力微信小程序:打造低延迟、高可靠的VoIP端到端呼叫解决方案
一、方案概述 在数字化通信浪潮下,端到端实时音视频能力成为刚需。依托庞大用户生态的微信小程序,是实现此类功能的优质载体。基于WebRTC的EasyRTC音视频SDK,为小程序VoIP呼叫提供轻量化解决方案,通过技术优化实现低延迟通信&a…...

STM32 SPI通信(软件)
一、SPI简介 SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slav…...

每日刷题c++
快速幂 #include <iostream> using namespace std; #define int long long int power(int a, int b, int p) {int ans 1;while (b){if (b % 2){ans * a;ans % p; // 随时取模}a * a;a % p; // 随时取模b / 2;}return ans; } signed main() {int a, b, p;cin >> a …...
(自用)Java学习-5.19(地址管理,三级联动,预支付)
1. 地址管理模块 地址展示 前端:通过 showAddress() 发起 Ajax GET 请求,动态渲染地址列表表格,使用 #{tag}、#{name} 等占位符替换真实数据。 后端: 控制器层调用 AddressService,通过 AddressMapper 查询用户地址数…...
【容器】docker使用问题处理
问题一、systemctl start docker启动报 ERROR: ZONE_CONFLICT: docker0 already bound to a zone 处理方法 firewall-cmd --permanent --zonedocker --change-interfacedocker0 systemctl restart firewalld 问题二、启动容器报 ptables failed/iptables: No chain/target/…...

ChemDraw 2023|Win英文|化学结构编辑器|安装教程
软件下载 【名称】:ChemDraw 2023 【大小】:1.34G 【语言】:英文界面 【安装环境】:Win10/Win11 【夸克网盘下载链接】(务必手机注册): https://pan.quark.cn/s/320bcb67da80 【网站下载…...
Vue3实现提示文字组件
Vue3 实现一个文字提示组件(Tooltip) 文字提示(Tooltip)是前端开发中非常常见的组件,通常用于在用户悬停某个元素时显示额外的信息。 一、需求分析 我们要实现一个 Vue3 的文字提示组件,具备以下功能&…...
JAVA与C语言之间的差异(一)
一、代码习惯以及主函数 JAVA中{在使用的时候不要换行 public static void main(String[] args) {int[] array {1, 2, 3};for(int i 0; i < array.length; i){System.out.println(array[i] " ");}} 其次,以main函数为主函数: public …...
深入剖析 C 语言中的指针数组与数组指针
资料合集下载链接: https://pan.quark.cn/s/472bbdfcd014 在C语言中,指针是其强大和灵活性的核心。然而,围绕指针的概念有很多容易混淆的地方,其中“指针数组”和“数组指针”就是一对常见的“双胞胎”概念。它们名称相似,但含义和用法却大相径庭。 本文旨在清…...

4.1.1 Spark SQL概述
Spark SQL是Apache Spark的一个模块,专门用于处理结构化数据。它引入了DataFrame这一编程抽象,DataFrame是带有Schema信息的分布式数据集合,类似于关系型数据库中的表。用户可以通过SQL、DataFrames API和Datasets API三种方式操作结构化数据…...
【VSCode-Qt】Docker远程连接的项目UI文件在 VSCode 上无法预览
Docker远程连接的UI文件在 VSCode 上无法预览,通常是因为 VSCode 通过远程开发扩展(Remote - SSH/Docker)连接到 Docker 容器时,某些图形化功能未正确配置或支持。以下是可能原因和解决方案: 原因分析 X11 转发未配置…...

redis五种数据结构详解(java实现对应的案例)
一、简述 Redis是一款高性能的键值对存储数据库,它支持五种基本数据类型,分别是字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)。 二、五种基本数据类型 2.1 字符串(String) String是Redis最基本的类型,一个key对…...
Telnet 命令详解
Telnet 命令详解:从基础到实战应用 Telnet 是一种历史悠久的网络协议,广泛用于远程登录和管理设备。尽管如今更安全的 SSH 协议已逐渐取代其地位,但 Telnet 在特定场景下依然发挥着重要作用。本文将深入解析 Telnet 命令的参数、使用场景及注…...
深度解析新能源汽车结构与工作原理
一、核心系统架构 新能源汽车主要由三大核心系统构成: 电力驱动系统:包含永磁同步电机、电机控制器(MCU)及减速器,采用三合一集成设计实现轻量化。永磁同步电机通过电磁感应原理将电能转化为机械能,其效率可…...

React 生命周期与 Hook:从原理到实战全解析
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
OpenSSL 与 C++ 搭建一个支持 TLS 1.3 的服务器
好的,我们可以使用 OpenSSL 与 C 搭建一个支持 TLS 1.3 的服务器。下面是: ✅ 一、完整示例代码(基于 OpenSSL) 使用 C 和 OpenSSL 创建一个简单的 TCP TLS 服务器,支持 TLS 1.3。 ✅ 代码:tls_server.cp…...
HOW - 简历和求职面试宝典(六)
文章目录 1. 如何更好地认识自己?一、认清自己的实力二、明确求职方向三、认识求职岗位与自己的匹配度2. 如何判断公司是否合适自己?一、网站平台二、内部人员三、通过面试官1. 如何更好地认识自己? 一、认清自己的实力 我们经常会听到这样的话:我现在的工作做的好不开心…...

【机器学习基础】机器学习入门核心算法:逻辑回归(Logistic Regression)
机器学习入门核心算法:逻辑回归(Logistic Regression) 一、算法逻辑1.1 基本概念1.2 Sigmoid函数1.3 决策边界 二、算法原理与数学推导2.1 概率建模2.2 损失函数推导2.3 梯度下降优化2.4 正则化处理 三、模型评估3.1 常用评估指标3.2 ROC曲线…...
深入理解设计模式之命令模式
下面是一篇关于设计模式之命令模式(Command Pattern)的详细博客,并附有 Java 实现代码示例。 深入理解设计模式之:命令模式(Command Pattern) 一、什么是命令模式? 命令模式(Comma…...

智能仓储落地:机器人如何通过自动化减少仓库操作失误?
仓库作业的速度和准确性至关重要,尤其是在当前对无差错、高效作业的要求达到前所未有的环境下。每一个错误,无论是物品放错位置还是库存差异,都会在供应链中产生连锁反应,造成延误、增加成本,并最终影响客户满意度。 …...
Android 架构演进之路:从 MVC 到 MVI,拥抱单向数据流的革命
在移动应用开发的世界里,架构模式的演进从未停歇。从早期的 MVC 到后来的 MVP、MVVM,每一次变革都在尝试解决前一代架构的痛点。而今天,我们将探讨一种全新的架构模式 ——MVI(Model-View-Intent),它借鉴了…...

[低代码表单生成器设计基础]ElementUI中Layout布局属性Form表单属性详解
Layout 布局 ElementUI 的 Layout 布局系统基于 24 栏栅格设计,提供了灵活的响应式布局能力,适用于各种页面结构的构建。(CSDN) 📐 基础布局结构 ElementUI 的布局由 <el-row>(行)和 <el-col>࿰…...