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

简介: 部分开发者在实现GB28181设备接入或国标平台侧的时候,容易忽略Subject头域信息,本文就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();
}

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

相关文章
|
2月前
|
前端开发 JavaScript
html中id和class的相同和不同之处及用法的规范与区别
在HTML中,`id`和`class`都用于标识和选择元素,但存在一些关键差异。
|
5月前
|
存储 JSON 前端开发
JavaWeb中用来定义统一的响应结果的result类
JavaWeb中用来定义统一的响应结果的result类
173 0
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(三)
好久不见!前段时间比较忙,更新频率有所减缓。好在现在快忙完了,我又有时间更文咯,还希望大伙能多多支持!我将会呈现出更多高质量的博客给大家!
97 1
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(三)
|
编译器 C语言 C++
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(二)
好久不见!前段时间比较忙,更新频率有所减缓。好在现在快忙完了,我又有时间更文咯,还希望大伙能多多支持!我将会呈现出更多高质量的博客给大家!
157 0
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(二)
|
存储 编解码 自然语言处理
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(一)
好久不见!前段时间比较忙,更新频率有所减缓。好在现在快忙完了,我又有时间更文咯,还希望大伙能多多支持!我将会呈现出更多高质量的博客给大家!
108 0
【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档(一)
|
存储 JSON NoSQL
string 类型使用注意事项与 key 的命名规范| 学习笔记
快速学习 string 类型使用注意事项与 key 的命名规范
jira项目笔记26-TS object 类型 和 {[key:string]: unknown} 定义类型的区别
jira项目笔记26-TS object 类型 和 {[key:string]: unknown} 定义类型的区别
191 0
项目中自定义通用返回值Result
项目中自定义通用返回值Result
188 0
【TP5.1】创建通用的基类自定义命令
【TP5.1】创建通用的基类自定义命令
100 0
【TP5.1】创建通用的基类自定义命令
|
IDE Java 程序员
equals方法通用约定
equals方法通用约定
886 0
equals方法通用约定