GB/T28181规范之Subject头域定义浅析

部分开发者在实现GB28181设备接入或国标平台侧的时候,容易忽略Subject头域信息,本文就Subject头域定义,做个简单的回顾。

GB/T28181-2016中提到:SIP监控域建立实时、回放、下载等媒体链路时,SIP服务器发出的Invite消息应携带Subject头域作为此媒体链路的标识。SIP监控域应具有媒体分发能力,对于Subject中媒体发送方标识相同的视频应仅向目标SIP监控域或设备发起一次请求,通过自身的媒体分发能力将视频资源发往不同的接收端。
Subject字段的格式如下:
Subject:媒体流发送者ID:发送方媒体流序列号,媒体流接收者ID:接收方媒体流序列号
各字段定义如下:
媒体流发送者ID: 为符合附录D(统一编码规则)定义的媒体流发送者的ID编码。
发送方媒体流序列号: 发送方媒体流序列号为不超过20位的字符串;当请求为实时视频时,首位取
值为0,对于相同的实时视频取值唯一;当请求的媒体流为历史视频时,首位取值为1,对于每一路历史视频取值唯一。
媒体流接收者ID: 为符合附录D(统一编码规则)定义的媒体流接收者的ID编码。
接收方媒体流序列号: 为媒体流接收端的标识序列号,在同一时刻该序列号在媒体流接收者端为不
重复的字符串。当接收者为客户端时,可以作为窗口的标识符。

下一个问题:如何构建Subject头域?

废话不多说,以Android平台GB28181设备端为例,直接上代码:

private String makeSubject(String ssrc) {
	StringBuilder sb = new StringBuilder(64);

	sb.append(session.getSrcID());
	sb.append(":");

	//发送方媒体流序列号
	sb.append(ssrc);

	sb.append(",");
	sb.append(session.getTargetID());
	sb.append(":");

	//接收方媒体流序列号, 暂时填0
	sb.append(0);

	return sb.toString();
}

感兴趣的开发者,欢迎沟通交流。。

posted @   音视频牛哥  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-05-18 公网可用的RTMP、RTSP测试地址(更新于2021年3月)
2021-05-18 rtmp/rtsp/hls公网真正可用的测试地址
2021-05-18 Windows平台RTMP|RTSP播放器实现画面全屏功能
2021-05-18 Windows平台RTMP|RTSP播放器为什么要兼容GDI绘制
2021-05-18 Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览
2021-05-18 Android对接实现内网无纸化会议|智慧教室|实时同屏功能
2021-05-18 QT实现低延迟的RTSP、RTMP播放器
点击右上角即可分享
微信分享提示