gb28181之ps码流分析

前言

gb28181的视频流,采用ps格式进行封装,但是排查故障的时候,每次都需要进行二进制查看,非常不方便,所以决定写一个html的小工具进行分析。

ps码流介绍

PS数据包由四个部分组成,下面分别进行研究

Pack_header如图1 起始四个字节为00 00 01 BA

b32f5d4cc3ea54fa10399e45864eeaca.png

System_header如图2 起始四个字节为00 00 01 BB

40ffe1e67664e12e8ebee8945702ca74.png

Program_stream_map如图3 起始四个字节为00 00 01 BC

48c0b3050f42e1b728c0bfa4ef131065.png

PES_pakcet如图4 起始四个字节为00 00 01 C0(音频) 或者00 00 01 E0(视频)

1d1733149e5ff33235a59a7d961b10bd.png 17b8b0439660acdc337682c53cc0e160.png 8fb9d9acd8e4d239835eaca4cd5a2c51.png

音频采样率

gb28181音频采样率为固定值通道数为1 采样率为8kHZ 参考标准截图如下

308ee74c7feaef867d4527477c668b8c.png 536e9b2b455b8a15079ee5d6007202ed.png

码流id

基于RTP的PS封装首先按照ISO/IEC13818-1:2019将视音频流封装成PS包,再将PS包以负载的方式封装成RTP包。
进行PS封装时,应将每个视频帧封装为一个PS包,且每个关键帧的PS包中应包含系统头(System Header)和 PSM(Program Stream Map),系统头和 PSM 放置于 PS 包头之后、第一个 PES 包之前。
典型的视频关键帧PS包结构如图C1所示,其中PESV为视频PES包,PESA为音频PES包,视频非关键帧的PS包结构中一般不包含系统头和PSM。PS包中各部分的具体数据结构参见ISO/IEC13818-1:2019中的相关描述。
PS包头|Systemheader|PSM|PESV|PESA
系统头应包含对PS包中码流种类的描述,其中视频和音频的流ID(streamid)取值如下:
a)视频流ID:0xE0;
b)音频流ID:0xC0
针对本文件规定的几种视音频格式,PSM中流类型(stream_type)的取值如下:
a)MPEG-4视频流:0x10;
b)H.264视频流:0x1B;
c)SVAC视频流:0x80;
d)H.265视频流:0x24;
e)G.711A律音频流:0x90;
f)G.711U律音频流:0x91:
g)G.722.1音频流:0x92;
h)G.723.1音频流:0x93;
i)G.729音频流:0x99;
j)SVAC音频流:0x9B;
k)AAC音频流:0x0F。
PS包封装的其他具体技术规范详见ISO/IEC13818-1:2019。PS包的RTP封装格式参照IETFRFC2250,RTP的主要参数设置如下:
a)负载类型(payload type):96;
b)编码名称(encoding name):PS;
c)时钟频率(clockrate):90kHz;
d)SDP 描述中“m”字段的“media”项:video。

fc9fa08b181b4cf49de4d53c3e065118.png 6fa8a5776c8cf232605d6536db17ff21.png

分析工具

这里我用html写了一个分析工具,可以对格式进行解析,并进行展示,辅助排查问题。
只需要输入相关格式的16进制数据,即可进行解析。d568905e56190e3bfcbad399c71c653b.png加入星球即可获得工具代码 https://t.zsxq.com/17ckXTdbr

关于源码

请关注公众号g0415shenw 加入知识星球。
星球地址 https://t.zsxq.com/15EvfoA7n
星球有本人经验心得全部总结 涵盖音视频,gb28181、虚幻引擎、其他编程工具等等。另外还可以在星球提问,我会尽力答复,等于给您多了一个引路人。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值