国标GB28181如何实时视频播放

news2024/11/26 11:48:06

简述        

        视频流媒体安防监控国标GB28181平台LiveMedia视频能力丰富,部署灵活,便捷易用既能作为业务平台使用,也能作为安防监控视频管理层被业务管理平台调用。国标GB28181视频监控LiveMedia平台可提供流媒体接入、处理、转发等服务,支持内网、公网的安防视频监控设备通过国标GB/T28181协议进行视频监控直播等功能。

        在之前文章中我们介绍了GB28181协议实现设备的注册和保活,这篇文章中我们来介绍下GB28181如何实现实时视频播放?

GB28181实现实时视频播放

视频流格式:

GB28181要求传输的视频流格式为PS流,或者H264流,或者MP4格式。
可以用wireshark抓包,数据报类型是RTP的PS流。

国标流媒体服务器其实就是负责将GB28181设备或者平台推送的PS流转成ES流,然后提供RTSP、RTMP、FLV、HLS等格式进行分发。

PS流和ES流的区别:

P数据报有首部和数据两部分组成的,首部的前⼀部分是固定长度20字节,是所有IP数据报必须具有的。首部包括:总长度、标识、MF、DF、片偏移。

数字信号实际传送的是数据流,一般数据流包括以下三种:

ES流(Elementary Stream):也叫基本码流,包含视频、音频或数据的连续码流。

PES流(Packet Elementary Stream):也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。

TS流:也叫传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个program, 一个program也可以包含多个视频、音频、和文字信息的ES流; 每个ES流会有不同的PID标示,为了可以分析这些ES流, TS有一些固定的PID用来间隔发送program和ES流信息的表格: PAT和PMT表适用于误码较多的环境。

ES 是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。 ES 流经过PES 打包器之后,被转换成 PES 包,再通过RTSP、RTMP、FLV、HLS格式分发出去,实现WEB、手机、PC、微信等多终端的播。

传播方式:

GBT28181协议规定码流使用RTP包负载,推荐为PS流,也可以是ES流,对于媒体流的传输在原有UDP传输的基础中,增加了主动tcp和被动tcp的方式。

UDP被动

这个是普遍的传输方式。GB28181流媒体服务器监听单个UDP端口,然后发送一个SIP信令(INVITE),其携带的SDP中包含了接收媒体的端口设备端收到信令后,解析该端口,然后设备主动通过UDP向流媒体服务端监听的那个端口上送视频流。

TCP被动

有两种,一种是主动,一种是被动

对于主动: 设备端告知服务端自己的媒体流tcp端口,服务端主动去连接设备端的该端口,获取数据,这种场景应用较少,可以忽略。

对于被动:流媒体服务器监听单个TCP端口,然后通过SIP信令(INVITE)告诉设备端口,设备主动向当前流媒体服务端发送视频流,基本等同于UDP流。

实时视频流程

前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>实时视频观看

服务端步骤:

不管是TCP方式看,还是UDP方式看,其步骤都为:

(1)打开视频端口

(2)发送实时视频请求

(3)等待设备回复200OK

(4)发送ACK

(5)播放码流

(6)停止视频请求

(7)关闭视频端口

(8)普通等待

抓包分析

测试设备IP:(海康设备)

服务端IP:(本地ip)

实时视频建立_UDP

第零步:【服务端】打开视频端口

第一步:【服务端>>客户端】请求播放视频

INVITE sip:34020000001310000002@4401020049 SIP/2.0
 
Call-ID: helloVideo
 
CSeq: 1 INVITE
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: <sip:34020000001110000001@4401020049>
 
Max-Forwards: 70
 
Contact: <sip:34020000001310000002@4401020049>
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-bff9-4f3000002
 
Content-Type: application/sdp
 
Content-Length: 225v=0
 
o=34020000001310000002 0 0 IN IP4 192.168.0.60
 
s=Play
 
c=IN IP4 192.168.0.60
 
t=0 0
 
m=video 6000 RTP/AVP 96 98 97
 
a=recvonly
 
a=rtpmap:96 PS/90000
 
a=rtpmap:98 H264/90000
 
a=rtpmap:97 MPEG4/90000
 
y=0100000001
 
f=

 第二步:【客户端>>服务端】

先回复100

SIP/2.0 100 Trying
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-bff9-4f3000002
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: <sip:34020000001110000001@4401020049>;tag=5f906952
 
Call-ID: helloVideo
 
CSeq: 1 INVITE
 
Server: Happytime Agent Ver 1.0
 
Content-Length: 0
 
再回复200
 
SIP/2.0 200 OK
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-bff9-4f3000002
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: <sip:34020000001110000001@4401020049>;tag=5f906952
 
Contact: <sip:34020000001110000001@4401020049>
 
Call-ID: helloVideo
 
CSeq: 1 INVITE
 
Max-Forwards: 70
 
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,REFER,UPDATE,INFO
 
Supported: timer
 
Session-Expires: 200;refresher=uac
 
Server: Happytime Agent Ver 1.0
 
Content-Type: application/sdp
 
Content-Length: 153v=0
 
o=34020000001110000001 0 0 IN IP4 192.168.0.107
 
s=Play
 
c=IN IP4 192.168.0.107
 
t=0 0
 
m=video 19002 RTP/AVP 96
 
a=rtpmap:96 PS/90000
 
a=sendonly

 第三步:【服务端>>客户端】回复ACK

ACK sip:34020000001310000002@4401020049 SIP/2.0
 
Call-ID: helloVideo
 
CSeq: 1 ACK
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: <sip:34020000001110000001@4401020049>
 
Max-Forwards: 70
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-00003
 
Content-Length: 0

 第四步:播放码流

第五步:【服务端>>客户端】停止视频请求

BYE sip:34020000001310000002@4401020049 SIP/2.0
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: sip:34020000001110000001@4401020049;tag=5f906952
 
CSeq: 2 BYE
 
Call-ID: helloVideo
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-00004
 
Max-Forwards: 70
 
Content-Length: 0

 第六步:【客户端】回应200

SIP/2.0 200 OK
 
Via: SIP/2.0/UDP 192.168.0.107:5060;branch=z9hG4bKee5c5d98-00004
 
From: <sip:44010200492000000001@4401020049>;tag=bccedfd0111
 
To: sip:34020000001110000001@4401020049;tag=5f906952
 
Call-ID: helloVideo
 
CSeq: 2 BYE
 
Server: Happytime Agent Ver 1.0
 
Content-Length: 0

 第七步:【服务端】关闭视频端口

 LiveMedia视频管理平台经过多年的研发和沉淀,已逐步完善了从前端多协议(海康、大华、GB28181、RTSP、ONVIF等)设备接入、视频(软硬兼容)转码、视频压缩、视频转发、平台级联等一系列功能并提供完善的API调用接口,目前已在城市建筑工地、国家电网、医疗AI、铁路局、农业大棚、园区监控、移动指挥等领域已有案例落地。

交流联系:

微信:

视频管理平台www.houhangkeji.com

QQ技术交流群:698793654

 

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

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

相关文章

YOLOv8改进:最新复现SOD-YOLOv8,助力小目标检测(Small Object Detection)

💡💡💡本文独家改进:改进点:1)backbone加入CBAM;2)backbone、neck连接处加入involution注意力;3)添加一个针对小物体的额外预测头,提升小目标检测性能; SOD-YOLOv8 | 亲测在多个数据集能够实现大幅涨点,尤其在VisDrone-2019涨点显著, VisDrone-2019-DET 数…

Modelsim 用户手册(1)——Introduction

目录 一、操作结构和流程&#xff08; Operational Structure and Flow&#xff09; 二、仿真任务概述&#xff08;Simulation Task Overview&#xff09; 三、仿真基本步骤&#xff08; Basic Steps for Simulation&#xff09; 3.1 基本概念 3.1.1 文件和库映射&#xf…

Jetpack:026-Jetpack中的Slider

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack多点触控相关的内容&#xff0c;本章回中 主要介绍Slider。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回…

MATLAB R2023a下载链接及软件安装教程

先解释下什么是A什么是B&#xff0c;省的有些小菜们总问。 a是上半年&#xff0c;b是下半年版本&#xff0c;但是有些小弱们总是觉得只要是b一定功能多&#xff0c;这不一定的&#xff0c;同年版本b比a可能稍微全点&#xff0c;不同年的&#xff0c;比如21b&#xff0c;22a&am…

如何使用Javascript实现缓动特效

什么是缓动特效 虽然缓动特效这个词你可能没有听说过&#xff0c;但是绝大部分人都使用过。最典型的场景是在实现动画的过程中&#xff0c;无论是早期的jQuery还是CSS3里的transition&#xff0c;都允许你添加一个缓动特效参数&#xff0c;例如 linear, ease-in, ease-out等等…

云安全—etcd攻击面

0x00 前言 本篇还是一样&#xff0c;先来说一说etcd是什么&#xff0c;干啥的&#xff0c;然后再来看看etcd的攻击面到底有哪些&#xff0c;做一个抛砖引玉的作用&#xff0c;如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述&#xff0c;因为学到的东西…

【一文搞定--web 自动化之文件上传】

在做web自动化时&#xff0c;我们经常会碰到一些场景需要进行文件上传&#xff0c;而文件上传打开的窗口属于windows控件&#xff0c;通过Selenium是操作不了的&#xff0c;此篇文章给大家介绍几种实现方法。 前言 方法一&#xff1a;sendKeys 前提条件&#xff1a;文件上传元…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; &#x1f31f;51单片…

2103. 环和杆

2103. 环和杆 难度: 简单 来源: 每日一题 2023.11.02 总计有 n 个环&#xff0c;环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings &#xff0c;表示这 n 个环在杆上的分布。rings 中每两个字符形成一个…

汇编-算术运算符

下面给出了一些有效表达式和它们的值&#xff1a;

跆拳道馆展示服务预约小程序的效果如何

除了书本上的知识&#xff0c;很多人或孩子会选择学习一些技能&#xff0c;如游泳、钢琴、棋艺花艺等&#xff0c;跆拳道也拥有较高的客户群体&#xff0c;但由于需求属性较强&#xff0c;因此在实际发展中&#xff0c;商家宣传推广、获取线索、服务赋能方面不足。 如今互联网…

在微信小程序怎么领取优惠券

随着科技的发展&#xff0c;微信小程序已经成为我们日常生活中不可或缺的一部分。它为我们提供了各种各样的服务&#xff0c;使我们的生活变得更加便捷。而在这些服务中&#xff0c;领取优惠券成为了大家特别喜欢的功能之一。本文将详细介绍如何在微信小程序中领取优惠券&#…

文件夹怎么设置密码?电脑怎么设置文件夹密码?

在使用电脑的过程中&#xff0c;我们经常使用文件夹来储存管理文件。而为了保护文件夹的数据安全&#xff0c;我们可以为文件夹设置密码。那么&#xff0c;电脑怎么设置文件夹密码呢&#xff1f;下面我们就一起来了解一下。 文件夹设置密码的要求 文件夹设置密码很简单&#…

ELK + kafka 日志方案

概述 本文介绍使用ELK&#xff08;elasticsearch、logstash、kibana&#xff09;  kafka来搭建一个日志系统。主要演示使用spring aop进行日志收集&#xff0c;然后通过kafka将日志发送给logstash&#xff0c;logstash再将日志写入elasticsearch&#xff0c;这样elasticsearc…

【C++】关于构造函数后面冒号“:“的故事------初始化列表(超详细解析,小白一看就懂)

目录 一、前言 二、 初始化的概念区分 三、初始化列表 &#xff08;重点&#xff09; &#x1f4a6;初始化列表的概念理解 &#x1f4a6;初始化列表的注意事项 四、共勉 一、前言 在之前的博客学习中&#xff0c;我们已经学习了【C】的六大默认成员函数 &#xff0c;想必大…

MySQL数据库入门到精通——运维篇(2)

MySQL数据库入门到精通——运维篇&#xff08;2&#xff09; 1. 分库分表1.1 分库分表介绍1.1.1 现在的问题1.1.2 拆分策略1.1.2.1 垂直拆分策略1.1.2.2 水平拆分策略 1.2 Mycat概述1.3 Mycat入门1.4 Mycat配置1.4.1 Schema标签1.4.2 Datanode标签1.4.3 Datahost标签1.4.4 rule…

蓝桥杯每日一题2023.11.2

题目描述 等差素数列 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题我们需要求出最小的公差并且长度为10&#xff0c; 1.确保序列开始为素数 2.确定枚举的个数 注意&#xff1a;序列中数只是d的变化&#xff0c;可以通过此计算将开始数字后9个数字都计算出来&#xff0c;d是…

PostgreSQL逻辑管理结构

1.数据库逻辑结构介绍 2.数据库基本操作 2.1 创建数据库 CREATE DATABASE name [ [ WITH ] [ OWNER [] user_name ] [ TEMPLATE [] template ] [ ENCODING [] encoding ] [ LC_COLLATE [] lc_collate ] [ LC_CTYPE [] lc_ctype ] [ TABLESPACE [] tablespace ] [ CONNECTION L…

网络取证-Tomcat-简单

题干&#xff1a; 我们的 SOC 团队在公司内部网的一台 Web 服务器上检测到可疑活动。为了更深入地了解情况&#xff0c;团队捕获了网络流量进行分析。此 pcap 文件可能包含一系列恶意活动&#xff0c;这些活动已导致 Apache Tomcat Web 服务器遭到破坏。我们需要进一步调查这一…

【LeetCode:2103. 环和杆 | 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…