前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GB/T28181规范之Subject头域定义浅析

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

原创
作者头像
音视频牛哥
发布2022-10-06 00:39:58
3600
发布2022-10-06 00:39:58
举报

​部分开发者在实现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设备端为例,直接上代码:

代码语言:javascript
复制
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();
}

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档